- added the rest of the LSA calls as stubs
[ira/wip.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,ref]     policy_handle *handle
14                 );
15         
16         /******************/
17         /* Function: 0x01 */
18         NTSTATUS lsa_Delete ();
19
20         /******************/
21         /* Function: 0x02 */
22         NTSTATUS lsa_EnumPrivs ();
23
24         /******************/
25         /* Function: 0x03 */
26         NTSTATUS lsa_QuerySecObj ();
27
28         /******************/
29         /* Function: 0x04 */
30         NTSTATUS lsa_SetSecObj ();
31
32         /******************/
33         /* Function: 0x05 */
34         NTSTATUS lsa_ChangePassword ();
35
36
37         /******************/
38         /* Function: 0x06 */
39         typedef struct {
40                 [struct_len] uint32 _len;
41                 uint16  impersonation_level;
42                 uint8   context_mode;
43                 uint8   effective_only;
44         } lsa_QosInfo;
45         
46         typedef struct {
47                 [struct_len] uint32 _len;
48                 uint8 *root_dir;
49                 unistr *object_name;
50                 uint32 attributes;
51                 security_descriptor *sec_desc;
52                 lsa_QosInfo *sec_qos;
53         } lsa_ObjectAttribute;
54         
55         NTSTATUS lsa_OpenPolicy (
56                 [in]       uint16 *system_name,
57                 [in,ref]   lsa_ObjectAttribute *attr,
58                 [in]       uint32 desired_access,
59                 [out,ref]  policy_handle *handle
60                 );
61         
62
63         /******************/
64         /* Function: 0x07 */
65         NTSTATUS lsa_QueryInfoPolicy ();
66
67         /******************/
68         /* Function:       0x08 */
69         NTSTATUS lsa_SetInfoPolicy ();
70
71         /******************/
72         /* Function:       0x09 */
73         NTSTATUS lsa_ClearAuditLog ();
74
75         /******************/
76         /* Function: 0x0a */
77         NTSTATUS lsa_CreateAccount ();
78
79
80         /******************/
81         /* Function: 0x0b */
82         typedef struct {
83                 dom_sid2 *sid;
84         } lsa_SidPtr;
85         
86         typedef struct {
87                 uint32 num_sids;
88                 [size_is(num_sids)] lsa_SidPtr *sids;
89         } lsa_SidArray;
90
91         NTSTATUS lsa_EnumAccounts (
92                 [in,ref]     policy_handle *handle,
93                 [in,out,ref] uint32 *resume_handle,
94                 [in]         uint32 num_entries,
95                 [out,ref]    lsa_SidArray *sids
96                 );
97
98
99         /*************************************************/
100         /* Function: 0x0c                                */
101         NTSTATUS lsa_CreateTrustDom ();
102
103         /******************/
104         /* Function: 0x0d */
105         NTSTATUS lsa_EnumTrustDom ();
106
107
108         /******************/
109         /* Function: 0x0e */
110
111         typedef struct {
112                 uint16 name_len;
113                 uint16 name_size;
114                 unistr_noterm *name;
115         } lsa_Name;
116
117         typedef struct {
118                 uint16 sid_type;
119                 uint32 rid;
120                 uint32 sid_index;
121         } lsa_TranslatedSid;
122
123         typedef struct {
124                 uint32 count;
125                 [size_is(count)] lsa_TranslatedSid *sids;
126         } lsa_TransSidArray;
127
128         typedef struct {
129                 lsa_Name name;
130                 dom_sid2 *sid;
131         } lsa_TrustInformation;
132
133         typedef struct {
134                 uint32 count;
135                 [size_is(count)] lsa_TrustInformation *domains;
136                 uint32 max_count;
137         } lsa_RefDomainList;
138
139         NTSTATUS lsa_LookupNames (
140                 [in,ref]     policy_handle *handle,
141                 [in]         uint32 num_names,
142                 [in,ref,size_is(num_names)]  lsa_Name *names,
143                 [out]        lsa_RefDomainList *domains,
144                 [in,out,ref] lsa_TransSidArray *sids,
145                 [in]         uint16 level,
146                 [in,out,ref] uint32 *count
147                 );
148
149
150         /******************/
151         /* Function: 0x0f */
152
153         typedef struct {
154                 uint16 sid_type;
155                 lsa_Name name;
156                 uint32 sid_index;
157         } lsa_TranslatedName;
158
159         typedef struct {
160                 uint32 count;
161                 [size_is(count)] lsa_TranslatedName *names;
162         } lsa_TransNameArray;
163
164         NTSTATUS lsa_LookupSids (
165                 [in,ref]     policy_handle *handle,
166                 [in,ref]     lsa_SidArray *sids,
167                 [out]        lsa_RefDomainList *domains,
168                 [in,out,ref] lsa_TransNameArray *names,
169                 [in]         uint16 level,
170                 [in,out,ref] uint32 *count
171                 );
172
173
174         /* Function:        0x10 */
175         NTSTATUS CREATESECRET ();
176         /* Function:     0x11 */
177         NTSTATUS OPENACCOUNT ();
178         /* Function:    0x12 */
179         NTSTATUS ENUMPRIVSACCOUNT ();
180         /* Function:            0x13 */
181         NTSTATUS ADDPRIVS ();
182         /* Function:         0x14 */
183         NTSTATUS REMOVEPRIVS ();
184         /* Function:           0x15 */
185         NTSTATUS GETQUOTAS ();
186         /* Function:           0x16 */
187         NTSTATUS SETQUOTAS ();
188         /* Function:    0x17 */
189         NTSTATUS GETSYSTEMACCOUNT ();
190         /* Function:    0x18 */
191         NTSTATUS SETSYSTEMACCOUNT ();
192         /* Function:        0x19 */
193         NTSTATUS OPENTRUSTDOM ();
194         /* Function:       0x1a */
195         NTSTATUS QUERYTRUSTDOM ();
196         /* Function:     0x1b */
197         NTSTATUS SETINFOTRUSTDOM ();
198         /* Function:          0x1c */
199         NTSTATUS OPENSECRET ();
200         /* Function:           0x1d */
201         NTSTATUS SETSECRET ();
202         /* Function:         0x1e */
203         NTSTATUS QUERYSECRET ();
204         /* Function:     0x1f */
205         NTSTATUS LOOKUPPRIVVALUE ();
206         /* Function:      0x20 */
207         NTSTATUS LOOKUPPRIVNAME ();
208         /* Function:  0x21 */
209         NTSTATUS PRIV_GET_DISPNAME ();
210         /* Function:        0x22 */
211         NTSTATUS DELETEOBJECT ();
212         /* Function:   0x23 */
213         NTSTATUS ENUMACCTWITHRIGHT ();
214         /* Function:      0x24 */
215         NTSTATUS ENUMACCTRIGHTS ();
216         /* Function:       0x25 */
217         NTSTATUS ADDACCTRIGHTS ();
218         /* Function:    0x26 */
219         NTSTATUS REMOVEACCTRIGHTS ();
220         /* Function:   0x27 */
221         NTSTATUS QUERYTRUSTDOMINFO ();
222         /* Function:     0x28 */
223         NTSTATUS SETTRUSTDOMINFO ();
224         /* Function:      0x29 */
225         NTSTATUS DELETETRUSTDOM ();
226         /* Function:       0x2a */
227         NTSTATUS STOREPRIVDATA ();
228         /* Function:        0x2b */
229         NTSTATUS RETRPRIVDATA ();
230
231
232         /**********************/
233         /* Function:     0x2c */
234         NTSTATUS lsa_OpenPolicy2 (
235                 [in]      unistr *system_name,
236                 [in,ref]  lsa_ObjectAttribute *attr,
237                 [in]      uint32 desired_access,
238                 [out,ref] policy_handle *handle
239                 );
240
241
242         /* Function:    0x2d */
243         NTSTATUS UNK_GET_CONNUSER ();
244         /* Function:          0x2e */
245         NTSTATUS QUERYINFO2 ();
246
247
248
249 }