9 #define ALIAS_ADD_MEMBER 0x00000001
10 #define ALIAS_REMOVE_MEMBER 0x00000002
11 #define ALIAS_LIST_MEMBERS 0x00000004
12 #define ALIAS_READ_INFORMATION 0x00000008
13 #define ALIAS_WRITE_ACCOUNT 0x00000010
15 #define ALIAS_READ (STANDARD_RIGHTS_READ |\
18 #define ALIAS_WRITE (STANDARD_RIGHTS_WRITE |\
20 ALIAS_REMOVE_MEMBER |\
23 #define ALIAS_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
24 ALIAS_READ_INFORMATION)
26 #define ALIAS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
28 ALIAS_REMOVE_MEMBER |\
30 ALIAS_READ_INFORMATION |\
33 #define DOMAIN_READ_PASSWORD_PARAMETERS 0x00000001
34 #define DOMAIN_WRITE_PASSWORD_PARAMS 0x00000002
35 #define DOMAIN_READ_OTHER_PARAMETERS 0x00000004
36 #define DOMAIN_WRITE_OTHER_PARAMETERS 0x00000008
37 #define DOMAIN_CREATE_USER 0x00000010
38 #define DOMAIN_CREATE_GROUP 0x00000020
39 #define DOMAIN_CREATE_ALIAS 0x00000040
40 #define DOMAIN_GET_ALIAS_MEMBERSHIP 0x00000080
41 #define DOMAIN_LIST_ACCOUNTS 0x00000100
42 #define DOMAIN_LOOKUP 0x00000200
43 #define DOMAIN_ADMINISTER_SERVER 0x00000400
45 #define DOMAIN_READ (STANDARD_RIGHTS_READ |\
46 DOMAIN_READ_OTHER_PARAMETERS |\
47 DOMAIN_GET_ALIAS_MEMBERSHIP)
49 #define DOMAIN_WRITE (STANDARD_RIGHTS_WRITE |\
50 DOMAIN_WRITE_PASSWORD_PARAMS |\
51 DOMAIN_WRITE_OTHER_PARAMETERS |\
53 DOMAIN_CREATE_GROUP |\
54 DOMAIN_CREATE_ALIAS |\
55 DOMAIN_ADMINISTER_SERVER)
57 #define DOMAIN_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
58 DOMAIN_READ_PASSWORD_PARAMETERS |\
59 DOMAIN_LIST_ACCOUNTS |\
62 #define DOMAIN_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
63 DOMAIN_READ_PASSWORD_PARAMETERS |\
64 DOMAIN_WRITE_PASSWORD_PARAMS |\
65 DOMAIN_READ_OTHER_PARAMETERS |\
66 DOMAIN_WRITE_OTHER_PARAMETERS |\
68 DOMAIN_CREATE_GROUP |\
69 DOMAIN_CREATE_ALIAS |\
70 DOMAIN_GET_ALIAS_MEMBERSHIP |\
71 DOMAIN_LIST_ACCOUNTS |\
73 DOMAIN_ADMINISTER_SERVER)
75 #define GROUP_READ_INFORMATION 0x00000001
76 #define GROUP_WRITE_ACCOUNT 0x00000002
77 #define GROUP_ADD_MEMBER 0x00000004
78 #define GROUP_REMOVE_MEMBER 0x00000008
79 #define GROUP_LIST_MEMBERS 0x00000010
81 #define GROUP_READ (STANDARD_RIGHTS_READ |\
84 #define GROUP_WRITE (STANDARD_RIGHTS_WRITE |\
85 GROUP_WRITE_ACCOUNT |\
89 #define GROUP_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
90 GROUP_READ_INFORMATION)
92 #define GROUP_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
93 GROUP_READ_INFORMATION |\
94 GROUP_WRITE_ACCOUNT |\
96 GROUP_REMOVE_MEMBER |\
99 #define SAM_SERVER_CONNECT 0x00000001
100 #define SAM_SERVER_SHUTDOWN 0x00000002
101 #define SAM_SERVER_INITIALIZE 0x00000004
102 #define SAM_SERVER_CREATE_DOMAIN 0x00000008
103 #define SAM_SERVER_ENUMERATE_DOMAINS 0x00000010
104 #define SAM_SERVER_LOOKUP_DOMAIN 0x00000020
106 #define SAM_SERVER_READ (STANDARD_RIGHTS_READ |\
107 SAM_SERVER_ENUMERATE_DOMAINS)
109 #define SAM_SERVER_WRITE (STANDARD_RIGHTS_WRITE |\
110 SAM_SERVER_SHUTDOWN |\
111 SAM_SERVER_INITIALIZE |\
112 SAM_SERVER_CREATE_DOMAIN)
114 #define SAM_SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
115 SAM_SERVER_CONNECT |\
116 SAM_SERVER_LOOKUP_DOMAIN)
118 #define SAM_SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
119 SAM_SERVER_CONNECT |\
120 SAM_SERVER_SHUTDOWN |\
121 SAM_SERVER_INITIALIZE |\
122 SAM_SERVER_CREATE_DOMAIN |\
123 SAM_SERVER_ENUMERATE_DOMAINS |\
124 SAM_SERVER_LOOKUP_DOMAIN)
126 #define USER_READ_GENERAL 0x00000001
127 #define USER_READ_PREFERENCES 0x00000002
128 #define USER_WRITE_PREFERENCES 0x00000004
129 #define USER_READ_LOGON 0x00000008
130 #define USER_READ_ACCOUNT 0x00000010
131 #define USER_WRITE_ACCOUNT 0x00000020
132 #define USER_CHANGE_PASSWORD 0x00000040
133 #define USER_FORCE_PASSWORD_CHANGE 0x00000080
134 #define USER_LIST_GROUPS 0x00000100
135 #define USER_READ_GROUP_INFORMATION 0x00000200
136 #define USER_WRITE_GROUP_INFORMATION 0x00000400
138 #define USER_READ (STANDARD_RIGHTS_READ |\
139 USER_READ_PREFERENCES |\
143 USER_READ_GROUP_INFORMATION)
145 #define USER_WRITE (STANDARD_RIGHTS_WRITE |\
146 USER_WRITE_PREFERENCES |\
147 USER_CHANGE_PASSWORD)
149 #define USER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
151 USER_CHANGE_PASSWORD)
153 #define USER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
155 USER_READ_PREFERENCES |\
156 USER_WRITE_PREFERENCES |\
159 USER_WRITE_ACCOUNT |\
160 USER_CHANGE_PASSWORD |\
161 USER_FORCE_PASSWORD_CHANGE |\
163 USER_READ_GROUP_INFORMATION |\
164 USER_WRITE_GROUP_INFORMATION)
166 /* User account control bits */
167 #define USER_ACCOUNT_DISABLED 0x00000001
168 #define USER_HOME_DIRECTORY_REQUIRED 0x00000002
169 #define USER_PASSWORD_NOT_REQUIRED 0x00000004
170 #define USER_TEMP_DUPLICATE_ACCOUNT 0x00000008
171 #define USER_NORMAL_ACCOUNT 0x00000010
172 #define USER_MNS_LOGON_ACCOUNT 0x00000020
173 #define USER_INTERDOMAIN_TRUST_ACCOUNT 0x00000040
174 #define USER_WORKSTATION_TRUST_ACCOUNT 0x00000080
175 #define USER_SERVER_TRUST_ACCOUNT 0x00000100
176 #define USER_DONT_EXPIRE_PASSWORD 0x00000200
177 #define USER_ACCOUNT_AUTO_LOCKED 0x00000400
178 #define USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED 0x00000800
179 #define USER_SMARTCARD_REQUIRED 0x00001000
180 #define USER_TRUSTED_FOR_DELEGATION 0x00002000
181 #define USER_NOT_DELEGATED 0x00004000
182 #define USER_USE_DES_KEY_ONLY 0x00008000
183 #define USER_DONT_REQUIRE_PREAUTH 0x00010000
184 #define USER_PASSWORD_EXPIRED 0x00020000
185 #define USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION 0x00040000
186 #define USER_NO_AUTH_DATA_REQUIRED 0x00080000
187 #define USER_PARTIAL_SECRETS_ACCOUNT 0x00100000
188 #define USER_USE_AES_KEYS 0x00200000
190 /* Constants uses by LOGON_HOURS.UnitsPerWeek */
191 #define SAM_DAYS_PER_WEEK (7)
192 #define SAM_HOURS_PER_WEEK (24 * SAM_DAYS_PER_WEEK)
193 #define SAM_MINUTES_PER_WEEK (60 * SAM_HOURS_PER_WEEK)
196 typedef PVOID SAM_HANDLE
, *PSAM_HANDLE
;
197 typedef ULONG SAM_ENUMERATE_HANDLE
, *PSAM_ENUMERATE_HANDLE
;
199 typedef struct _SAM_RID_ENUMERATION
203 } SAM_RID_ENUMERATION
, *PSAM_RID_ENUMERATION
;
205 typedef struct _SAM_SID_ENUMERATION
209 } SAM_SID_ENUMERATION
, *PSAM_SID_ENUMERATION
;
211 typedef enum _ALIAS_INFORMATION_CLASS
213 AliasGeneralInformation
= 1,
214 AliasNameInformation
,
215 AliasAdminCommentInformation
216 } ALIAS_INFORMATION_CLASS
, *PALIAS_INFORMATION_CLASS
;
218 typedef struct _ALIAS_GENERAL_INFORMATION
222 UNICODE_STRING AdminComment
;
223 } ALIAS_GENERAL_INFORMATION
, *PALIAS_GENERAL_INFORMATION
;
225 typedef struct _ALIAS_NAME_INFORMATION
228 } ALIAS_NAME_INFORMATION
, *PALIAS_NAME_INFORMATION
;
230 typedef struct _ALIAS_ADM_COMMENT_INFORMATION
232 UNICODE_STRING AdminComment
;
233 } ALIAS_ADM_COMMENT_INFORMATION
, *PALIAS_ADM_COMMENT_INFORMATION
;
236 typedef enum _DOMAIN_INFORMATION_CLASS
238 DomainPasswordInformation
= 1,
239 DomainGeneralInformation
,
240 DomainLogoffInformation
,
241 DomainOemInformation
,
242 DomainNameInformation
,
243 DomainReplicationInformation
,
244 DomainServerRoleInformation
,
245 DomainModifiedInformation
,
246 DomainStateInformation
,
247 DomainUasInformation
,
248 DomainGeneralInformation2
,
249 DomainLockoutInformation
,
250 DomainModifiedInformation2
251 } DOMAIN_INFORMATION_CLASS
;
253 typedef enum _DOMAIN_SERVER_ENABLE_STATE
255 DomainServerEnabled
= 1,
257 } DOMAIN_SERVER_ENABLE_STATE
, *PDOMAIN_SERVER_ENABLE_STATE
;
259 typedef enum _DOMAIN_SERVER_ROLE
261 DomainServerRoleBackup
= 2,
262 DomainServerRolePrimary
263 } DOMAIN_SERVER_ROLE
, *PDOMAIN_SERVER_ROLE
;
265 #include "pshpack4.h"
266 typedef struct _DOMAIN_GENERAL_INFORMATION
268 LARGE_INTEGER ForceLogoff
;
269 UNICODE_STRING OemInformation
;
270 UNICODE_STRING DomainName
;
271 UNICODE_STRING ReplicaSourceNodeName
;
272 LARGE_INTEGER DomainModifiedCount
;
273 DOMAIN_SERVER_ENABLE_STATE DomainServerState
;
274 DOMAIN_SERVER_ROLE DomainServerRole
;
275 BOOLEAN UasCompatibilityRequired
;
279 } DOMAIN_GENERAL_INFORMATION
, *PDOMAIN_GENERAL_INFORMATION
;
282 typedef struct _DOMAIN_LOGOFF_INFORMATION
284 LARGE_INTEGER ForceLogoff
;
285 } DOMAIN_LOGOFF_INFORMATION
, *PDOMAIN_LOGOFF_INFORMATION
;
287 typedef struct _DOMAIN_OEM_INFORMATION
289 UNICODE_STRING OemInformation
;
290 } DOMAIN_OEM_INFORMATION
, *PDOMAIN_OEM_INFORMATION
;
292 typedef struct _DOMAIN_NAME_INFORMATION
294 UNICODE_STRING DomainName
;
295 } DOMAIN_NAME_INFORMATION
, *PDOMAIN_NAME_INFORMATION
;
297 typedef struct _DOMAIN_REPLICATION_INFORMATION
299 UNICODE_STRING ReplicaSourceNodeName
;
300 } DOMAIN_REPLICATION_INFORMATION
, *PDOMAIN_REPLICATION_INFORMATION
;
302 typedef struct _DOMAIN_SERVER_ROLE_INFORMATION
304 DOMAIN_SERVER_ROLE DomainServerRole
;
305 } DOMAIN_SERVER_ROLE_INFORMATION
, *PDOMAIN_SERVER_ROLE_INFORMATION
;
307 typedef struct _DOMAIN_STATE_INFORMATION
309 DOMAIN_SERVER_ENABLE_STATE DomainServerState
;
310 } DOMAIN_STATE_INFORMATION
, *PDOMAIN_STATE_INFORMATION
;
312 typedef struct _DOMAIN_UAS_INFORMATION
314 BOOLEAN UasCompatibilityRequired
;
315 } DOMAIN_UAS_INFORMATION
;
317 #include "pshpack4.h"
318 typedef struct _DOMAIN_GENERAL_INFORMATION2
320 DOMAIN_GENERAL_INFORMATION I1
;
321 LARGE_INTEGER LockoutDuration
;
322 LARGE_INTEGER LockoutObservationWindow
;
323 USHORT LockoutThreshold
;
324 } DOMAIN_GENERAL_INFORMATION2
, *PDOMAIN_GENERAL_INFORMATION2
;
327 typedef enum _GROUP_INFORMATION_CLASS
329 GroupGeneralInformation
= 1,
330 GroupNameInformation
,
331 GroupAttributeInformation
,
332 GroupAdminCommentInformation
,
333 GroupReplicationInformation
334 } GROUP_INFORMATION_CLASS
;
336 typedef struct _GROUP_MEMBERSHIP
340 } GROUP_MEMBERSHIP
, *PGROUP_MEMBERSHIP
;
342 typedef struct _LOGON_HOURS
346 } LOGON_HOURS
, *PLOGON_HOURS
;
348 typedef enum _USER_INFORMATION_CLASS
350 UserGeneralInformation
= 1,
351 UserPreferencesInformation
,
352 UserLogonInformation
,
353 UserLogonHoursInformation
,
354 UserAccountInformation
,
356 UserAccountNameInformation
,
357 UserFullNameInformation
,
358 UserPrimaryGroupInformation
,
360 UserScriptInformation
,
361 UserProfileInformation
,
362 UserAdminCommentInformation
,
363 UserWorkStationsInformation
,
364 UserSetPasswordInformation
,
365 UserControlInformation
,
366 UserExpiresInformation
,
367 UserInternal1Information
,
368 UserInternal2Information
,
369 UserParametersInformation
,
371 UserInternal3Information
,
372 UserInternal4Information
,
373 UserInternal5Information
,
374 UserInternal4InformationNew
,
375 UserInternal5InformationNew
,
376 UserInternal6Information
,
377 UserExtendedInformation
,
378 UserLogonUIInformation
,
379 } USER_INFORMATION_CLASS
, *PUSER_INFORMATION_CLASS
;
381 typedef struct _USER_GENERAL_INFORMATION
383 UNICODE_STRING UserName
;
384 UNICODE_STRING FullName
;
385 ULONG PrimaryGroupId
;
386 UNICODE_STRING AdminComment
;
387 UNICODE_STRING UserComment
;
388 } USER_GENERAL_INFORMATION
, *PUSER_GENERAL_INFORMATION
;
390 typedef struct _USER_PREFERENCES_INFORMATION
392 UNICODE_STRING UserComment
;
393 UNICODE_STRING Reserved1
;
396 } USER_PREFERENCES_INFORMATION
, *PUSER_PREFERENCES_INFORMATION
;
398 #include "pshpack4.h"
399 typedef struct _USER_LOGON_INFORMATION
401 UNICODE_STRING UserName
;
402 UNICODE_STRING FullName
;
404 ULONG PrimaryGroupId
;
405 UNICODE_STRING HomeDirectory
;
406 UNICODE_STRING HomeDirectoryDrive
;
407 UNICODE_STRING ScriptPath
;
408 UNICODE_STRING ProfilePath
;
409 UNICODE_STRING WorkStations
;
410 LARGE_INTEGER LastLogon
;
411 LARGE_INTEGER LastLogoff
;
412 LARGE_INTEGER PasswordLastSet
;
413 LARGE_INTEGER PasswordCanChange
;
414 LARGE_INTEGER PasswordMustChange
;
415 LOGON_HOURS LogonHours
;
416 USHORT BadPasswordCount
;
418 ULONG UserAccountControl
;
419 } USER_LOGON_INFORMATION
, *PUSER_LOGON_INFORMATION
;
422 typedef struct _USER_LOGON_HOURS_INFORMATION
424 LOGON_HOURS LogonHours
;
425 } USER_LOGON_HOURS_INFORMATION
, *PUSER_LOGON_HOURS_INFORMATION
;
427 #include "pshpack4.h"
428 typedef struct _USER_ACCOUNT_INFORMATION
430 UNICODE_STRING UserName
;
431 UNICODE_STRING FullName
;
433 ULONG PrimaryGroupId
;
434 UNICODE_STRING HomeDirectory
;
435 UNICODE_STRING HomeDirectoryDrive
;
436 UNICODE_STRING ScriptPath
;
437 UNICODE_STRING ProfilePath
;
438 UNICODE_STRING AdminComment
;
439 UNICODE_STRING WorkStations
;
440 LARGE_INTEGER LastLogon
;
441 LARGE_INTEGER LastLogoff
;
442 LOGON_HOURS LogonHours
;
443 USHORT BadPasswordCount
;
445 LARGE_INTEGER PasswordLastSet
;
446 LARGE_INTEGER AccountExpires
;
447 ULONG UserAccountControl
;
448 } USER_ACCOUNT_INFORMATION
, *PUSER_ACCOUNT_INFORMATION
;
451 typedef struct _USER_NAME_INFORMATION
453 UNICODE_STRING UserName
;
454 UNICODE_STRING FullName
;
455 } USER_NAME_INFORMATION
, *PUSER_NAME_INFORMATION
;
457 typedef struct _USER_ACCOUNT_NAME_INFORMATION
459 UNICODE_STRING UserName
;
460 } USER_ACCOUNT_NAME_INFORMATION
, *PUSER_ACCOUNT_NAME_INFORMATION
;
462 typedef struct _USER_FULL_NAME_INFORMATION
464 UNICODE_STRING FullName
;
465 } USER_FULL_NAME_INFORMATION
, *PUSER_FULL_NAME_INFORMATION
;
467 typedef struct _USER_PRIMARY_GROUP_INFORMATION
469 ULONG PrimaryGroupId
;
470 } USER_PRIMARY_GROUP_INFORMATION
, *PUSER_PRIMARY_GROUP_INFORMATION
;
472 typedef struct _USER_HOME_INFORMATION
474 UNICODE_STRING HomeDirectory
;
475 UNICODE_STRING HomeDirectoryDrive
;
476 } USER_HOME_INFORMATION
, *PUSER_HOME_INFORMATION
;
478 typedef struct _USER_SCRIPT_INFORMATION
480 UNICODE_STRING ScriptPath
;
481 } USER_SCRIPT_INFORMATION
, *PUSER_SCRIPT_INFORMATION
;
483 typedef struct _USER_PROFILE_INFORMATION
485 UNICODE_STRING ProfilePath
;
486 } USER_PROFILE_INFORMATION
, *PUSER_PROFILE_INFORMATION
;
488 typedef struct _USER_ADMIN_COMMENT_INFORMATION
490 UNICODE_STRING AdminComment
;
491 } USER_ADMIN_COMMENT_INFORMATION
, *PUSER_ADMIN_COMMENT_INFORMATION
;
493 typedef struct _USER_WORKSTATIONS_INFORMATION
495 UNICODE_STRING WorkStations
;
496 } USER_WORKSTATIONS_INFORMATION
, *PUSER_WORKSTATIONS_INFORMATION
;
498 typedef struct _USER_SET_PASSWORD_INFORMATION
500 UNICODE_STRING Password
;
501 BOOLEAN PasswordExpired
;
502 } USER_SET_PASSWORD_INFORMATION
, *PUSER_SET_PASSWORD_INFORMATION
;
504 typedef struct _USER_CONTROL_INFORMATION
506 ULONG UserAccountControl
;
507 } USER_CONTROL_INFORMATION
, *PUSER_CONTROL_INFORMATION
;
510 #define SAM_SID_COMPATIBILITY_ALL 0
511 #define SAM_SID_COMPATIBILITY_LAX 1
512 #define SAM_SID_COMPATIBILITY_STRICT 2
517 SamAddMemberToAlias(IN SAM_HANDLE AliasHandle
,
522 SamAddMemberToGroup(IN SAM_HANDLE GroupHandle
,
524 IN ULONG Attributes
);
528 SamAddMultipleMembersToAlias(IN SAM_HANDLE AliasHandle
,
530 IN ULONG MemberCount
);
534 SamCloseHandle(IN SAM_HANDLE SamHandle
);
538 SamConnect(IN OUT PUNICODE_STRING ServerName
,
539 OUT PSAM_HANDLE ServerHandle
,
540 IN ACCESS_MASK DesiredAccess
,
541 IN POBJECT_ATTRIBUTES ObjectAttributes
);
545 SamCreateAliasInDomain(IN SAM_HANDLE DomainHandle
,
546 IN PUNICODE_STRING AccountName
,
547 IN ACCESS_MASK DesiredAccess
,
548 OUT PSAM_HANDLE AliasHandle
,
549 OUT PULONG RelativeId
);
553 SamCreateGroupInDomain(IN SAM_HANDLE DomainHandle
,
554 IN PUNICODE_STRING AccountName
,
555 IN ACCESS_MASK DesiredAccess
,
556 OUT PSAM_HANDLE GroupHandle
,
557 OUT PULONG RelativeId
);
561 SamCreateUser2InDomain(IN SAM_HANDLE DomainHandle
,
562 IN PUNICODE_STRING AccountName
,
563 IN ULONG AccountType
,
564 IN ACCESS_MASK DesiredAccess
,
565 OUT PSAM_HANDLE UserHandle
,
566 OUT PULONG GrantedAccess
,
567 OUT PULONG RelativeId
);
571 SamCreateUserInDomain(IN SAM_HANDLE DomainHandle
,
572 IN PUNICODE_STRING AccountName
,
573 IN ACCESS_MASK DesiredAccess
,
574 OUT PSAM_HANDLE UserHandle
,
575 OUT PULONG RelativeId
);
579 SamDeleteAlias(IN SAM_HANDLE AliasHandle
);
583 SamDeleteGroup(IN SAM_HANDLE GroupHandle
);
587 SamDeleteUser(IN SAM_HANDLE UserHandle
);
591 SamEnumerateAliasesInDomain(IN SAM_HANDLE DomainHandle
,
592 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext
,
594 IN ULONG PreferedMaximumLength
,
595 OUT PULONG CountReturned
);
599 SamEnumerateDomainsInSamServer(IN SAM_HANDLE ServerHandle
,
600 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext
,
602 IN ULONG PreferedMaximumLength
,
603 OUT PULONG CountReturned
);
607 SamEnumerateGroupsInDomain(IN SAM_HANDLE DomainHandle
,
608 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext
,
610 IN ULONG PreferedMaximumLength
,
611 OUT PULONG CountReturned
);
615 SamEnumerateUsersInDomain(IN SAM_HANDLE DomainHandle
,
616 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext
,
617 IN ULONG UserAccountControl
,
619 IN ULONG PreferedMaximumLength
,
620 OUT PULONG CountReturned
);
624 SamFreeMemory(IN PVOID Buffer
);
628 SamGetAliasMembership(IN SAM_HANDLE DomainHandle
,
629 IN ULONG PassedCount
,
631 OUT PULONG MembershipCount
,
632 OUT PULONG
*Aliases
);
636 SamGetCompatibilityMode(IN SAM_HANDLE ObjectHandle
,
641 SamGetGroupsForUser(IN SAM_HANDLE UserHandle
,
642 OUT PGROUP_MEMBERSHIP
*Groups
,
643 OUT PULONG MembershipCount
);
647 SamGetMembersInAlias(IN SAM_HANDLE AliasHandle
,
648 OUT PSID
**MemberIds
,
649 OUT PULONG MemberCount
);
653 SamGetMembersInGroup(IN SAM_HANDLE GroupHandle
,
654 OUT PULONG
*MemberIds
,
655 OUT PULONG
*Attributes
,
656 OUT PULONG MemberCount
);
660 SamLookupDomainInSamServer(IN SAM_HANDLE ServerHandle
,
661 IN PUNICODE_STRING Name
,
666 SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle
,
668 IN PULONG RelativeIds
,
669 OUT PUNICODE_STRING
*Names
,
670 OUT PSID_NAME_USE
*Use
);
674 SamLookupNamesInDomain(IN SAM_HANDLE DomainHandle
,
676 IN PUNICODE_STRING Names
,
677 OUT PULONG
*RelativeIds
,
678 OUT PSID_NAME_USE
*Use
);
682 SamOpenAlias(IN SAM_HANDLE DomainHandle
,
683 IN ACCESS_MASK DesiredAccess
,
685 OUT PSAM_HANDLE AliasHandle
);
689 SamOpenDomain(IN SAM_HANDLE ServerHandle
,
690 IN ACCESS_MASK DesiredAccess
,
692 OUT PSAM_HANDLE DomainHandle
);
696 SamOpenGroup(IN SAM_HANDLE DomainHandle
,
697 IN ACCESS_MASK DesiredAccess
,
699 OUT PSAM_HANDLE GroupHandle
);
703 SamOpenUser(IN SAM_HANDLE DomainHandle
,
704 IN ACCESS_MASK DesiredAccess
,
706 OUT PSAM_HANDLE UserHandle
);
710 SamQueryInformationAlias(IN SAM_HANDLE AliasHandle
,
711 IN ALIAS_INFORMATION_CLASS AliasInformationClass
,
716 SamQueryInformationDomain(IN SAM_HANDLE DomainHandle
,
717 IN DOMAIN_INFORMATION_CLASS DomainInformationClass
,
722 SamQueryInformationGroup(IN SAM_HANDLE GroupHandle
,
723 IN GROUP_INFORMATION_CLASS GroupInformationClass
,
728 SamQueryInformationUser(IN SAM_HANDLE UserHandle
,
729 IN USER_INFORMATION_CLASS UserInformationClass
,
734 SamQuerySecurityObject(IN SAM_HANDLE ObjectHandle
,
735 IN SECURITY_INFORMATION SecurityInformation
,
736 OUT PSECURITY_DESCRIPTOR
*SecurityDescriptor
);
740 SamRemoveMemberFromAlias(IN SAM_HANDLE AliasHandle
,
745 SamRemoveMemberFromForeignDomain(IN SAM_HANDLE DomainHandle
,
750 SamRemoveMemberFromGroup(IN SAM_HANDLE GroupHandle
,
755 SamRemoveMultipleMembersFromAlias(IN SAM_HANDLE AliasHandle
,
757 IN ULONG MemberCount
);
761 SamRidToSid(IN SAM_HANDLE ObjectHandle
,
767 SamSetInformationAlias(IN SAM_HANDLE AliasHandle
,
768 IN ALIAS_INFORMATION_CLASS AliasInformationClass
,
773 SamSetInformationDomain(IN SAM_HANDLE DomainHandle
,
774 IN DOMAIN_INFORMATION_CLASS DomainInformationClass
,
779 SamSetInformationGroup(IN SAM_HANDLE GroupHandle
,
780 IN GROUP_INFORMATION_CLASS GroupInformationClass
,
785 SamSetInformationUser(IN SAM_HANDLE UserHandle
,
786 IN USER_INFORMATION_CLASS UserInformationClass
,
791 SamSetMemberAttributesOfGroup(IN SAM_HANDLE GroupHandle
,
793 IN ULONG Attributes
);
797 SamSetSecurityObject(IN SAM_HANDLE ObjectHandle
,
798 IN SECURITY_INFORMATION SecurityInformation
,
799 IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
803 SamShutdownSamServer(IN SAM_HANDLE ServerHandle
);