* added a bunch of placeholder IDL files
[jelmer/samba4-debian.git] / source / librpc / idl / lsa.idl
1 #include "idl_types.h"
2
3 /*
4   lsa interface definition
5 */
6
7 [ uuid(12345778-1234-abcd-ef00-0123456789ab),
8   version(0.0),
9   endpoints(lsarpc lsass),
10   pointer_default(unique)
11 ] interface lsarpc
12 {
13         /******************/
14         /* Function: 0x00 */
15         NTSTATUS lsa_Close (
16                 [in,out,ref]     policy_handle *handle
17                 );
18         
19
20         /******************/
21         /* Function: 0x01 */
22         NTSTATUS lsa_Delete (
23                 [in,ref]     policy_handle *handle
24                 );
25
26
27         /******************/
28         /* Function: 0x02 */
29
30         typedef struct {
31                 [value(2*strlen_m(r->name))] uint16 name_len;
32                 [value(r->name_len)] uint16 name_size;
33                 unistr_noterm *name;
34         } lsa_Name;
35
36         typedef struct {
37                 lsa_Name name;
38                 uint32 luid_low;
39                 uint32 luid_high;
40         } lsa_PrivEntry;
41
42         typedef struct {
43                 uint32 count;
44                 [size_is(count)] lsa_PrivEntry *privs;
45         } lsa_PrivArray;
46
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
52                 );
53
54
55         /******************/
56         /* Function: 0x03 */
57
58         typedef struct {
59                 uint32 size;
60                 [subcontext(4)] security_descriptor *sd;
61         } sec_desc_buf;
62
63         NTSTATUS lsa_QuerySecObj (
64                 [in,ref]     policy_handle *handle,
65                 [in]         uint32 sec_info,
66                 [out]        sec_desc_buf *sd
67                 );
68
69
70         /******************/
71         /* Function: 0x04 */
72         NTSTATUS lsa_SetSecObj ();
73
74
75         /******************/
76         /* Function: 0x05 */
77         NTSTATUS lsa_ChangePassword ();
78
79
80         /******************/
81         /* Function: 0x06 */
82         typedef struct {
83                 uint32  len; /* ignored */
84                 uint16  impersonation_level;
85                 uint8   context_mode;
86                 uint8   effective_only;
87         } lsa_QosInfo;
88         
89         typedef struct {
90                 uint32 len; /* ignored */
91                 uint8 *root_dir;
92                 unistr *object_name;
93                 uint32 attributes;
94                 security_descriptor *sec_desc;
95                 lsa_QosInfo *sec_qos;
96         } lsa_ObjectAttribute;
97
98         /* notice the screwup with the system_name - thats why MS created
99            OpenPolicy2 */
100         NTSTATUS lsa_OpenPolicy (
101                 [in]       uint16 *system_name,
102                 [in,ref]   lsa_ObjectAttribute *attr,
103                 [in]       uint32 desired_access,
104                 [out,ref]  policy_handle *handle
105                 );
106         
107
108
109         /******************/
110         /* Function: 0x07 */
111
112         typedef struct {
113                 uint32 percent_full;
114                 uint32 log_size;
115                 NTTIME retention_time;
116                 uint8  shutdown_in_progress;
117                 NTTIME time_to_shutdown;
118                 uint32 next_audit_record;
119                 uint32 unknown;
120         } lsa_AuditLogInfo;
121
122         typedef struct {
123                 uint32 auditing_mode;
124                 [size_is(count)] uint32 *settings;
125                 uint32 count;
126         } lsa_AuditEventsInfo;
127
128         typedef struct {
129                 lsa_Name name;
130                 dom_sid2 *sid;
131         } lsa_DomainInfo;
132
133         typedef struct {
134                 lsa_Name name;
135         } lsa_PDAccountInfo;
136
137         typedef struct {
138                 uint16 unknown; /* an midl padding bug? */
139                 uint16 role;
140         } lsa_ServerRole;
141
142         typedef struct {
143                 lsa_Name source;
144                 lsa_Name account;
145         } lsa_ReplicaSourceInfo;
146
147         typedef struct {
148                 uint32 paged_pool;
149                 uint32 non_paged_pool;
150                 uint32 min_wss;
151                 uint32 max_wss;
152                 uint32 pagefile;
153                 HYPER_T unknown;
154         } lsa_DefaultQuotaInfo;
155
156         typedef struct {
157                 HYPER_T modified_id;
158                 NTTIME db_create_time;
159         } lsa_ModificationInfo;
160
161         typedef struct {
162                 uint8 shutdown_on_full;
163         } lsa_AuditFullSetInfo;
164
165         typedef struct {
166                 uint16 unknown; /* an midl padding bug? */
167                 uint8 shutdown_on_full;
168                 uint8 log_is_full;
169         } lsa_AuditFullQueryInfo;
170
171         typedef struct {
172                 lsa_Name name;
173                 lsa_Name dns_domain;
174                 lsa_Name dns_forest;
175                 GUID domain_guid;
176                 dom_sid2 *sid;
177         } lsa_DnsDomainInfo;
178
179         typedef union {
180                 [case(1)]  lsa_AuditLogInfo audit_log;
181                 [case(2)]  lsa_AuditEventsInfo audit_events;
182                 [case(3)]  lsa_DomainInfo domain;
183                 [case(4)]  lsa_PDAccountInfo pd;
184                 [case(5)]  lsa_DomainInfo account_domain;
185                 [case(6)]  lsa_ServerRole role;
186                 [case(7)]  lsa_ReplicaSourceInfo replica;
187                 [case(8)]  lsa_DefaultQuotaInfo quota;
188                 [case(9)]  lsa_ModificationInfo db;
189                 [case(10)] lsa_AuditFullSetInfo auditfullset;
190                 [case(11)] lsa_AuditFullQueryInfo auditfullquery;
191                 [case(12)] lsa_DnsDomainInfo dns;
192         } lsa_PolicyInformation;
193
194         NTSTATUS lsa_QueryInfoPolicy (
195                 [in,ref]                 policy_handle *handle,
196                 [in]                     uint16 level,
197                 [out,switch_is(level)]   lsa_PolicyInformation *info
198                 );
199
200         /******************/
201         /* Function:       0x08 */
202         NTSTATUS lsa_SetInfoPolicy ();
203
204         /******************/
205         /* Function:       0x09 */
206         NTSTATUS lsa_ClearAuditLog ();
207
208         /******************/
209         /* Function: 0x0a */
210         NTSTATUS lsa_CreateAccount ();
211
212
213         /******************/
214         /* Function: 0x0b */
215         typedef struct {
216                 dom_sid2 *sid;
217         } lsa_SidPtr;
218         
219         typedef struct {
220                 uint32 num_sids;
221                 [size_is(num_sids)] lsa_SidPtr *sids;
222         } lsa_SidArray;
223
224         NTSTATUS lsa_EnumAccounts (
225                 [in,ref]     policy_handle *handle,
226                 [in,out,ref] uint32 *resume_handle,
227                 [in]         uint32 num_entries,
228                 [out,ref]    lsa_SidArray *sids
229                 );
230
231
232         /*************************************************/
233         /* Function: 0x0c                                */
234         NTSTATUS lsa_CreateTrustDom ();
235
236
237         /******************/
238         /* Function: 0x0d */
239
240         typedef struct {
241                 lsa_Name name;
242                 dom_sid2 *sid;
243         } lsa_DomainInformation;
244
245         typedef struct {
246                 uint32 count;
247                 [size_is(count)] lsa_DomainInformation *domains;
248         } lsa_DomainList;
249
250         NTSTATUS lsa_EnumTrustDom (
251                 [in,ref]     policy_handle *handle,
252                 [in,out,ref] uint32 *resume_handle,
253                 [in]         uint32 num_entries,
254                 [out,ref]    lsa_DomainList *domains
255                 );
256
257
258         /******************/
259         /* Function: 0x0e */
260
261         typedef struct {
262                 uint16 sid_type;
263                 uint32 rid;
264                 uint32 sid_index;
265         } lsa_TranslatedSid;
266
267         typedef struct {
268                 uint32 count;
269                 [size_is(count)] lsa_TranslatedSid *sids;
270         } lsa_TransSidArray;
271
272         typedef struct {
273                 lsa_Name name;
274                 dom_sid2 *sid;
275         } lsa_TrustInformation;
276
277         typedef struct {
278                 uint32 count;
279                 [size_is(count)] lsa_TrustInformation *domains;
280                 uint32 max_count;
281         } lsa_RefDomainList;
282
283         NTSTATUS lsa_LookupNames (
284                 [in,ref]     policy_handle *handle,
285                 [in]         uint32 num_names,
286                 [in,ref,size_is(num_names)]  lsa_Name *names,
287                 [out]        lsa_RefDomainList *domains,
288                 [in,out,ref] lsa_TransSidArray *sids,
289                 [in]         uint16 level,
290                 [in,out,ref] uint32 *count
291                 );
292
293
294         /******************/
295         /* Function: 0x0f */
296
297         typedef struct {
298                 uint16 sid_type;
299                 lsa_Name name;
300                 uint32 sid_index;
301         } lsa_TranslatedName;
302
303         typedef struct {
304                 uint32 count;
305                 [size_is(count)] lsa_TranslatedName *names;
306         } lsa_TransNameArray;
307
308         NTSTATUS lsa_LookupSids (
309                 [in,ref]     policy_handle *handle,
310                 [in,ref]     lsa_SidArray *sids,
311                 [out]        lsa_RefDomainList *domains,
312                 [in,out,ref] lsa_TransNameArray *names,
313                 [in]         uint16 level,
314                 [in,out,ref] uint32 *count
315                 );
316
317
318         /* Function:        0x10 */
319         NTSTATUS CREATESECRET ();
320
321
322         /*****************************************/
323         /* Function:     0x11                    */
324         NTSTATUS lsa_OpenAccount (
325                 [in,ref]     policy_handle *handle,
326                 [in,ref]     dom_sid2 *sid,
327                 [in]         uint32 desired_access,
328                 [out,ref]    policy_handle *acct_handle
329                 );
330
331
332         /****************************************/
333         /* Function:    0x12                    */
334
335         typedef struct {
336                 uint32 low;
337                 uint32 high;
338         } lsa_LUID;
339         
340         typedef struct {
341                 lsa_LUID luid;
342                 uint32 attribute;
343         } lsa_LUIDAttribute;
344         
345         typedef struct {
346                 uint32 count;
347                 uint32 unknown;
348                 [size_is(count)] lsa_LUIDAttribute set[*];
349         } lsa_PrivilegeSet;
350         
351         NTSTATUS lsa_EnumPrivsAccount (
352                 [in,ref]     policy_handle *handle,
353                 [out]        lsa_PrivilegeSet *privs
354                 );
355
356
357         /* Function:            0x13 */
358         NTSTATUS ADDPRIVS ();
359         /* Function:         0x14 */
360         NTSTATUS REMOVEPRIVS ();
361         /* Function:           0x15 */
362         NTSTATUS GETQUOTAS ();
363         /* Function:           0x16 */
364         NTSTATUS SETQUOTAS ();
365         /* Function:    0x17 */
366         NTSTATUS GETSYSTEMACCOUNT ();
367         /* Function:    0x18 */
368         NTSTATUS SETSYSTEMACCOUNT ();
369         /* Function:        0x19 */
370         NTSTATUS OPENTRUSTDOM ();
371         /* Function:       0x1a */
372         NTSTATUS QUERYTRUSTDOM ();
373         /* Function:     0x1b */
374         NTSTATUS SETINFOTRUSTDOM ();
375         /* Function:          0x1c */
376         NTSTATUS OPENSECRET ();
377         /* Function:           0x1d */
378         NTSTATUS SETSECRET ();
379         /* Function:         0x1e */
380         NTSTATUS QUERYSECRET ();
381
382         /* Function:     0x1f */
383         NTSTATUS LOOKUPPRIVVALUE ();
384
385
386         /* Function:      0x20 */
387         NTSTATUS lsa_LookupPrivName (
388                 [in,ref]     policy_handle *handle,
389                 [in,ref]     lsa_LUID *luid,
390                 [out]        lsa_Name *name
391                 );
392
393
394         /* Function:  0x21 */
395         NTSTATUS PRIV_GET_DISPNAME ();
396         /* Function:        0x22 */
397         NTSTATUS DELETEOBJECT ();
398         /* Function:   0x23 */
399         NTSTATUS ENUMACCTWITHRIGHT ();
400
401         /* Function:      0x24 */
402         typedef struct {
403                 unistr *name;
404         } lsa_RightAttribute;
405         
406         typedef struct {
407                 uint32 count;
408                 [size_is(count)] lsa_Name *names;
409         } lsa_RightSet;
410         
411         NTSTATUS lsa_EnumAccountRights (
412                 [in,ref]     policy_handle *handle,
413                 [in,ref]     dom_sid2 *sid,
414                 [out,ref]    lsa_RightSet *rights
415                 );
416
417
418         /* Function:       0x25 */
419         NTSTATUS ADDACCTRIGHTS ();
420         /* Function:    0x26 */
421         NTSTATUS REMOVEACCTRIGHTS ();
422         /* Function:   0x27 */
423         NTSTATUS QUERYTRUSTDOMINFO ();
424         /* Function:     0x28 */
425         NTSTATUS SETTRUSTDOMINFO ();
426         /* Function:      0x29 */
427         NTSTATUS DELETETRUSTDOM ();
428         /* Function:       0x2a */
429         NTSTATUS STOREPRIVDATA ();
430         /* Function:        0x2b */
431         NTSTATUS RETRPRIVDATA ();
432
433
434         /**********************/
435         /* Function:     0x2c */
436         NTSTATUS lsa_OpenPolicy2 (
437                 [in]      unistr *system_name,
438                 [in,ref]  lsa_ObjectAttribute *attr,
439                 [in]      uint32 desired_access,
440                 [out,ref] policy_handle *handle
441                 );
442
443
444         /* Function:    0x2d */
445         NTSTATUS UNK_GET_CONNUSER ();
446         /* Function:          0x2e */
447         NTSTATUS QUERYINFO2 ();
448 }
449
450
451
452   uuid(3919286a-b10c-11d0-9ba8-00c04fd92ef5)
453   version(0.0),
454   endpoints(lsarpc,lsass),
455   pointer_default(unique)
456
457 interface lsads
458 {
459
460         /*****************/
461         /* Function 0x00 */
462         lsads_Unknown0();
463
464 }