4 lsa interface definition
7 [ uuid(12345778-1234-abcd-ef00-0123456789ab),
9 endpoints(lsarpc,lsass),
10 pointer_default(unique)
16 [in,out,ref] policy_handle *handle
23 [in,ref] policy_handle *handle
31 [value(2*strlen_m(r->name))] uint16 name_len;
32 [value(r->name_len)] uint16 name_size;
44 [size_is(count)] lsa_PrivEntry *privs;
47 NTSTATUS lsa_EnumPrivs (
48 [in,ref] policy_handle *handle,
49 [in,out,ref] uint32 *resume_handle,
50 [in] uint32 max_count,
51 [out,ref] lsa_PrivArray *privs
57 typedef [public] struct {
59 [subcontext(4)] security_descriptor *sd;
62 NTSTATUS lsa_QuerySecObj (
63 [in,ref] policy_handle *handle,
65 [out] sec_desc_buf *sd
71 NTSTATUS lsa_SetSecObj ();
76 NTSTATUS lsa_ChangePassword ();
82 uint32 len; /* ignored */
83 uint16 impersonation_level;
89 uint32 len; /* ignored */
93 security_descriptor *sec_desc;
95 } lsa_ObjectAttribute;
97 /* notice the screwup with the system_name - thats why MS created
99 NTSTATUS lsa_OpenPolicy (
100 [in] uint16 *system_name,
101 [in,ref] lsa_ObjectAttribute *attr,
102 [in] uint32 desired_access,
103 [out,ref] policy_handle *handle
114 NTTIME retention_time;
115 uint8 shutdown_in_progress;
116 NTTIME time_to_shutdown;
117 uint32 next_audit_record;
122 uint32 auditing_mode;
123 [size_is(count)] uint32 *settings;
125 } lsa_AuditEventsInfo;
137 uint16 unknown; /* an midl padding bug? */
144 } lsa_ReplicaSourceInfo;
148 uint32 non_paged_pool;
153 } lsa_DefaultQuotaInfo;
157 NTTIME db_create_time;
158 } lsa_ModificationInfo;
161 uint8 shutdown_on_full;
162 } lsa_AuditFullSetInfo;
165 uint16 unknown; /* an midl padding bug? */
166 uint8 shutdown_on_full;
168 } lsa_AuditFullQueryInfo;
179 LSA_POLICY_INFO_AUDIT_LOG=1,
180 LSA_POLICY_INFO_AUDIT_EVENTS=2,
181 LSA_POLICY_INFO_DOMAIN=3,
182 LSA_POLICY_INFO_PD=4,
183 LSA_POLICY_INFO_ACCOUNT_DOMAIN=5,
184 LSA_POLICY_INFO_ROLE=6,
185 LSA_POLICY_INFO_REPLICA=7,
186 LSA_POLICY_INFO_QUOTA=8,
187 LSA_POLICY_INFO_DB=9,
188 LSA_POLICY_INFO_AUDIT_FULL_SET=10,
189 LSA_POLICY_INFO_AUDIT_FULL_QUERY=11,
190 LSA_POLICY_INFO_DNS=12
194 [case(1)] lsa_AuditLogInfo audit_log;
195 [case(2)] lsa_AuditEventsInfo audit_events;
196 [case(3)] lsa_DomainInfo domain;
197 [case(4)] lsa_PDAccountInfo pd;
198 [case(5)] lsa_DomainInfo account_domain;
199 [case(6)] lsa_ServerRole role;
200 [case(7)] lsa_ReplicaSourceInfo replica;
201 [case(8)] lsa_DefaultQuotaInfo quota;
202 [case(9)] lsa_ModificationInfo db;
203 [case(10)] lsa_AuditFullSetInfo auditfullset;
204 [case(11)] lsa_AuditFullQueryInfo auditfullquery;
205 [case(12)] lsa_DnsDomainInfo dns;
206 } lsa_PolicyInformation;
208 NTSTATUS lsa_QueryInfoPolicy (
209 [in,ref] policy_handle *handle,
211 [out,switch_is(level)] lsa_PolicyInformation *info
216 NTSTATUS lsa_SetInfoPolicy ();
220 NTSTATUS lsa_ClearAuditLog ();
224 NTSTATUS lsa_CreateAccount (
225 [in,ref] policy_handle *handle,
226 [in,ref] dom_sid2 *sid,
227 [in] uint32 desired_access,
228 [out,ref] policy_handle *acct_handle
237 typedef [public] struct {
239 [size_is(num_sids)] lsa_SidPtr *sids;
242 NTSTATUS lsa_EnumAccounts (
243 [in,ref] policy_handle *handle,
244 [in,out,ref] uint32 *resume_handle,
245 [in] uint32 num_entries,
246 [out,ref] lsa_SidArray *sids
250 /*************************************************/
256 } lsa_TrustInformation;
258 NTSTATUS lsa_CreateTrustedDomain(
259 [in,ref] policy_handle *handle,
260 [in,ref] lsa_TrustInformation *info,
261 [in] uint32 desired_access,
262 [out,ref] policy_handle *dom_handle
272 } lsa_DomainInformation;
276 [size_is(count)] lsa_DomainInformation *domains;
279 NTSTATUS lsa_EnumTrustDom (
280 [in,ref] policy_handle *handle,
281 [in,out,ref] uint32 *resume_handle,
282 [in] uint32 num_entries,
283 [out,ref] lsa_DomainList *domains
298 [size_is(count)] lsa_TranslatedSid *sids;
303 [size_is(count)] lsa_TrustInformation *domains;
307 NTSTATUS lsa_LookupNames (
308 [in,ref] policy_handle *handle,
309 [in] uint32 num_names,
310 [in,ref,size_is(num_names)] lsa_Name *names,
311 [out] lsa_RefDomainList *domains,
312 [in,out,ref] lsa_TransSidArray *sids,
314 [in,out,ref] uint32 *count
325 } lsa_TranslatedName;
329 [size_is(count)] lsa_TranslatedName *names;
330 } lsa_TransNameArray;
332 NTSTATUS lsa_LookupSids (
333 [in,ref] policy_handle *handle,
334 [in,ref] lsa_SidArray *sids,
335 [out] lsa_RefDomainList *domains,
336 [in,out,ref] lsa_TransNameArray *names,
338 [in,out,ref] uint32 *count
343 NTSTATUS lsa_CreateSecret(
344 [in,ref] policy_handle *handle,
346 [in] uint32 desired_access,
347 [out,ref] policy_handle *sec_handle
351 /*****************************************/
353 NTSTATUS lsa_OpenAccount (
354 [in,ref] policy_handle *handle,
355 [in,ref] dom_sid2 *sid,
356 [in] uint32 desired_access,
357 [out,ref] policy_handle *acct_handle
361 /****************************************/
377 [size_is(count)] lsa_LUIDAttribute set[*];
380 NTSTATUS lsa_EnumPrivsAccount (
381 [in,ref] policy_handle *handle,
382 [out] lsa_PrivilegeSet *privs
387 NTSTATUS ADDPRIVS ();
389 NTSTATUS REMOVEPRIVS ();
391 NTSTATUS GETQUOTAS ();
393 NTSTATUS SETQUOTAS ();
395 NTSTATUS GETSYSTEMACCOUNT ();
397 NTSTATUS SETSYSTEMACCOUNT ();
399 NTSTATUS OPENTRUSTDOM ();
401 NTSTATUS QUERYTRUSTDOM ();
403 NTSTATUS SETINFOTRUSTDOM ();
405 NTSTATUS OPENSECRET ();
407 NTSTATUS SETSECRET ();
409 NTSTATUS QUERYSECRET ();
412 NTSTATUS LOOKUPPRIVVALUE ();
416 NTSTATUS lsa_LookupPrivName (
417 [in,ref] policy_handle *handle,
418 [in,ref] lsa_LUID *luid,
424 NTSTATUS PRIV_GET_DISPNAME ();
426 NTSTATUS DELETEOBJECT ();
428 NTSTATUS ENUMACCTWITHRIGHT ();
433 } lsa_RightAttribute;
437 [size_is(count)] lsa_Name *names;
440 NTSTATUS lsa_EnumAccountRights (
441 [in,ref] policy_handle *handle,
442 [in,ref] dom_sid2 *sid,
443 [out,ref] lsa_RightSet *rights
448 NTSTATUS ADDACCTRIGHTS ();
450 NTSTATUS REMOVEACCTRIGHTS ();
452 NTSTATUS QUERYTRUSTDOMINFO ();
454 NTSTATUS SETTRUSTDOMINFO ();
456 NTSTATUS DELETETRUSTDOM ();
458 NTSTATUS STOREPRIVDATA ();
460 NTSTATUS RETRPRIVDATA ();
463 /**********************/
465 NTSTATUS lsa_OpenPolicy2 (
466 [in] unistr *system_name,
467 [in,ref] lsa_ObjectAttribute *attr,
468 [in] uint32 desired_access,
469 [out,ref] policy_handle *handle
474 NTSTATUS UNK_GET_CONNUSER ();
476 NTSTATUS QUERYINFO2 ();
481 uuid(3919286a-b10c-11d0-9ba8-00c04fd92ef5),
483 endpoints(lsarpc,lsass),
484 pointer_default(unique)
491 void lsads_Unknown0();