- fixed lsa_EnumTrustDom
[samba.git] / source4 / librpc / idl / lsa.idl
1 /*
2   lsa interface definition
3 */
4
5 [ uuid(12345778-1234-abcd-ef00-0123456789ab),
6   version(0.0),
7   pointer_default(unique)
8 ] interface lsarpc
9 {
10         /******************/
11         /* Function: 0x00 */
12         NTSTATUS lsa_Close (
13                 [in,out,ref]     policy_handle *handle
14                 );
15         
16
17         /******************/
18         /* Function: 0x01 */
19         NTSTATUS lsa_Delete (
20                 [in,ref]     policy_handle *handle
21                 );
22
23         /******************/
24         /* Function: 0x02 */
25
26         typedef struct {
27                 uint16 name_len;
28                 uint16 name_size;
29                 unistr_noterm *name;
30         } lsa_Name;
31
32         typedef struct {
33                 lsa_Name name;
34                 uint32 luid_low;
35                 uint32 luid_high;
36         } lsa_PrivEntry;
37
38         typedef struct {
39                 uint32 count;
40                 [size_is(count)] lsa_PrivEntry *privs;
41         } lsa_PrivArray;
42
43         NTSTATUS lsa_EnumPrivs (
44                 [in,ref]     policy_handle *handle,
45                 [in,out,ref] uint32 *resume_handle,
46                 [in]         uint32 max_count,
47                 [out,ref]    lsa_PrivArray *privs
48                 );
49
50         /******************/
51         /* Function: 0x03 */
52         NTSTATUS lsa_QuerySecObj ();
53
54         /******************/
55         /* Function: 0x04 */
56         NTSTATUS lsa_SetSecObj ();
57
58         /******************/
59         /* Function: 0x05 */
60         NTSTATUS lsa_ChangePassword ();
61
62
63         /******************/
64         /* Function: 0x06 */
65         typedef struct {
66                 [struct_len] uint32 _len;
67                 uint16  impersonation_level;
68                 uint8   context_mode;
69                 uint8   effective_only;
70         } lsa_QosInfo;
71         
72         typedef struct {
73                 [struct_len] uint32 _len;
74                 uint8 *root_dir;
75                 unistr *object_name;
76                 uint32 attributes;
77                 security_descriptor *sec_desc;
78                 lsa_QosInfo *sec_qos;
79         } lsa_ObjectAttribute;
80
81         /* notice the screwup with the system_name - thats why MS created
82            OpenPolicy2 */
83         NTSTATUS lsa_OpenPolicy (
84                 [in]       uint16 *system_name,
85                 [in,ref]   lsa_ObjectAttribute *attr,
86                 [in]       uint32 desired_access,
87                 [out,ref]  policy_handle *handle
88                 );
89         
90
91
92         /******************/
93         /* Function: 0x07 */
94         NTSTATUS lsa_QueryInfoPolicy ();
95
96         /******************/
97         /* Function:       0x08 */
98         NTSTATUS lsa_SetInfoPolicy ();
99
100         /******************/
101         /* Function:       0x09 */
102         NTSTATUS lsa_ClearAuditLog ();
103
104         /******************/
105         /* Function: 0x0a */
106         NTSTATUS lsa_CreateAccount ();
107
108
109         /******************/
110         /* Function: 0x0b */
111         typedef struct {
112                 dom_sid2 *sid;
113         } lsa_SidPtr;
114         
115         typedef struct {
116                 uint32 num_sids;
117                 [size_is(num_sids)] lsa_SidPtr *sids;
118         } lsa_SidArray;
119
120         NTSTATUS lsa_EnumAccounts (
121                 [in,ref]     policy_handle *handle,
122                 [in,out,ref] uint32 *resume_handle,
123                 [in]         uint32 num_entries,
124                 [out,ref]    lsa_SidArray *sids
125                 );
126
127
128         /*************************************************/
129         /* Function: 0x0c                                */
130         NTSTATUS lsa_CreateTrustDom ();
131
132
133         /******************/
134         /* Function: 0x0d */
135
136         typedef struct {
137                 lsa_Name name;
138                 dom_sid2 *sid;
139         } lsa_DomainInformation;
140
141         typedef struct {
142                 uint32 count;
143                 [size_is(count)] lsa_DomainInformation *domains;
144         } lsa_DomainList;
145
146         NTSTATUS lsa_EnumTrustDom (
147                 [in,ref]     policy_handle *handle,
148                 [in,out,ref] uint32 *resume_handle,
149                 [in]         uint32 num_entries,
150                 [out,ref]    lsa_DomainList *domains
151                 );
152
153
154         /******************/
155         /* Function: 0x0e */
156
157         typedef struct {
158                 uint16 sid_type;
159                 uint32 rid;
160                 uint32 sid_index;
161         } lsa_TranslatedSid;
162
163         typedef struct {
164                 uint32 count;
165                 [size_is(count)] lsa_TranslatedSid *sids;
166         } lsa_TransSidArray;
167
168         typedef struct {
169                 lsa_Name name;
170                 dom_sid2 *sid;
171         } lsa_TrustInformation;
172
173         typedef struct {
174                 uint32 count;
175                 [size_is(count)] lsa_TrustInformation *domains;
176                 uint32 max_count;
177         } lsa_RefDomainList;
178
179         NTSTATUS lsa_LookupNames (
180                 [in,ref]     policy_handle *handle,
181                 [in]         uint32 num_names,
182                 [in,ref,size_is(num_names)]  lsa_Name *names,
183                 [out]        lsa_RefDomainList *domains,
184                 [in,out,ref] lsa_TransSidArray *sids,
185                 [in]         uint16 level,
186                 [in,out,ref] uint32 *count
187                 );
188
189
190         /******************/
191         /* Function: 0x0f */
192
193         typedef struct {
194                 uint16 sid_type;
195                 lsa_Name name;
196                 uint32 sid_index;
197         } lsa_TranslatedName;
198
199         typedef struct {
200                 uint32 count;
201                 [size_is(count)] lsa_TranslatedName *names;
202         } lsa_TransNameArray;
203
204         NTSTATUS lsa_LookupSids (
205                 [in,ref]     policy_handle *handle,
206                 [in,ref]     lsa_SidArray *sids,
207                 [out]        lsa_RefDomainList *domains,
208                 [in,out,ref] lsa_TransNameArray *names,
209                 [in]         uint16 level,
210                 [in,out,ref] uint32 *count
211                 );
212
213
214         /* Function:        0x10 */
215         NTSTATUS CREATESECRET ();
216
217
218         /*****************************************/
219         /* Function:     0x11                    */
220         NTSTATUS lsa_OpenAccount (
221                 [in,ref]     policy_handle *handle,
222                 [in,ref]     dom_sid2 *sid,
223                 [in]         uint32 desired_access,
224                 [out,ref]    policy_handle *acct_handle
225                 );
226
227
228         /* Function:    0x12 */
229         NTSTATUS ENUMPRIVSACCOUNT ();
230         /* Function:            0x13 */
231         NTSTATUS ADDPRIVS ();
232         /* Function:         0x14 */
233         NTSTATUS REMOVEPRIVS ();
234         /* Function:           0x15 */
235         NTSTATUS GETQUOTAS ();
236         /* Function:           0x16 */
237         NTSTATUS SETQUOTAS ();
238         /* Function:    0x17 */
239         NTSTATUS GETSYSTEMACCOUNT ();
240         /* Function:    0x18 */
241         NTSTATUS SETSYSTEMACCOUNT ();
242         /* Function:        0x19 */
243         NTSTATUS OPENTRUSTDOM ();
244         /* Function:       0x1a */
245         NTSTATUS QUERYTRUSTDOM ();
246         /* Function:     0x1b */
247         NTSTATUS SETINFOTRUSTDOM ();
248         /* Function:          0x1c */
249         NTSTATUS OPENSECRET ();
250         /* Function:           0x1d */
251         NTSTATUS SETSECRET ();
252         /* Function:         0x1e */
253         NTSTATUS QUERYSECRET ();
254         /* Function:     0x1f */
255         NTSTATUS LOOKUPPRIVVALUE ();
256         /* Function:      0x20 */
257         NTSTATUS LOOKUPPRIVNAME ();
258         /* Function:  0x21 */
259         NTSTATUS PRIV_GET_DISPNAME ();
260         /* Function:        0x22 */
261         NTSTATUS DELETEOBJECT ();
262         /* Function:   0x23 */
263         NTSTATUS ENUMACCTWITHRIGHT ();
264         /* Function:      0x24 */
265         NTSTATUS ENUMACCTRIGHTS ();
266         /* Function:       0x25 */
267         NTSTATUS ADDACCTRIGHTS ();
268         /* Function:    0x26 */
269         NTSTATUS REMOVEACCTRIGHTS ();
270         /* Function:   0x27 */
271         NTSTATUS QUERYTRUSTDOMINFO ();
272         /* Function:     0x28 */
273         NTSTATUS SETTRUSTDOMINFO ();
274         /* Function:      0x29 */
275         NTSTATUS DELETETRUSTDOM ();
276         /* Function:       0x2a */
277         NTSTATUS STOREPRIVDATA ();
278         /* Function:        0x2b */
279         NTSTATUS RETRPRIVDATA ();
280
281
282         /**********************/
283         /* Function:     0x2c */
284         NTSTATUS lsa_OpenPolicy2 (
285                 [in]      unistr *system_name,
286                 [in,ref]  lsa_ObjectAttribute *attr,
287                 [in]      uint32 desired_access,
288                 [out,ref] policy_handle *handle
289                 );
290
291
292         /* Function:    0x2d */
293         NTSTATUS UNK_GET_CONNUSER ();
294         /* Function:          0x2e */
295         NTSTATUS QUERYINFO2 ();
296
297
298
299 }