2 samr interface definition
7 Thanks to Todd Sabin for some information from his samr.idl in acltools
10 [ uuid(12345778-1234-abcd-ef00-0123456789ac),
12 pointer_default(unique)
17 NTSTATUS samr_Connect (
18 /* notice the lack of [string] */
19 [in] uint16 *system_name,
20 [in] uint32 access_mask,
21 [out,ref] policy_handle *handle
28 [in,out,ref] policy_handle *handle
33 NTSTATUS samr_SetSecurity ();
40 [subcontext] security_descriptor *sd;
43 NTSTATUS samr_QuerySecurity (
44 [in,ref] policy_handle *handle,
46 [out] samr_SdBuf *sdbuf
51 NTSTATUS samr_Shutdown ();
56 [value(2*strlen_m(r->name))] uint16 name_len;
57 [value(2*strlen_m(r->name))] uint16 name_size;
61 NTSTATUS samr_LookupDomain (
62 [in,ref] policy_handle *handle,
63 [in,ref] samr_Name *domain,
78 [size_is(count)] samr_SamEntry *entries;
81 NTSTATUS samr_EnumDomains (
82 [in,ref] policy_handle *handle,
83 [in,out,ref] uint32 *resume_handle,
85 [out] samr_SamArray *sam,
86 [out,ref] uint32 *num_entries
90 /************************/
92 NTSTATUS samr_OpenDomain(
93 [in,ref] policy_handle *handle,
94 [in] uint32 access_mask,
95 [in,ref] dom_sid2 *sid,
96 [out,ref] policy_handle *domain_handle
99 /************************/
103 uint16 min_length_password;
104 uint16 password_history;
107 NTTIME min_passwordage;
111 HYPER_T force_logoff_time;
113 samr_Name domain; /* domain name */
114 samr_Name primary; /* PDC name if this is a BDC */
115 HYPER_T sequence_num;
125 HYPER_T force_logoff_time;
145 HYPER_T sequence_num;
146 NTTIME last_xxx_time;
154 HYPER_T force_logoff_time;
158 HYPER_T sequence_num;
165 HYPER_T lockout_duration;
166 HYPER_T lockout_window;
167 uint16 lockout_threshold;
171 HYPER_T lockout_duration;
172 HYPER_T lockout_window;
173 uint16 lockout_threshold;
177 HYPER_T sequence_num;
178 NTTIME last_xxx_time;
184 case(1) samr_DomInfo1 info1;
185 case(2) samr_DomInfo2 info2;
186 case(3) samr_DomInfo3 info3;
187 case(4) samr_DomInfo4 info4;
188 case(5) samr_DomInfo5 info5;
189 case(6) samr_DomInfo6 info6;
190 case(7) samr_DomInfo7 info7;
191 case(8) samr_DomInfo8 info8;
192 case(9) samr_DomInfo9 info9;
193 case(11) samr_DomInfo11 info11;
194 case(12) samr_DomInfo12 info12;
195 case(13) samr_DomInfo13 info13;
198 NTSTATUS samr_QueryDomainInfo(
199 [in,ref] policy_handle *handle,
201 [out,switch_is(level)] samr_DomainInfo *info
204 /************************/
206 NTSTATUS samr_SET_DOMAIN_INFO();
208 /************************/
210 NTSTATUS samr_CREATE_DOM_GROUP();
212 /************************/
214 NTSTATUS samr_EnumDomainGroups(
215 [in,ref] policy_handle *handle,
216 [in,out,ref] uint32 *resume_handle,
217 [in] uint32 max_size,
218 [out] samr_SamArray *sam,
219 [out,ref] uint32 num_entries
222 /************************/
224 NTSTATUS samr_CreateUser(
225 [in,ref] policy_handle *handle,
226 [in,ref] samr_Name *username,
227 [in] uint32 access_mask,
228 [out,ref] policy_handle *acct_handle,
229 [out,ref] uint32 *rid
232 /************************/
234 NTSTATUS samr_EnumDomainUsers(
235 [in,ref] policy_handle *handle,
236 [in,out,ref] uint32 *resume_handle,
237 [in] uint32 acct_flags,
238 [in] uint32 max_size,
239 [out] samr_SamArray *sam,
240 [out,ref] uint32 num_entries
243 /************************/
245 NTSTATUS samr_CREATE_DOM_ALIAS();
247 /************************/
249 NTSTATUS samr_EnumDomainAliases(
250 [in,ref] policy_handle *handle,
251 [in,out,ref] uint32 *resume_handle,
252 [in] uint32 max_size,
253 [out] samr_SamArray *sam,
254 [out,ref] uint32 num_entries
257 /************************/
262 [size_is(count)] dom_sid2 *sids;
267 [size_is(count)] uint32 *rids;
270 NTSTATUS samr_GetAliasMembership(
271 [in,ref] policy_handle *handle,
272 [in] samr_Sids *sids,
273 [out] samr_Rids *rids
276 /************************/
278 NTSTATUS samr_LOOKUP_NAMES();
280 /************************/
282 NTSTATUS samr_LOOKUP_RIDS();
284 /************************/
286 NTSTATUS samr_OpenGroup(
287 [in,ref] policy_handle *handle,
288 [in] uint32 access_mask,
290 [out,ref] policy_handle *acct_handle
294 /************************/
301 samr_Name description;
306 } samr_GroupInfoName;
313 samr_Name description;
314 } samr_GroupInfoDesciption;
317 case(1) samr_GroupInfoAll all;
318 case(2) samr_GroupInfoName name;
319 case(3) samr_GroupInfoX unknown;
320 case(4) samr_GroupInfoDesciption description;
323 NTSTATUS samr_QueryGroupInfo(
324 [in,ref] policy_handle *handle,
326 [out,switch_is(level)] samr_GroupInfo *info
329 /************************/
331 NTSTATUS samr_SET_GROUPINFO();
333 /************************/
335 NTSTATUS samr_ADD_GROUPMEM();
337 /************************/
339 NTSTATUS samr_DELETE_DOM_GROUP();
341 /************************/
343 NTSTATUS samr_DEL_GROUPMEM();
345 /************************/
347 NTSTATUS samr_QUERY_GROUPMEM();
349 /************************/
351 NTSTATUS samr_SET_MEMBER_ATTRIBUTES_OF_GROUP();
354 /************************/
356 NTSTATUS samr_OpenAlias (
357 [in,ref] policy_handle *handle,
358 [in] uint32 access_mask,
360 [out,ref] policy_handle *acct_handle
364 /************************/
370 samr_Name description;
375 } samr_AliasInfoName;
378 samr_Name description;
379 } samr_AliasInfoDescription;
382 case(1) samr_AliasInfoAll all;
383 case(2) samr_AliasInfoName name;
384 case(3) samr_AliasInfoDescription description;
387 NTSTATUS samr_QueryAliasInfo(
388 [in,ref] policy_handle *handle,
390 [out,switch_is(level)] samr_AliasInfo *info
393 /************************/
395 NTSTATUS samr_SET_ALIASINFO();
397 /************************/
399 NTSTATUS samr_DELETE_DOM_ALIAS();
401 /************************/
403 NTSTATUS samr_ADD_ALIASMEM();
405 /************************/
407 NTSTATUS samr_DEL_ALIASMEM();
409 /************************/
411 NTSTATUS samr_GET_MEMBERS_IN_ALIAS();
413 /************************/
415 NTSTATUS samr_OpenUser(
416 [in,ref] policy_handle *handle,
417 [in] uint32 access_mask,
419 [out,ref] policy_handle *acct_handle
422 /************************/
424 NTSTATUS samr_DeleteUser(
425 [in,out,ref] policy_handle *handle
428 /************************/
433 uint32 primary_group_rid;
434 samr_Name description;
450 uint32 primary_group_rid;
451 samr_Name home_directory;
452 samr_Name home_drive;
453 samr_Name logon_script;
455 samr_Name workstations;
458 NTTIME last_pwd_change;
459 NTTIME allow_pwd_change;
460 NTTIME force_pwd_change;
461 uint32 units_per_week;
462 [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
463 uint16 bad_pwd_count;
469 uint32 units_per_week;
470 [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
477 uint32 primary_group_rid;
478 samr_Name home_directory;
479 samr_Name home_drive;
480 samr_Name logon_script;
482 samr_Name descriptiom;
483 samr_Name workstations;
486 uint32 units_per_week;
487 [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
488 uint16 bad_pwd_count;
490 NTTIME last_pwd_change;
509 uint32 PrimaryGroupRid;
514 samr_Name home_drive;
518 samr_Name logon_script;
526 samr_Name descriptiom;
530 samr_Name workstations;
548 NTTIME last_pwd_change;
550 NTTIME allow_pwd_change;
551 NTTIME force_pwd_change;
555 samr_Name home_drive;
556 samr_Name logon_script;
558 samr_Name description;
559 samr_Name workstations;
566 [size_is(buf_count)] uint8 *buffer;
568 uint32 primary_group_rid;
570 uint32 fields_present;
571 uint32 units_per_week;
572 [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
573 uint16 bad_pwd_count;
584 case(1) samr_UserInfo1 info1;
585 case(2) samr_UserInfo2 info2;
586 case(3) samr_UserInfo3 info3;
587 case(4) samr_UserInfo4 info4;
588 case(5) samr_UserInfo5 info5;
589 case(6) samr_UserInfo6 info6;
590 case(7) samr_UserInfo7 info7;
591 case(8) samr_UserInfo8 info8;
592 case(9) samr_UserInfo9 info9;
593 case(10) samr_UserInfo10 info10;
594 case(11) samr_UserInfo11 info11;
595 case(12) samr_UserInfo12 info12;
596 case(13) samr_UserInfo13 info13;
597 case(14) samr_UserInfo14 info14;
598 case(16) samr_UserInfo16 info16;
599 case(17) samr_UserInfo17 info17;
600 case(20) samr_UserInfo20 info20;
601 case(21) samr_UserInfo21 info21;
604 NTSTATUS samr_QueryUserInfo(
605 [in,ref] policy_handle *handle,
607 [out,switch_is(level)] samr_UserInfo *info
610 /************************/
612 NTSTATUS samr_SET_USERINFO();
614 /************************/
616 NTSTATUS samr_CHANGE_PASSWORD_USER();
618 /************************/
620 NTSTATUS samr_GET_GROUPS_FOR_USER();
622 /************************/
624 NTSTATUS samr_QUERY_DISPINFO();
626 /************************/
628 NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX();
630 /************************/
632 NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_DOMAIN();
634 /************************/
636 NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_USER();
638 /************************/
640 NTSTATUS samr_GET_USRDOM_PWINFO();
642 /************************/
644 NTSTATUS samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN();
646 /************************/
648 NTSTATUS samr_QUERY_INFORMATION_DOMAIN2();
650 /************************/
652 NTSTATUS samr_QUERY_INFORMATION_USER2();
654 /************************/
656 NTSTATUS samr_QUERY_DISPINFO2();
658 /************************/
660 NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX2();
662 /************************/
664 NTSTATUS samr_CREATE_USER2_IN_DOMAIN();
666 /************************/
668 NTSTATUS samr_QUERY_DISPINFO3();
670 /************************/
672 NTSTATUS samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS();
674 /************************/
676 NTSTATUS samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS();
678 /************************/
680 NTSTATUS samr_OEM_CHANGE_PASSWORD_USER2();
682 /************************/
684 NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER2();
686 /************************/
688 NTSTATUS samr_GET_DOM_PWINFO();
690 /************************/
692 NTSTATUS samr_CONNECT2();
694 /************************/
696 NTSTATUS samr_SET_USERINFO2();
698 /************************/
700 NTSTATUS samr_SET_BOOT_KEY_INFORMATION();
702 /************************/
704 NTSTATUS samr_GET_BOOT_KEY_INFORMATION();
706 /************************/
708 NTSTATUS samr_CONNECT3();
710 /************************/
712 NTSTATUS samr_Connect4(
713 [in] unistr *system_name,
715 [in] uint32 access_mask,
716 [out,ref] policy_handle *handle
719 /************************/
721 NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER3();
723 /************************/
725 NTSTATUS samr_CONNECT5();
727 /************************/
729 NTSTATUS samr_RID_TO_SID();
731 /************************/
733 NTSTATUS samr_SET_DSRM_PASSWORD();
735 /************************/
737 NTSTATUS samr_VALIDATE_PASSWORD();