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;
489 NTTIME last_pwd_change;
508 uint32 PrimaryGroupRid;
513 samr_Name home_drive;
517 samr_Name logon_script;
525 samr_Name descriptiom;
529 samr_Name workstations;
547 NTTIME last_pwd_change;
549 NTTIME allow_pwd_change;
550 NTTIME force_pwd_change;
554 samr_Name home_drive;
555 samr_Name logon_script;
557 samr_Name description;
558 samr_Name workstations;
565 [size_is(buf_count)] uint8 *buffer;
567 uint32 primary_group_rid;
569 uint32 fields_present;
570 uint32 units_per_week;
571 [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
572 uint16 bad_pwd_count;
583 case(1) samr_UserInfo1 info1;
584 case(2) samr_UserInfo2 info2;
585 case(3) samr_UserInfo3 info3;
586 case(4) samr_UserInfo4 info4;
587 case(5) samr_UserInfo5 info5;
588 case(6) samr_UserInfo6 info6;
589 case(7) samr_UserInfo7 info7;
590 case(8) samr_UserInfo8 info8;
591 case(9) samr_UserInfo9 info9;
592 case(10) samr_UserInfo10 info10;
593 case(11) samr_UserInfo11 info11;
594 case(12) samr_UserInfo12 info12;
595 case(13) samr_UserInfo13 info13;
596 case(14) samr_UserInfo14 info14;
597 case(16) samr_UserInfo16 info16;
598 case(17) samr_UserInfo17 info17;
599 case(20) samr_UserInfo20 info20;
600 case(21) samr_UserInfo21 info21;
603 NTSTATUS samr_QueryUserInfo(
604 [in,ref] policy_handle *handle,
606 [out,switch_is(level)] samr_UserInfo *info
609 /************************/
611 NTSTATUS samr_SET_USERINFO();
613 /************************/
615 NTSTATUS samr_CHANGE_PASSWORD_USER();
617 /************************/
619 NTSTATUS samr_GET_GROUPS_FOR_USER();
621 /************************/
623 NTSTATUS samr_QUERY_DISPINFO();
625 /************************/
627 NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX();
629 /************************/
631 NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_DOMAIN();
633 /************************/
635 NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_USER();
637 /************************/
639 NTSTATUS samr_GET_USRDOM_PWINFO();
641 /************************/
643 NTSTATUS samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN();
645 /************************/
647 NTSTATUS samr_QUERY_INFORMATION_DOMAIN2();
649 /************************/
651 NTSTATUS samr_QUERY_INFORMATION_USER2();
653 /************************/
655 NTSTATUS samr_QUERY_DISPINFO2();
657 /************************/
659 NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX2();
661 /************************/
663 NTSTATUS samr_CREATE_USER2_IN_DOMAIN();
665 /************************/
667 NTSTATUS samr_QUERY_DISPINFO3();
669 /************************/
671 NTSTATUS samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS();
673 /************************/
675 NTSTATUS samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS();
677 /************************/
679 NTSTATUS samr_OEM_CHANGE_PASSWORD_USER2();
681 /************************/
683 NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER2();
685 /************************/
687 NTSTATUS samr_GET_DOM_PWINFO();
689 /************************/
691 NTSTATUS samr_CONNECT2();
693 /************************/
695 NTSTATUS samr_SET_USERINFO2();
697 /************************/
699 NTSTATUS samr_SET_BOOT_KEY_INFORMATION();
701 /************************/
703 NTSTATUS samr_GET_BOOT_KEY_INFORMATION();
705 /************************/
707 NTSTATUS samr_CONNECT3();
709 /************************/
711 NTSTATUS samr_Connect4(
712 [in] unistr *system_name,
714 [in] uint32 access_mask,
715 [out,ref] policy_handle *handle
718 /************************/
720 NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER3();
722 /************************/
724 NTSTATUS samr_CONNECT5();
726 /************************/
728 NTSTATUS samr_RID_TO_SID();
730 /************************/
732 NTSTATUS samr_SET_DSRM_PASSWORD();
734 /************************/
736 NTSTATUS samr_VALIDATE_PASSWORD();