2 samr interface definition
5 [ uuid(12345778-1234-abcd-ef00-0123456789ac),
7 pointer_default(unique)
12 NTSTATUS samr_Connect (
13 /* notice the lack of [string] */
14 [in] uint16 *system_name,
15 [in] uint32 access_mask,
16 [out,ref] policy_handle *handle
22 NTSTATUS samr_Close ();
26 NTSTATUS samr_SetSecurity ();
30 NTSTATUS samr_QuerySecurity ();
34 NTSTATUS samr_Shutdown ();
39 [value(2*strlen_m(r->name))] uint16 name_len;
40 [value(2*strlen_m(r->name))] uint16 name_size;
44 NTSTATUS samr_LookupDomain (
45 [in,ref] policy_handle *handle,
46 [in,ref] samr_Name *domain,
61 [size_is(count)] samr_SamEntry *entries;
64 NTSTATUS samr_EnumDomains (
65 [in,ref] policy_handle *handle,
66 [in,out,ref] uint32 *resume_handle,
68 [out] samr_SamArray *sam,
69 [out,ref] uint32 *num_entries
73 /************************/
75 NTSTATUS samr_OpenDomain(
76 [in,ref] policy_handle *handle,
77 [in] uint32 access_mask,
78 [in,ref] dom_sid2 *sid,
79 [out,ref] policy_handle *domain_handle
82 /************************/
86 uint16 min_length_password;
87 uint16 password_history;
90 NTTIME min_passwordage;
94 HYPER_T force_logoff_time;
95 samr_Name unknown_name;
96 samr_Name domain; /* domain name */
97 samr_Name primary; /* PDC name if this is a BDC */
108 HYPER_T force_logoff_time;
112 samr_Name unknown_name;
128 HYPER_T sequence_num;
129 NTTIME last_xxx_time;
137 HYPER_T force_logoff_time;
138 samr_Name unknown_name;
141 HYPER_T sequence_num;
148 HYPER_T lockout_duration;
149 HYPER_T lockout_window;
150 uint16 lockout_threshold;
154 HYPER_T lockout_duration;
155 HYPER_T lockout_window;
156 uint16 lockout_threshold;
160 HYPER_T sequence_num;
161 NTTIME last_xxx_time;
167 case(1) samr_DomInfo1 info1;
168 case(2) samr_DomInfo2 info2;
169 case(3) samr_DomInfo3 info3;
170 case(4) samr_DomInfo4 info4;
171 case(5) samr_DomInfo5 info5;
172 case(6) samr_DomInfo6 info6;
173 case(7) samr_DomInfo7 info7;
174 case(8) samr_DomInfo8 info8;
175 case(9) samr_DomInfo9 info9;
176 case(11) samr_DomInfo11 info11;
177 case(12) samr_DomInfo12 info12;
178 case(13) samr_DomInfo13 info13;
181 NTSTATUS samr_QueryDomainInfo(
182 [in,ref] policy_handle *handle,
184 [out,switch_is(level)] samr_DomainInfo *info
187 /************************/
189 NTSTATUS samr_SET_DOMAIN_INFO();
191 /************************/
193 NTSTATUS samr_CREATE_DOM_GROUP();
195 /************************/
197 NTSTATUS samr_EnumDomainGroups(
198 [in,ref] policy_handle *handle,
199 [in,out,ref] uint32 *resume_handle,
200 [in] uint32 max_size,
201 [out] samr_SamArray *sam,
202 [out,ref] uint32 num_entries
205 /************************/
207 NTSTATUS samr_CREATE_USER_IN_DOMAIN();
209 /************************/
211 NTSTATUS samr_EnumDomainUsers(
212 [in,ref] policy_handle *handle,
213 [in,out,ref] uint32 *resume_handle,
214 [in] uint32 acct_flags,
215 [in] uint32 max_size,
216 [out] samr_SamArray *sam,
217 [out,ref] uint32 num_entries
220 /************************/
222 NTSTATUS samr_CREATE_DOM_ALIAS();
224 /************************/
226 NTSTATUS samr_EnumDomainAliases(
227 [in,ref] policy_handle *handle,
228 [in,out,ref] uint32 *resume_handle,
229 [in] uint32 max_size,
230 [out] samr_SamArray *sam,
231 [out,ref] uint32 num_entries
234 /************************/
236 NTSTATUS samr_GET_ALIAS_MEMBERSHIP();
238 /************************/
240 NTSTATUS samr_LOOKUP_NAMES();
242 /************************/
244 NTSTATUS samr_LOOKUP_RIDS();
246 /************************/
248 NTSTATUS samr_OPEN_GROUP();
250 /************************/
252 NTSTATUS samr_QUERY_GROUPINFO();
254 /************************/
256 NTSTATUS samr_SET_GROUPINFO();
258 /************************/
260 NTSTATUS samr_ADD_GROUPMEM();
262 /************************/
264 NTSTATUS samr_DELETE_DOM_GROUP();
266 /************************/
268 NTSTATUS samr_DEL_GROUPMEM();
270 /************************/
272 NTSTATUS samr_QUERY_GROUPMEM();
274 /************************/
276 NTSTATUS samr_SET_MEMBER_ATTRIBUTES_OF_GROUP();
278 /************************/
280 NTSTATUS samr_OPEN_ALIAS();
282 /************************/
284 NTSTATUS samr_QUERY_ALIASINFO();
286 /************************/
288 NTSTATUS samr_SET_ALIASINFO();
290 /************************/
292 NTSTATUS samr_DELETE_DOM_ALIAS();
294 /************************/
296 NTSTATUS samr_ADD_ALIASMEM();
298 /************************/
300 NTSTATUS samr_DEL_ALIASMEM();
302 /************************/
304 NTSTATUS samr_GET_MEMBERS_IN_ALIAS();
306 /************************/
308 NTSTATUS samr_OpenUser(
309 [in,ref] policy_handle *handle,
310 [in] uint32 access_mask,
312 [out,ref] policy_handle *acct_handle
315 /************************/
317 NTSTATUS samr_DELETE_DOM_USER();
319 /************************/
324 uint32 primary_group_rid;
325 samr_Name description;
341 uint32 primary_group_rid;
342 samr_Name home_directory;
343 samr_Name home_drive;
344 samr_Name logon_script;
346 samr_Name workstations;
349 NTTIME last_pwd_change;
350 NTTIME allow_pwd_change;
351 NTTIME force_pwd_change; /* uncertain about this one */
352 uint32 units_per_week;
353 [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
354 uint16 bad_pwd_count;
360 case(1) samr_UserInfo1 info1;
361 case(2) samr_UserInfo2 info2;
362 case(3) samr_UserInfo3 info3;
365 NTSTATUS samr_QueryUserInfo(
366 [in,ref] policy_handle *handle,
368 [out,switch_is(level)] samr_UserInfo *info
371 /************************/
373 NTSTATUS samr_SET_USERINFO();
375 /************************/
377 NTSTATUS samr_CHANGE_PASSWORD_USER();
379 /************************/
381 NTSTATUS samr_GET_GROUPS_FOR_USER();
383 /************************/
385 NTSTATUS samr_QUERY_DISPINFO();
387 /************************/
389 NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX();
391 /************************/
393 NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_DOMAIN();
395 /************************/
397 NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_USER();
399 /************************/
401 NTSTATUS samr_GET_USRDOM_PWINFO();
403 /************************/
405 NTSTATUS samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN();
407 /************************/
409 NTSTATUS samr_QUERY_INFORMATION_DOMAIN2();
411 /************************/
413 NTSTATUS samr_QUERY_INFORMATION_USER2();
415 /************************/
417 NTSTATUS samr_QUERY_DISPINFO2();
419 /************************/
421 NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX2();
423 /************************/
425 NTSTATUS samr_CREATE_USER2_IN_DOMAIN();
427 /************************/
429 NTSTATUS samr_QUERY_DISPINFO3();
431 /************************/
433 NTSTATUS samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS();
435 /************************/
437 NTSTATUS samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS();
439 /************************/
441 NTSTATUS samr_OEM_CHANGE_PASSWORD_USER2();
443 /************************/
445 NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER2();
447 /************************/
449 NTSTATUS samr_GET_DOM_PWINFO();
451 /************************/
453 NTSTATUS samr_CONNECT2();
455 /************************/
457 NTSTATUS samr_SET_USERINFO2();
459 /************************/
461 NTSTATUS samr_SET_BOOT_KEY_INFORMATION();
463 /************************/
465 NTSTATUS samr_GET_BOOT_KEY_INFORMATION();
467 /************************/
469 NTSTATUS samr_CONNECT3();
471 /************************/
473 NTSTATUS samr_Connect4(
474 [in] unistr *system_name,
476 [in] uint32 access_mask,
477 [out,ref] policy_handle *handle
480 /************************/
482 NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER3();
484 /************************/
486 NTSTATUS samr_CONNECT5();
488 /************************/
490 NTSTATUS samr_RID_TO_SID();
492 /************************/
494 NTSTATUS samr_SET_DSRM_PASSWORD();
496 /************************/
498 NTSTATUS samr_VALIDATE_PASSWORD();