cb0af846bf3fde8de6927ae69ed325a4549f9024
[reactos.git] / reactos / include / ddk / ntsam.h
1
2 #ifndef _NTSAM_
3 #define _NTSAM_
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
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
14
15 #define ALIAS_READ (STANDARD_RIGHTS_READ |\
16 ALIAS_LIST_MEMBERS)
17
18 #define ALIAS_WRITE (STANDARD_RIGHTS_WRITE |\
19 ALIAS_ADD_MEMBER |\
20 ALIAS_REMOVE_MEMBER |\
21 ALIAS_WRITE_ACCOUNT)
22
23 #define ALIAS_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
24 ALIAS_READ_INFORMATION)
25
26 #define ALIAS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
27 ALIAS_ADD_MEMBER |\
28 ALIAS_REMOVE_MEMBER |\
29 ALIAS_LIST_MEMBERS |\
30 ALIAS_READ_INFORMATION |\
31 ALIAS_WRITE_ACCOUNT)
32
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
44
45 #define DOMAIN_READ (STANDARD_RIGHTS_READ |\
46 DOMAIN_READ_OTHER_PARAMETERS |\
47 DOMAIN_GET_ALIAS_MEMBERSHIP)
48
49 #define DOMAIN_WRITE (STANDARD_RIGHTS_WRITE |\
50 DOMAIN_WRITE_PASSWORD_PARAMS |\
51 DOMAIN_WRITE_OTHER_PARAMETERS |\
52 DOMAIN_CREATE_USER |\
53 DOMAIN_CREATE_GROUP |\
54 DOMAIN_CREATE_ALIAS |\
55 DOMAIN_ADMINISTER_SERVER)
56
57 #define DOMAIN_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
58 DOMAIN_READ_PASSWORD_PARAMETERS |\
59 DOMAIN_LIST_ACCOUNTS |\
60 DOMAIN_LOOKUP)
61
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 |\
67 DOMAIN_CREATE_USER |\
68 DOMAIN_CREATE_GROUP |\
69 DOMAIN_CREATE_ALIAS |\
70 DOMAIN_GET_ALIAS_MEMBERSHIP |\
71 DOMAIN_LIST_ACCOUNTS |\
72 DOMAIN_LOOKUP |\
73 DOMAIN_ADMINISTER_SERVER)
74
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
80
81 #define GROUP_READ (STANDARD_RIGHTS_READ |\
82 GROUP_LIST_MEMBERS)
83
84 #define GROUP_WRITE (STANDARD_RIGHTS_WRITE |\
85 GROUP_WRITE_ACCOUNT |\
86 GROUP_ADD_MEMBER |\
87 GROUP_REMOVE_MEMBER)
88
89 #define GROUP_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
90 GROUP_READ_INFORMATION)
91
92 #define GROUP_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
93 GROUP_READ_INFORMATION |\
94 GROUP_WRITE_ACCOUNT |\
95 GROUP_ADD_MEMBER |\
96 GROUP_REMOVE_MEMBER |\
97 GROUP_LIST_MEMBERS)
98
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
105
106 #define SAM_SERVER_READ (STANDARD_RIGHTS_READ |\
107 SAM_SERVER_ENUMERATE_DOMAINS)
108
109 #define SAM_SERVER_WRITE (STANDARD_RIGHTS_WRITE |\
110 SAM_SERVER_SHUTDOWN |\
111 SAM_SERVER_INITIALIZE |\
112 SAM_SERVER_CREATE_DOMAIN)
113
114 #define SAM_SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
115 SAM_SERVER_CONNECT |\
116 SAM_SERVER_LOOKUP_DOMAIN)
117
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)
125
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
137
138 #define USER_READ (STANDARD_RIGHTS_READ |\
139 USER_READ_PREFERENCES |\
140 USER_READ_LOGON |\
141 USER_READ_ACCOUNT |\
142 USER_LIST_GROUPS |\
143 USER_READ_GROUP_INFORMATION)
144
145 #define USER_WRITE (STANDARD_RIGHTS_WRITE |\
146 USER_WRITE_PREFERENCES |\
147 USER_CHANGE_PASSWORD)
148
149 #define USER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
150 USER_READ_GENERAL |\
151 USER_CHANGE_PASSWORD)
152
153 #define USER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
154 USER_READ_GENERAL |\
155 USER_READ_PREFERENCES |\
156 USER_WRITE_PREFERENCES |\
157 USER_READ_LOGON |\
158 USER_READ_ACCOUNT |\
159 USER_WRITE_ACCOUNT |\
160 USER_CHANGE_PASSWORD |\
161 USER_FORCE_PASSWORD_CHANGE |\
162 USER_LIST_GROUPS |\
163 USER_READ_GROUP_INFORMATION |\
164 USER_WRITE_GROUP_INFORMATION)
165
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
189
190
191 typedef PVOID SAM_HANDLE, *PSAM_HANDLE;
192 typedef ULONG SAM_ENUMERATE_HANDLE, *PSAM_ENUMERATE_HANDLE;
193
194 typedef struct _SAM_RID_ENUMERATION
195 {
196 ULONG RelativeId;
197 UNICODE_STRING Name;
198 } SAM_RID_ENUMERATION, *PSAM_RID_ENUMERATION;
199
200 typedef struct _SAM_SID_ENUMERATION
201 {
202 PSID Sid;
203 UNICODE_STRING Name;
204 } SAM_SID_ENUMERATION, *PSAM_SID_ENUMERATION;
205
206 typedef enum _ALIAS_INFORMATION_CLASS
207 {
208 AliasGeneralInformation = 1,
209 AliasNameInformation,
210 AliasAdminCommentInformation
211 } ALIAS_INFORMATION_CLASS, *PALIAS_INFORMATION_CLASS;
212
213 typedef struct _ALIAS_GENERAL_INFORMATION
214 {
215 UNICODE_STRING Name;
216 ULONG MemberCount;
217 UNICODE_STRING AdminComment;
218 } ALIAS_GENERAL_INFORMATION, *PALIAS_GENERAL_INFORMATION;
219
220 typedef struct _ALIAS_NAME_INFORMATION
221 {
222 UNICODE_STRING Name;
223 } ALIAS_NAME_INFORMATION, *PALIAS_NAME_INFORMATION;
224
225 typedef struct _ALIAS_ADM_COMMENT_INFORMATION
226 {
227 UNICODE_STRING AdminComment;
228 } ALIAS_ADM_COMMENT_INFORMATION, *PALIAS_ADM_COMMENT_INFORMATION;
229
230
231 typedef enum _DOMAIN_INFORMATION_CLASS
232 {
233 DomainPasswordInformation = 1,
234 DomainGeneralInformation,
235 DomainLogoffInformation,
236 DomainOemInformation,
237 DomainNameInformation,
238 DomainReplicationInformation,
239 DomainServerRoleInformation,
240 DomainModifiedInformation,
241 DomainStateInformation,
242 DomainUasInformation,
243 DomainGeneralInformation2,
244 DomainLockoutInformation,
245 DomainModifiedInformation2
246 } DOMAIN_INFORMATION_CLASS;
247
248 typedef enum _DOMAIN_SERVER_ENABLE_STATE
249 {
250 DomainServerEnabled = 1,
251 DomainServerDisabled
252 } DOMAIN_SERVER_ENABLE_STATE, *PDOMAIN_SERVER_ENABLE_STATE;
253
254 typedef enum _DOMAIN_SERVER_ROLE
255 {
256 DomainServerRoleBackup = 2,
257 DomainServerRolePrimary
258 } DOMAIN_SERVER_ROLE, *PDOMAIN_SERVER_ROLE;
259
260 typedef struct _DOMAIN_NAME_INFORMATION
261 {
262 UNICODE_STRING DomainName;
263 } DOMAIN_NAME_INFORMATION, *PDOMAIN_NAME_INFORMATION;
264
265 typedef enum _GROUP_INFORMATION_CLASS
266 {
267 GroupGeneralInformation = 1,
268 GroupNameInformation,
269 GroupAttributeInformation,
270 GroupAdminCommentInformation,
271 GroupReplicationInformation
272 } GROUP_INFORMATION_CLASS;
273
274 typedef struct _GROUP_MEMBERSHIP
275 {
276 ULONG RelativeId;
277 ULONG Attributes;
278 } GROUP_MEMBERSHIP, *PGROUP_MEMBERSHIP;
279
280 typedef enum _USER_INFORMATION_CLASS
281 {
282 UserGeneralInformation = 1,
283 UserPreferencesInformation,
284 UserLogonInformation,
285 UserLogonHoursInformation,
286 UserAccountInformation,
287 UserNameInformation,
288 UserAccountNameInformation,
289 UserFullNameInformation,
290 UserPrimaryGroupInformation,
291 UserHomeInformation,
292 UserScriptInformation,
293 UserProfileInformation,
294 UserAdminCommentInformation,
295 UserWorkStationsInformation,
296 UserSetPasswordInformation,
297 UserControlInformation,
298 UserExpiresInformation,
299 UserInternal1Information,
300 UserInternal2Information,
301 UserParametersInformation,
302 UserAllInformation,
303 UserInternal3Information,
304 UserInternal4Information,
305 UserInternal5Information,
306 UserInternal4InformationNew,
307 UserInternal5InformationNew,
308 UserInternal6Information,
309 UserExtendedInformation,
310 UserLogonUIInformation,
311 } USER_INFORMATION_CLASS, *PUSER_INFORMATION_CLASS;
312
313 typedef struct _USER_SET_PASSWORD_INFORMATION
314 {
315 UNICODE_STRING Password;
316 BOOLEAN PasswordExpired;
317 } USER_SET_PASSWORD_INFORMATION, *PUSER_SET_PASSWORD_INFORMATION;
318
319
320 NTSTATUS
321 NTAPI
322 SamAddMemberToAlias(IN SAM_HANDLE AliasHandle,
323 IN PSID MemberId);
324
325 NTSTATUS
326 NTAPI
327 SamAddMemberToGroup(IN SAM_HANDLE GroupHandle,
328 IN ULONG MemberId,
329 IN ULONG Attributes);
330
331 NTSTATUS
332 NTAPI
333 SamAddMultipleMembersToAlias(IN SAM_HANDLE AliasHandle,
334 IN PSID *MemberIds,
335 IN ULONG MemberCount);
336
337 NTSTATUS
338 NTAPI
339 SamCloseHandle(IN SAM_HANDLE SamHandle);
340
341 NTSTATUS
342 NTAPI
343 SamConnect(IN OUT PUNICODE_STRING ServerName,
344 OUT PSAM_HANDLE ServerHandle,
345 IN ACCESS_MASK DesiredAccess,
346 IN POBJECT_ATTRIBUTES ObjectAttributes);
347
348 NTSTATUS
349 NTAPI
350 SamCreateAliasInDomain(IN SAM_HANDLE DomainHandle,
351 IN PUNICODE_STRING AccountName,
352 IN ACCESS_MASK DesiredAccess,
353 OUT PSAM_HANDLE AliasHandle,
354 OUT PULONG RelativeId);
355
356 NTSTATUS
357 NTAPI
358 SamCreateGroupInDomain(IN SAM_HANDLE DomainHandle,
359 IN PUNICODE_STRING AccountName,
360 IN ACCESS_MASK DesiredAccess,
361 OUT PSAM_HANDLE GroupHandle,
362 OUT PULONG RelativeId);
363
364 NTSTATUS
365 NTAPI
366 SamCreateUser2InDomain(IN SAM_HANDLE DomainHandle,
367 IN PUNICODE_STRING AccountName,
368 IN ULONG AccountType,
369 IN ACCESS_MASK DesiredAccess,
370 OUT PSAM_HANDLE UserHandle,
371 OUT PULONG GrantedAccess,
372 OUT PULONG RelativeId);
373
374 NTSTATUS
375 NTAPI
376 SamCreateUserInDomain(IN SAM_HANDLE DomainHandle,
377 IN PUNICODE_STRING AccountName,
378 IN ACCESS_MASK DesiredAccess,
379 OUT PSAM_HANDLE UserHandle,
380 OUT PULONG RelativeId);
381
382 NTSTATUS
383 NTAPI
384 SamDeleteAlias(IN SAM_HANDLE AliasHandle);
385
386 NTSTATUS
387 NTAPI
388 SamDeleteGroup(IN SAM_HANDLE GroupHandle);
389
390 NTSTATUS
391 NTAPI
392 SamDeleteUser(IN SAM_HANDLE UserHandle);
393
394 NTSTATUS
395 NTAPI
396 SamEnumerateAliasesInDomain(IN SAM_HANDLE DomainHandle,
397 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext,
398 OUT PVOID *Buffer,
399 IN ULONG PreferedMaximumLength,
400 OUT PULONG CountReturned);
401
402 NTSTATUS
403 NTAPI
404 SamEnumerateDomainsInSamServer(IN SAM_HANDLE ServerHandle,
405 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext,
406 OUT PVOID *Buffer,
407 IN ULONG PreferedMaximumLength,
408 OUT PULONG CountReturned);
409
410 NTSTATUS
411 NTAPI
412 SamEnumerateGroupsInDomain(IN SAM_HANDLE DomainHandle,
413 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext,
414 IN PVOID *Buffer,
415 IN ULONG PreferedMaximumLength,
416 OUT PULONG CountReturned);
417
418 NTSTATUS
419 NTAPI
420 SamEnumerateUsersInDomain(IN SAM_HANDLE DomainHandle,
421 IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext,
422 IN ULONG UserAccountControl,
423 OUT PVOID *Buffer,
424 IN ULONG PreferedMaximumLength,
425 OUT PULONG CountReturned);
426
427 NTSTATUS
428 NTAPI
429 SamFreeMemory(IN PVOID Buffer);
430
431 NTSTATUS
432 NTAPI
433 SamGetAliasMembership(IN SAM_HANDLE DomainHandle,
434 IN ULONG PassedCount,
435 IN PSID *Sids,
436 OUT PULONG MembershipCount,
437 OUT PULONG *Aliases);
438
439 NTSTATUS
440 NTAPI
441 SamGetGroupsForUser(IN SAM_HANDLE UserHandle,
442 OUT PGROUP_MEMBERSHIP *Groups,
443 OUT PULONG MembershipCount);
444
445 NTSTATUS
446 NTAPI
447 SamGetMembersInAlias(IN SAM_HANDLE AliasHandle,
448 OUT PSID **MemberIds,
449 OUT PULONG MemberCount);
450
451 NTSTATUS
452 NTAPI
453 SamGetMembersInGroup(IN SAM_HANDLE GroupHandle,
454 OUT PULONG *MemberIds,
455 OUT PULONG *Attributes,
456 OUT PULONG MemberCount);
457
458 NTSTATUS
459 NTAPI
460 SamLookupDomainInSamServer(IN SAM_HANDLE ServerHandle,
461 IN PUNICODE_STRING Name,
462 OUT PSID *DomainId);
463
464 NTSTATUS
465 NTAPI
466 SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
467 IN ULONG Count,
468 IN PULONG RelativeIds,
469 OUT PUNICODE_STRING *Names,
470 OUT PSID_NAME_USE *Use);
471
472 NTSTATUS
473 NTAPI
474 SamLookupNamesInDomain(IN SAM_HANDLE DomainHandle,
475 IN ULONG Count,
476 IN PUNICODE_STRING Names,
477 OUT PULONG *RelativeIds,
478 OUT PSID_NAME_USE *Use);
479
480 NTSTATUS
481 NTAPI
482 SamOpenAlias(IN SAM_HANDLE DomainHandle,
483 IN ACCESS_MASK DesiredAccess,
484 IN ULONG AliasId,
485 OUT PSAM_HANDLE AliasHandle);
486
487 NTSTATUS
488 NTAPI
489 SamOpenDomain(IN SAM_HANDLE ServerHandle,
490 IN ACCESS_MASK DesiredAccess,
491 IN PSID DomainId,
492 OUT PSAM_HANDLE DomainHandle);
493
494 NTSTATUS
495 NTAPI
496 SamOpenGroup(IN SAM_HANDLE DomainHandle,
497 IN ACCESS_MASK DesiredAccess,
498 IN ULONG GroupId,
499 OUT PSAM_HANDLE GroupHandle);
500
501 NTSTATUS
502 NTAPI
503 SamOpenUser(IN SAM_HANDLE DomainHandle,
504 IN ACCESS_MASK DesiredAccess,
505 IN ULONG UserId,
506 OUT PSAM_HANDLE UserHandle);
507
508 NTSTATUS
509 NTAPI
510 SamQueryInformationAlias(IN SAM_HANDLE AliasHandle,
511 IN ALIAS_INFORMATION_CLASS AliasInformationClass,
512 OUT PVOID *Buffer);
513
514 NTSTATUS
515 NTAPI
516 SamQueryInformationDomain(IN SAM_HANDLE DomainHandle,
517 IN DOMAIN_INFORMATION_CLASS DomainInformationClass,
518 OUT PVOID *Buffer);
519
520 NTSTATUS
521 NTAPI
522 SamQueryInformationGroup(IN SAM_HANDLE GroupHandle,
523 IN GROUP_INFORMATION_CLASS GroupInformationClass,
524 OUT PVOID *Buffer);
525
526 NTSTATUS
527 NTAPI
528 SamQueryInformationUser(IN SAM_HANDLE UserHandle,
529 IN USER_INFORMATION_CLASS UserInformationClass,
530 OUT PVOID *Buffer);
531
532 NTSTATUS
533 NTAPI
534 SamQuerySecurityObject(IN SAM_HANDLE ObjectHandle,
535 IN SECURITY_INFORMATION SecurityInformation,
536 OUT PSECURITY_DESCRIPTOR *SecurityDescriptor);
537
538 NTSTATUS
539 NTAPI
540 SamRemoveMemberFromAlias(IN SAM_HANDLE AliasHandle,
541 IN PSID MemberId);
542
543 NTSTATUS
544 NTAPI
545 SamRemoveMemberFromForeignDomain(IN SAM_HANDLE DomainHandle,
546 IN PSID MemberId);
547
548 NTSTATUS
549 NTAPI
550 SamRemoveMemberFromGroup(IN SAM_HANDLE GroupHandle,
551 IN ULONG MemberId);
552
553 NTSTATUS
554 NTAPI
555 SamRemoveMultipleMembersFromAlias(IN SAM_HANDLE AliasHandle,
556 IN PSID *MemberIds,
557 IN ULONG MemberCount);
558
559 NTSTATUS
560 NTAPI
561 SamRidToSid(IN SAM_HANDLE ObjectHandle,
562 IN ULONG Rid,
563 OUT PSID *Sid);
564
565 NTSTATUS
566 NTAPI
567 SamSetInformationAlias(IN SAM_HANDLE AliasHandle,
568 IN ALIAS_INFORMATION_CLASS AliasInformationClass,
569 IN PVOID Buffer);
570
571 NTSTATUS
572 NTAPI
573 SamSetInformationDomain(IN SAM_HANDLE DomainHandle,
574 IN DOMAIN_INFORMATION_CLASS DomainInformationClass,
575 IN PVOID Buffer);
576
577 NTSTATUS
578 NTAPI
579 SamSetInformationGroup(IN SAM_HANDLE GroupHandle,
580 IN GROUP_INFORMATION_CLASS GroupInformationClass,
581 IN PVOID Buffer);
582
583 NTSTATUS
584 NTAPI
585 SamSetInformationUser(IN SAM_HANDLE UserHandle,
586 IN USER_INFORMATION_CLASS UserInformationClass,
587 IN PVOID Buffer);
588
589 NTSTATUS
590 NTAPI
591 SamSetMemberAttributesOfGroup(IN SAM_HANDLE GroupHandle,
592 IN ULONG MemberId,
593 IN ULONG Attributes);
594
595 NTSTATUS
596 NTAPI
597 SamSetSecurityObject(IN SAM_HANDLE ObjectHandle,
598 IN SECURITY_INFORMATION SecurityInformation,
599 IN PSECURITY_DESCRIPTOR SecurityDescriptor);
600
601 NTSTATUS
602 NTAPI
603 SamShutdownSamServer(IN SAM_HANDLE ServerHandle);
604
605 #ifdef __cplusplus
606 }
607 #endif
608
609 #endif /* _NTSAM_ */