1 | #include "idl_types.h"
|
---|
2 |
|
---|
3 | /*
|
---|
4 | wkssvc interface definitions
|
---|
5 | */
|
---|
6 |
|
---|
7 | import "srvsvc.idl", "lsa.idl";
|
---|
8 |
|
---|
9 | [ uuid("6bffd098-a112-3610-9833-46c3f87e345a"),
|
---|
10 | version(1.0),
|
---|
11 | pointer_default(unique),
|
---|
12 | helpstring("Workstation Service"),
|
---|
13 | endpoint("ncacn_np:[\\pipe\\wkssvc]","ncacn_ip_tcp:","ncalrpc:")
|
---|
14 | ] interface wkssvc
|
---|
15 | {
|
---|
16 | typedef [v1_enum] enum srvsvc_PlatformId srvsvc_PlatformId;
|
---|
17 |
|
---|
18 | #define BOOL uint32
|
---|
19 |
|
---|
20 | /******************/
|
---|
21 | /* Function: 0x00 */
|
---|
22 |
|
---|
23 | typedef struct {
|
---|
24 | srvsvc_PlatformId platform_id;
|
---|
25 | [string,charset(UTF16)] uint16 *server_name;
|
---|
26 | [string,charset(UTF16)] uint16 *domain_name;
|
---|
27 | uint32 version_major;
|
---|
28 | uint32 version_minor;
|
---|
29 | } wkssvc_NetWkstaInfo100;
|
---|
30 |
|
---|
31 | typedef struct {
|
---|
32 | srvsvc_PlatformId platform_id;
|
---|
33 | [string,charset(UTF16)] uint16 *server_name;
|
---|
34 | [string,charset(UTF16)] uint16 *domain_name;
|
---|
35 | uint32 version_major;
|
---|
36 | uint32 version_minor;
|
---|
37 | [string,charset(UTF16)] uint16 *lan_root;
|
---|
38 | } wkssvc_NetWkstaInfo101;
|
---|
39 |
|
---|
40 | typedef struct {
|
---|
41 | srvsvc_PlatformId platform_id;
|
---|
42 | [string,charset(UTF16)] uint16 *server_name;
|
---|
43 | [string,charset(UTF16)] uint16 *domain_name;
|
---|
44 | uint32 version_major;
|
---|
45 | uint32 version_minor;
|
---|
46 | [string,charset(UTF16)] uint16 *lan_root;
|
---|
47 | uint32 logged_on_users;
|
---|
48 | } wkssvc_NetWkstaInfo102;
|
---|
49 |
|
---|
50 | /* FIXME: 302, 402 */
|
---|
51 |
|
---|
52 | typedef struct {
|
---|
53 | uint32 char_wait;
|
---|
54 | uint32 collection_time;
|
---|
55 | uint32 maximum_collection_count;
|
---|
56 | uint32 keep_connection;
|
---|
57 | uint32 max_commands;
|
---|
58 | uint32 session_timeout;
|
---|
59 | uint32 size_char_buf;
|
---|
60 | uint32 max_threads;
|
---|
61 | uint32 lock_quota;
|
---|
62 | uint32 lock_increment;
|
---|
63 | uint32 lock_maximum;
|
---|
64 | uint32 pipe_increment;
|
---|
65 | uint32 pipe_maximum;
|
---|
66 | uint32 cache_file_timeout;
|
---|
67 | uint32 dormant_file_limit;
|
---|
68 | uint32 read_ahead_throughput;
|
---|
69 | uint32 num_mailslot_buffers;
|
---|
70 | uint32 num_srv_announce_buffers;
|
---|
71 | uint32 max_illegal_dgram_events;
|
---|
72 | uint32 dgram_event_reset_freq;
|
---|
73 | BOOL log_election_packets;
|
---|
74 | BOOL use_opportunistic_locking;
|
---|
75 | BOOL use_unlock_behind;
|
---|
76 | BOOL use_close_behind;
|
---|
77 | BOOL buf_named_pipes;
|
---|
78 | BOOL use_lock_read_unlock;
|
---|
79 | BOOL utilize_nt_caching;
|
---|
80 | BOOL use_raw_read;
|
---|
81 | BOOL use_raw_write;
|
---|
82 | BOOL use_write_raw_data;
|
---|
83 | BOOL use_encryption;
|
---|
84 | BOOL buf_files_deny_write;
|
---|
85 | BOOL buf_read_only_files;
|
---|
86 | BOOL force_core_create_mode;
|
---|
87 | BOOL use_512_byte_max_transfer;
|
---|
88 | } wkssvc_NetWkstaInfo502;
|
---|
89 |
|
---|
90 | typedef struct {
|
---|
91 | uint32 char_wait;
|
---|
92 | } wkssvc_NetWkstaInfo1010;
|
---|
93 |
|
---|
94 | typedef struct {
|
---|
95 | uint32 collection_time;
|
---|
96 | } wkssvc_NetWkstaInfo1011;
|
---|
97 |
|
---|
98 | typedef struct {
|
---|
99 | uint32 maximum_collection_count;
|
---|
100 | } wkssvc_NetWkstaInfo1012;
|
---|
101 |
|
---|
102 | typedef struct {
|
---|
103 | uint32 keep_connection;
|
---|
104 | } wkssvc_NetWkstaInfo1013;
|
---|
105 |
|
---|
106 | typedef struct {
|
---|
107 | uint32 session_timeout;
|
---|
108 | } wkssvc_NetWkstaInfo1018;
|
---|
109 |
|
---|
110 | typedef struct {
|
---|
111 | uint32 size_char_buf;
|
---|
112 | } wkssvc_NetWkstaInfo1023;
|
---|
113 |
|
---|
114 | typedef struct {
|
---|
115 | uint32 errorlog_sz;
|
---|
116 | } wkssvc_NetWkstaInfo1027;
|
---|
117 |
|
---|
118 | /* downlevel */
|
---|
119 | typedef struct {
|
---|
120 | uint32 print_buf_time;
|
---|
121 | } wkssvc_NetWkstaInfo1028;
|
---|
122 |
|
---|
123 | /* downlevel */
|
---|
124 | typedef struct {
|
---|
125 | uint32 wrk_heuristics;
|
---|
126 | } wkssvc_NetWkstaInfo1032;
|
---|
127 |
|
---|
128 | typedef struct {
|
---|
129 | uint32 max_threads;
|
---|
130 | } wkssvc_NetWkstaInfo1033;
|
---|
131 |
|
---|
132 | typedef struct {
|
---|
133 | uint32 lock_quota;
|
---|
134 | } wkssvc_NetWkstaInfo1041;
|
---|
135 |
|
---|
136 | typedef struct {
|
---|
137 | uint32 lock_increment;
|
---|
138 | } wkssvc_NetWkstaInfo1042;
|
---|
139 |
|
---|
140 | typedef struct {
|
---|
141 | uint32 lock_maximum;
|
---|
142 | } wkssvc_NetWkstaInfo1043;
|
---|
143 |
|
---|
144 | typedef struct {
|
---|
145 | uint32 pipe_increment;
|
---|
146 | } wkssvc_NetWkstaInfo1044;
|
---|
147 |
|
---|
148 | typedef struct {
|
---|
149 | uint32 pipe_maximum;
|
---|
150 | } wkssvc_NetWkstaInfo1045;
|
---|
151 |
|
---|
152 | typedef struct {
|
---|
153 | uint32 dormant_file_limit;
|
---|
154 | } wkssvc_NetWkstaInfo1046;
|
---|
155 |
|
---|
156 | typedef struct {
|
---|
157 | uint32 cache_file_timeout;
|
---|
158 | } wkssvc_NetWkstaInfo1047;
|
---|
159 |
|
---|
160 | typedef struct {
|
---|
161 | uint32 use_opportunistic_locking;
|
---|
162 | } wkssvc_NetWkstaInfo1048;
|
---|
163 |
|
---|
164 | typedef struct {
|
---|
165 | uint32 use_unlock_behind;
|
---|
166 | } wkssvc_NetWkstaInfo1049;
|
---|
167 |
|
---|
168 | typedef struct {
|
---|
169 | uint32 use_close_behind;
|
---|
170 | } wkssvc_NetWkstaInfo1050;
|
---|
171 |
|
---|
172 | typedef struct {
|
---|
173 | uint32 buf_named_pipes;
|
---|
174 | } wkssvc_NetWkstaInfo1051;
|
---|
175 |
|
---|
176 | typedef struct {
|
---|
177 | uint32 use_lock_read_unlock;
|
---|
178 | } wkssvc_NetWkstaInfo1052;
|
---|
179 |
|
---|
180 | typedef struct {
|
---|
181 | uint32 utilize_nt_caching;
|
---|
182 | } wkssvc_NetWkstaInfo1053;
|
---|
183 |
|
---|
184 | typedef struct {
|
---|
185 | uint32 use_raw_read;
|
---|
186 | } wkssvc_NetWkstaInfo1054;
|
---|
187 |
|
---|
188 | typedef struct {
|
---|
189 | uint32 use_raw_write;
|
---|
190 | } wkssvc_NetWkstaInfo1055;
|
---|
191 |
|
---|
192 | typedef struct {
|
---|
193 | uint32 use_write_raw_data;
|
---|
194 | } wkssvc_NetWkstaInfo1056;
|
---|
195 |
|
---|
196 | typedef struct {
|
---|
197 | uint32 use_encryption;
|
---|
198 | } wkssvc_NetWkstaInfo1057;
|
---|
199 |
|
---|
200 | typedef struct {
|
---|
201 | uint32 buf_files_deny_write;
|
---|
202 | } wkssvc_NetWkstaInfo1058;
|
---|
203 |
|
---|
204 | typedef struct {
|
---|
205 | uint32 buf_read_only_files;
|
---|
206 | } wkssvc_NetWkstaInfo1059;
|
---|
207 |
|
---|
208 | typedef struct {
|
---|
209 | uint32 force_core_create_mode;
|
---|
210 | } wkssvc_NetWkstaInfo1060;
|
---|
211 |
|
---|
212 | typedef struct {
|
---|
213 | uint32 use_512_byte_max_transfer;
|
---|
214 | } wkssvc_NetWkstaInfo1061;
|
---|
215 |
|
---|
216 | typedef struct {
|
---|
217 | uint32 read_ahead_throughput;
|
---|
218 | } wkssvc_NetWkstaInfo1062;
|
---|
219 |
|
---|
220 | typedef union {
|
---|
221 | [case(100)] wkssvc_NetWkstaInfo100 *info100;
|
---|
222 | [case(101)] wkssvc_NetWkstaInfo101 *info101;
|
---|
223 | [case(102)] wkssvc_NetWkstaInfo102 *info102;
|
---|
224 | [case(502)] wkssvc_NetWkstaInfo502 *info502;
|
---|
225 | [case(1010)] wkssvc_NetWkstaInfo1010 *info1010;
|
---|
226 | [case(1011)] wkssvc_NetWkstaInfo1011 *info1011;
|
---|
227 | [case(1012)] wkssvc_NetWkstaInfo1012 *info1012;
|
---|
228 | [case(1013)] wkssvc_NetWkstaInfo1013 *info1013;
|
---|
229 | [case(1018)] wkssvc_NetWkstaInfo1018 *info1018;
|
---|
230 | [case(1023)] wkssvc_NetWkstaInfo1023 *info1023;
|
---|
231 | [case(1027)] wkssvc_NetWkstaInfo1027 *info1027;
|
---|
232 | [case(1028)] wkssvc_NetWkstaInfo1028 *info1028;
|
---|
233 | [case(1032)] wkssvc_NetWkstaInfo1032 *info1032;
|
---|
234 | [case(1033)] wkssvc_NetWkstaInfo1033 *info1033;
|
---|
235 | [case(1041)] wkssvc_NetWkstaInfo1041 *info1041;
|
---|
236 | [case(1042)] wkssvc_NetWkstaInfo1042 *info1042;
|
---|
237 | [case(1043)] wkssvc_NetWkstaInfo1043 *info1043;
|
---|
238 | [case(1044)] wkssvc_NetWkstaInfo1044 *info1044;
|
---|
239 | [case(1045)] wkssvc_NetWkstaInfo1045 *info1045;
|
---|
240 | [case(1046)] wkssvc_NetWkstaInfo1046 *info1046;
|
---|
241 | [case(1047)] wkssvc_NetWkstaInfo1047 *info1047;
|
---|
242 | [case(1048)] wkssvc_NetWkstaInfo1048 *info1048;
|
---|
243 | [case(1049)] wkssvc_NetWkstaInfo1049 *info1049;
|
---|
244 | [case(1050)] wkssvc_NetWkstaInfo1050 *info1050;
|
---|
245 | [case(1051)] wkssvc_NetWkstaInfo1051 *info1051;
|
---|
246 | [case(1052)] wkssvc_NetWkstaInfo1052 *info1052;
|
---|
247 | [case(1053)] wkssvc_NetWkstaInfo1053 *info1053;
|
---|
248 | [case(1054)] wkssvc_NetWkstaInfo1054 *info1054;
|
---|
249 | [case(1055)] wkssvc_NetWkstaInfo1055 *info1055;
|
---|
250 | [case(1056)] wkssvc_NetWkstaInfo1056 *info1056;
|
---|
251 | [case(1057)] wkssvc_NetWkstaInfo1057 *info1057;
|
---|
252 | [case(1058)] wkssvc_NetWkstaInfo1058 *info1058;
|
---|
253 | [case(1059)] wkssvc_NetWkstaInfo1059 *info1059;
|
---|
254 | [case(1060)] wkssvc_NetWkstaInfo1060 *info1060;
|
---|
255 | [case(1061)] wkssvc_NetWkstaInfo1061 *info1061;
|
---|
256 | [case(1062)] wkssvc_NetWkstaInfo1062 *info1062;
|
---|
257 | [default] ;
|
---|
258 | } wkssvc_NetWkstaInfo;
|
---|
259 |
|
---|
260 | WERROR wkssvc_NetWkstaGetInfo(
|
---|
261 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
262 | [in] uint32 level,
|
---|
263 | [out,switch_is(level),ref] wkssvc_NetWkstaInfo *info
|
---|
264 | );
|
---|
265 |
|
---|
266 |
|
---|
267 | /******************/
|
---|
268 | /* Function: 0x01 */
|
---|
269 | WERROR wkssvc_NetWkstaSetInfo(
|
---|
270 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
271 | [in] uint32 level,
|
---|
272 | [in,switch_is(level),ref] wkssvc_NetWkstaInfo *info,
|
---|
273 | [in,out,ref] uint32 *parm_error
|
---|
274 | );
|
---|
275 |
|
---|
276 |
|
---|
277 | /*****************************/
|
---|
278 | /* Function 0x02 */
|
---|
279 | typedef struct {
|
---|
280 | [string,charset(UTF16)] uint16 *user_name;
|
---|
281 | } wkssvc_NetrWkstaUserInfo0;
|
---|
282 |
|
---|
283 | typedef struct {
|
---|
284 | uint32 entries_read;
|
---|
285 | [size_is(entries_read)] wkssvc_NetrWkstaUserInfo0 *user0;
|
---|
286 | } wkssvc_NetWkstaEnumUsersCtr0;
|
---|
287 |
|
---|
288 | typedef struct {
|
---|
289 | [string,charset(UTF16)] uint16 *user_name;
|
---|
290 | [string,charset(UTF16)] uint16 *logon_domain;
|
---|
291 | [string,charset(UTF16)] uint16 *other_domains;
|
---|
292 | [string,charset(UTF16)] uint16 *logon_server;
|
---|
293 | } wkssvc_NetrWkstaUserInfo1;
|
---|
294 |
|
---|
295 | typedef struct {
|
---|
296 | uint32 entries_read;
|
---|
297 | [size_is(entries_read)] wkssvc_NetrWkstaUserInfo1 *user1;
|
---|
298 | } wkssvc_NetWkstaEnumUsersCtr1;
|
---|
299 |
|
---|
300 | typedef [switch_type(uint32)] union {
|
---|
301 | [case(0)] wkssvc_NetWkstaEnumUsersCtr0 *user0;
|
---|
302 | [case(1)] wkssvc_NetWkstaEnumUsersCtr1 *user1;
|
---|
303 | } wkssvc_NetWkstaEnumUsersCtr;
|
---|
304 |
|
---|
305 | typedef struct {
|
---|
306 | uint32 level;
|
---|
307 | [switch_is(level)] wkssvc_NetWkstaEnumUsersCtr ctr;
|
---|
308 | } wkssvc_NetWkstaEnumUsersInfo;
|
---|
309 |
|
---|
310 | WERROR wkssvc_NetWkstaEnumUsers(
|
---|
311 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
312 | [in,out,ref] wkssvc_NetWkstaEnumUsersInfo *info,
|
---|
313 | [in] uint32 prefmaxlen,
|
---|
314 | [out,ref] uint32 *entries_read,
|
---|
315 | [in,out,unique] uint32 *resume_handle
|
---|
316 | );
|
---|
317 |
|
---|
318 | /*****************************/
|
---|
319 | /* Function 0x03 */
|
---|
320 | typedef struct {
|
---|
321 | [string,charset(UTF16)] uint16 *other_domains;
|
---|
322 | } wkssvc_NetrWkstaUserInfo1101;
|
---|
323 |
|
---|
324 | typedef [switch_type(uint32)] union {
|
---|
325 | [case(0)] wkssvc_NetrWkstaUserInfo0 *info0;
|
---|
326 | [case(1)] wkssvc_NetrWkstaUserInfo1 *info1;
|
---|
327 | [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101;
|
---|
328 | } wkssvc_NetrWkstaUserInfo;
|
---|
329 |
|
---|
330 | WERROR wkssvc_NetrWkstaUserGetInfo(
|
---|
331 | [in,unique] [string,charset(UTF16)] uint16 *unknown,
|
---|
332 | [in] uint32 level,
|
---|
333 | [out,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info
|
---|
334 | );
|
---|
335 |
|
---|
336 | /*****************************/
|
---|
337 | /* Function 0x04 */
|
---|
338 | WERROR wkssvc_NetrWkstaUserSetInfo(
|
---|
339 | [in,unique] [string,charset(UTF16)] uint16 *unknown,
|
---|
340 | [in] uint32 level,
|
---|
341 | [in,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info,
|
---|
342 | [in,out,unique] uint32 *parm_err
|
---|
343 | );
|
---|
344 |
|
---|
345 | /*****************************/
|
---|
346 | /* Function 0x05 */
|
---|
347 |
|
---|
348 | typedef struct {
|
---|
349 | uint32 quality_of_service;
|
---|
350 | uint32 vc_count;
|
---|
351 | [string,charset(UTF16)] uint16 *name;
|
---|
352 | [string,charset(UTF16)] uint16 *address;
|
---|
353 | uint32 wan_link;
|
---|
354 | } wkssvc_NetWkstaTransportInfo0;
|
---|
355 |
|
---|
356 | typedef struct {
|
---|
357 | uint32 count;
|
---|
358 | [size_is(count)] wkssvc_NetWkstaTransportInfo0 *array;
|
---|
359 | } wkssvc_NetWkstaTransportCtr0;
|
---|
360 |
|
---|
361 | typedef union {
|
---|
362 | [case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0;
|
---|
363 | } wkssvc_NetWkstaTransportCtr;
|
---|
364 |
|
---|
365 | typedef struct {
|
---|
366 | uint32 level;
|
---|
367 | [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr;
|
---|
368 | } wkssvc_NetWkstaTransportInfo;
|
---|
369 |
|
---|
370 | WERROR wkssvc_NetWkstaTransportEnum (
|
---|
371 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
372 | [in,out,ref] wkssvc_NetWkstaTransportInfo *info,
|
---|
373 | [in] uint32 max_buffer,
|
---|
374 | [out,ref] uint32 *total_entries,
|
---|
375 | [in,out,unique] uint32 *resume_handle
|
---|
376 | );
|
---|
377 |
|
---|
378 | /*****************************/
|
---|
379 | /* Function 0x06 */
|
---|
380 | /* only supported on NT */
|
---|
381 | WERROR wkssvc_NetrWkstaTransportAdd(
|
---|
382 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
383 | [in] uint32 level, /* must be 0 */
|
---|
384 | [in,ref] wkssvc_NetWkstaTransportInfo0 *info0,
|
---|
385 | [in,out,unique] uint32 *parm_err
|
---|
386 | );
|
---|
387 |
|
---|
388 | /*****************************/
|
---|
389 | /* Function 0x07 */
|
---|
390 | /* only supported on NT */
|
---|
391 | WERROR wkssvc_NetrWkstaTransportDel(
|
---|
392 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
393 | [in,unique] [string,charset(UTF16)] uint16 *transport_name,
|
---|
394 | [in] uint32 unknown3
|
---|
395 | );
|
---|
396 |
|
---|
397 | /*****************************/
|
---|
398 | /* Function 0x08 */
|
---|
399 | typedef struct {
|
---|
400 | [string,charset(UTF16)] uint16 *unknown1;
|
---|
401 | [string,charset(UTF16)] uint16 *unknown2;
|
---|
402 | } wkssvc_NetrUseInfo3;
|
---|
403 |
|
---|
404 | typedef struct {
|
---|
405 | [string,charset(UTF16)] uint16 *local;
|
---|
406 | [string,charset(UTF16)] uint16 *remote;
|
---|
407 | [string,charset(UTF16)] uint16 *password;
|
---|
408 | uint32 status;
|
---|
409 | uint32 asg_type;
|
---|
410 | uint32 ref_count;
|
---|
411 | uint32 use_count;
|
---|
412 | [string,charset(UTF16)] uint16 *user_name;
|
---|
413 | [string,charset(UTF16)] uint16 *domain_name;
|
---|
414 | } wkssvc_NetrUseInfo2;
|
---|
415 |
|
---|
416 | typedef struct {
|
---|
417 | [string,charset(UTF16)] uint16 *local;
|
---|
418 | [string,charset(UTF16)] uint16 *remote;
|
---|
419 | [string,charset(UTF16)] uint16 *password;
|
---|
420 | uint32 status;
|
---|
421 | uint32 asg_type;
|
---|
422 | uint32 ref_count;
|
---|
423 | uint32 use_count;
|
---|
424 | } wkssvc_NetrUseInfo1;
|
---|
425 |
|
---|
426 | typedef struct {
|
---|
427 | [string,charset(UTF16)] uint16 *local;
|
---|
428 | [string,charset(UTF16)] uint16 *remote;
|
---|
429 | } wkssvc_NetrUseInfo0;
|
---|
430 |
|
---|
431 | typedef [switch_type(uint32)] union {
|
---|
432 | [case(0)] wkssvc_NetrUseInfo0 *info0;
|
---|
433 | [case(1)] wkssvc_NetrUseInfo1 *info1;
|
---|
434 | [case(2)] wkssvc_NetrUseInfo2 *info2;
|
---|
435 | [case(3)] wkssvc_NetrUseInfo3 *info3;
|
---|
436 | } wkssvc_NetrUseGetInfoCtr;
|
---|
437 |
|
---|
438 | WERROR wkssvc_NetrUseAdd(
|
---|
439 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
440 | [in] uint32 level,
|
---|
441 | [in,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr,
|
---|
442 | [in,out,unique] uint32 *parm_err
|
---|
443 | );
|
---|
444 |
|
---|
445 | /*****************************/
|
---|
446 | /* Function 0x09 */
|
---|
447 | WERROR wkssvc_NetrUseGetInfo(
|
---|
448 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
449 | [in,ref] [string,charset(UTF16)] uint16 *use_name,
|
---|
450 | [in] uint32 level,
|
---|
451 | [out,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr
|
---|
452 | );
|
---|
453 |
|
---|
454 | /*****************************/
|
---|
455 | /* Function 0x0a */
|
---|
456 | WERROR wkssvc_NetrUseDel(
|
---|
457 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
458 | [in,ref] [string,charset(UTF16)] uint16 *use_name,
|
---|
459 | [in] uint32 force_cond
|
---|
460 | );
|
---|
461 |
|
---|
462 | /*****************************/
|
---|
463 | /* Function 0x0b */
|
---|
464 | typedef struct {
|
---|
465 | uint32 count;
|
---|
466 | [size_is(count)] wkssvc_NetrUseInfo2 *array;
|
---|
467 | } wkssvc_NetrUseEnumCtr2;
|
---|
468 |
|
---|
469 | typedef struct {
|
---|
470 | uint32 count;
|
---|
471 | [size_is(count)] wkssvc_NetrUseInfo1 *array;
|
---|
472 | } wkssvc_NetrUseEnumCtr1;
|
---|
473 |
|
---|
474 | typedef struct {
|
---|
475 | uint32 count;
|
---|
476 | [size_is(count)] wkssvc_NetrUseInfo0 *array;
|
---|
477 | } wkssvc_NetrUseEnumCtr0;
|
---|
478 |
|
---|
479 | typedef [switch_type(uint32)] union {
|
---|
480 | [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0;
|
---|
481 | [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1;
|
---|
482 | [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2;
|
---|
483 | } wkssvc_NetrUseEnumCtr;
|
---|
484 |
|
---|
485 | typedef struct {
|
---|
486 | uint32 level;
|
---|
487 | [switch_is(level)] wkssvc_NetrUseEnumCtr ctr;
|
---|
488 | } wkssvc_NetrUseEnumInfo;
|
---|
489 |
|
---|
490 | WERROR wkssvc_NetrUseEnum(
|
---|
491 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
492 | [in,out,ref] wkssvc_NetrUseEnumInfo *info,
|
---|
493 | [in] uint32 prefmaxlen,
|
---|
494 | [out,ref] uint32 *entries_read,
|
---|
495 | [in,out,unique] uint32 *resume_handle
|
---|
496 | );
|
---|
497 |
|
---|
498 | /*****************************/
|
---|
499 | /* Function 0x0c */
|
---|
500 | WERROR wkssvc_NetrMessageBufferSend(
|
---|
501 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
502 | [in,ref] [string,charset(UTF16)] uint16 *message_name,
|
---|
503 | [in,unique] [string,charset(UTF16)] uint16 *message_sender_name,
|
---|
504 | [in,ref] [size_is(message_size)] uint8 *message_buffer,
|
---|
505 | [in] uint32 message_size
|
---|
506 | );
|
---|
507 |
|
---|
508 | /*****************************/
|
---|
509 | /* Function 0x0d */
|
---|
510 | typedef struct {
|
---|
511 | hyper unknown1;
|
---|
512 | hyper unknown2;
|
---|
513 | hyper unknown3;
|
---|
514 | hyper unknown4;
|
---|
515 | hyper unknown5;
|
---|
516 | hyper unknown6;
|
---|
517 | hyper unknown7;
|
---|
518 | hyper unknown8;
|
---|
519 | hyper unknown9;
|
---|
520 | hyper unknown10;
|
---|
521 | hyper unknown11;
|
---|
522 | hyper unknown12;
|
---|
523 | hyper unknown13;
|
---|
524 | uint32 unknown14;
|
---|
525 | uint32 unknown15;
|
---|
526 | uint32 unknown16;
|
---|
527 | uint32 unknown17;
|
---|
528 | uint32 unknown18;
|
---|
529 | uint32 unknown19;
|
---|
530 | uint32 unknown20;
|
---|
531 | uint32 unknown21;
|
---|
532 | uint32 unknown22;
|
---|
533 | uint32 unknown23;
|
---|
534 | uint32 unknown24;
|
---|
535 | uint32 unknown25;
|
---|
536 | uint32 unknown26;
|
---|
537 | uint32 unknown27;
|
---|
538 | uint32 unknown28;
|
---|
539 | uint32 unknown29;
|
---|
540 | uint32 unknown30;
|
---|
541 | uint32 unknown31;
|
---|
542 | uint32 unknown32;
|
---|
543 | uint32 unknown33;
|
---|
544 | uint32 unknown34;
|
---|
545 | uint32 unknown35;
|
---|
546 | uint32 unknown36;
|
---|
547 | uint32 unknown37;
|
---|
548 | uint32 unknown38;
|
---|
549 | uint32 unknown39;
|
---|
550 | uint32 unknown40;
|
---|
551 | } wkssvc_NetrWorkstationStatistics;
|
---|
552 |
|
---|
553 | WERROR wkssvc_NetrWorkstationStatisticsGet(
|
---|
554 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
555 | [in,unique] [string,charset(UTF16)] uint16 *unknown2,
|
---|
556 | [in] uint32 unknown3,
|
---|
557 | [in] uint32 unknown4,
|
---|
558 | [out,ref] wkssvc_NetrWorkstationStatistics **info
|
---|
559 | );
|
---|
560 |
|
---|
561 | /*****************************/
|
---|
562 | /* Function 0x0e */
|
---|
563 | WERROR wkssvc_NetrLogonDomainNameAdd(
|
---|
564 | [in,ref] [string,charset(UTF16)] uint16 *domain_name
|
---|
565 | );
|
---|
566 |
|
---|
567 | /*****************************/
|
---|
568 | /* Function 0x0f */
|
---|
569 | WERROR wkssvc_NetrLogonDomainNameDel(
|
---|
570 | [in,ref] [string,charset(UTF16)] uint16 *domain_name
|
---|
571 | );
|
---|
572 |
|
---|
573 | /*****************************/
|
---|
574 | /* Function 0x10 */
|
---|
575 | WERROR wkssvc_NetrJoinDomain(
|
---|
576 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
577 | [in,ref] [string,charset(UTF16)] uint16 *domain_name,
|
---|
578 | [in,unique] [string,charset(UTF16)] uint16 *account_ou,
|
---|
579 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
580 | [in,unique] [string,charset(UTF16)] uint16 *password,
|
---|
581 | [in] wkssvc_joinflags join_flags
|
---|
582 | );
|
---|
583 |
|
---|
584 | /*****************************/
|
---|
585 | /* Function 0x11 */
|
---|
586 | WERROR wkssvc_NetrUnjoinDomain(
|
---|
587 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
588 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
589 | [in,unique] [string,charset(UTF16)] uint16 *password,
|
---|
590 | [in] wkssvc_joinflags unjoin_flags
|
---|
591 | );
|
---|
592 |
|
---|
593 | /*****************************/
|
---|
594 | /* Function 0x12 */
|
---|
595 | typedef [bitmap32bit] bitmap {
|
---|
596 | /* TRUE: create the account in the domain */
|
---|
597 | WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002
|
---|
598 | } wkssvc_renameflags;
|
---|
599 |
|
---|
600 | WERROR wkssvc_NetrRenameMachineInDomain(
|
---|
601 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
602 | [in,unique] [string,charset(UTF16)] uint16 *NewMachineName,
|
---|
603 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
604 | [in,unique] [string,charset(UTF16)] uint16 *password,
|
---|
605 | [in] wkssvc_renameflags RenameOptions
|
---|
606 | );
|
---|
607 |
|
---|
608 | /*****************************/
|
---|
609 | /* Function 0x13 */
|
---|
610 | typedef enum {
|
---|
611 | NetSetupUnknown = 0,
|
---|
612 | NetSetupMachine = 1,
|
---|
613 | NetSetupWorkgroup = 2,
|
---|
614 | NetSetupDomain = 3,
|
---|
615 | NetSetupNonExistentDomain = 4,
|
---|
616 | NetSetupDnsMachine = 5
|
---|
617 | } wkssvc_NetValidateNameType;
|
---|
618 |
|
---|
619 | WERROR wkssvc_NetrValidateName(
|
---|
620 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
621 | [in,ref] [string,charset(UTF16)] uint16 *name,
|
---|
622 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
623 | [in,unique] [string,charset(UTF16)] uint16 *Password,
|
---|
624 | [in] wkssvc_NetValidateNameType name_type
|
---|
625 | );
|
---|
626 |
|
---|
627 | /*****************************/
|
---|
628 | /* Function 0x14 */
|
---|
629 | typedef enum {
|
---|
630 | NET_SETUP_UNKNOWN_STATUS = 0,
|
---|
631 | NET_SETUP_UNJOINED = 1,
|
---|
632 | NET_SETUP_WORKGROUP_NAME = 2,
|
---|
633 | NET_SETUP_DOMAIN_NAME = 3
|
---|
634 | } wkssvc_NetJoinStatus;
|
---|
635 |
|
---|
636 | WERROR wkssvc_NetrGetJoinInformation(
|
---|
637 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
638 | [in,out,ref] [string,charset(UTF16)] uint16 **name_buffer,
|
---|
639 | [out,ref] wkssvc_NetJoinStatus *name_type
|
---|
640 | );
|
---|
641 |
|
---|
642 | /*****************************/
|
---|
643 | /* Function 0x15 */
|
---|
644 | WERROR wkssvc_NetrGetJoinableOus(
|
---|
645 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
646 | [in,ref] [string,charset(UTF16)] uint16 *domain_name,
|
---|
647 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
648 | [in,unique] [string,charset(UTF16)] uint16 *unknown,
|
---|
649 | [in,out,ref] uint32 *num_ous,
|
---|
650 | /*
|
---|
651 | * this is a [ref] pointer to a [unique] pointer to an
|
---|
652 | * array of [unique] pointers to a string array
|
---|
653 | */
|
---|
654 | [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous
|
---|
655 | );
|
---|
656 |
|
---|
657 | typedef [flag(NDR_PAHEX)] struct {
|
---|
658 | uint8 data[524];
|
---|
659 | } wkssvc_PasswordBuffer;
|
---|
660 |
|
---|
661 | typedef [bitmap32bit] bitmap {
|
---|
662 | WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS = 0x10000000,
|
---|
663 | WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME = 0x00000400,
|
---|
664 | WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT = 0x00000200,
|
---|
665 | /* TRUE: defer setting the SPN and dNSHostName until a rename operation */
|
---|
666 | WKSSVC_JOIN_FLAGS_DEFER_SPN = 0x00000100,
|
---|
667 |
|
---|
668 | /* TRUE: set the machine password to the provided one after the join completes */
|
---|
669 | WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED = 0x00000080,
|
---|
670 |
|
---|
671 | /* TRUE: perform an unsecured join */
|
---|
672 | WKSSVC_JOIN_FLAGS_JOIN_UNSECURE = 0x00000040,
|
---|
673 |
|
---|
674 | /* TRUE: allow the join to complete even if the account already exists */
|
---|
675 | WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = 0x00000020,
|
---|
676 |
|
---|
677 | /* TRUE: this join is part of a w9x upgrade */
|
---|
678 | WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = 0x00000010,
|
---|
679 |
|
---|
680 | /* TRUE: delete the account when the domain is left */
|
---|
681 | WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE = 0x00000004,
|
---|
682 |
|
---|
683 | /* TRUE: create the account in the domain */
|
---|
684 | WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002,
|
---|
685 |
|
---|
686 | /* TRUE: join domain FALSE: join workgroup */
|
---|
687 | WKSSVC_JOIN_FLAGS_JOIN_TYPE = 0x00000001
|
---|
688 |
|
---|
689 | } wkssvc_joinflags;
|
---|
690 |
|
---|
691 | /*****************************/
|
---|
692 | /* Function 0x16 */
|
---|
693 | WERROR wkssvc_NetrJoinDomain2 (
|
---|
694 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
695 | [in,ref] [string,charset(UTF16)] uint16 *domain_name,
|
---|
696 | [in,unique] [string,charset(UTF16)] uint16 *account_ou,
|
---|
697 | [in,unique] [string,charset(UTF16)] uint16 *admin_account,
|
---|
698 | [in,unique] wkssvc_PasswordBuffer *encrypted_password,
|
---|
699 | [in] wkssvc_joinflags join_flags
|
---|
700 | );
|
---|
701 |
|
---|
702 | /*****************************/
|
---|
703 | /* Function 0x17 */
|
---|
704 | WERROR wkssvc_NetrUnjoinDomain2 (
|
---|
705 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
706 | [in,unique] [string,charset(UTF16)] uint16 *account,
|
---|
707 | [in,unique] wkssvc_PasswordBuffer *encrypted_password,
|
---|
708 | [in] wkssvc_joinflags unjoin_flags
|
---|
709 | );
|
---|
710 |
|
---|
711 | /*****************************/
|
---|
712 | /* Function 0x18 */
|
---|
713 | WERROR wkssvc_NetrRenameMachineInDomain2(
|
---|
714 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
715 | [in,unique] [string,charset(UTF16)] uint16 *NewMachineName,
|
---|
716 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
717 | [in,unique] wkssvc_PasswordBuffer *EncryptedPassword,
|
---|
718 | [in] wkssvc_renameflags RenameOptions
|
---|
719 | );
|
---|
720 |
|
---|
721 | /*****************************/
|
---|
722 | /* Function 0x19 */
|
---|
723 | WERROR wkssvc_NetrValidateName2(
|
---|
724 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
725 | [in,ref] [string,charset(UTF16)] uint16 *name,
|
---|
726 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
727 | [in,unique] wkssvc_PasswordBuffer *EncryptedPassword,
|
---|
728 | [in] wkssvc_NetValidateNameType name_type
|
---|
729 | );
|
---|
730 |
|
---|
731 | /*****************************/
|
---|
732 | /* Function 0x1a */
|
---|
733 | WERROR wkssvc_NetrGetJoinableOus2(
|
---|
734 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
735 | [in,ref] [string,charset(UTF16)] uint16 *domain_name,
|
---|
736 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
737 | [in,unique] wkssvc_PasswordBuffer *EncryptedPassword,
|
---|
738 | [in,out,ref] uint32 *num_ous,
|
---|
739 | /*
|
---|
740 | * this is a [ref] pointer to a [unique] pointer to an
|
---|
741 | * array of [unique] pointers to a string array
|
---|
742 | */
|
---|
743 | [out,ref] [size_is(,*num_ous)] [string,charset(UTF16)] uint16 ***ous
|
---|
744 | );
|
---|
745 |
|
---|
746 | /*****************************/
|
---|
747 | /* Function 0x1b */
|
---|
748 | WERROR wkssvc_NetrAddAlternateComputerName(
|
---|
749 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
750 | [in,unique] [string,charset(UTF16)] uint16 *NewAlternateMachineName,
|
---|
751 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
752 | [in,unique] wkssvc_PasswordBuffer *EncryptedPassword,
|
---|
753 | [in] uint32 Reserved
|
---|
754 | );
|
---|
755 |
|
---|
756 | /*****************************/
|
---|
757 | /* Function 0x1c */
|
---|
758 | WERROR wkssvc_NetrRemoveAlternateComputerName(
|
---|
759 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
760 | [in,unique] [string,charset(UTF16)] uint16 *AlternateMachineNameToRemove,
|
---|
761 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
762 | [in,unique] wkssvc_PasswordBuffer *EncryptedPassword,
|
---|
763 | [in] uint32 Reserved
|
---|
764 | );
|
---|
765 |
|
---|
766 | /*****************************/
|
---|
767 | /* Function 0x1d */
|
---|
768 | WERROR wkssvc_NetrSetPrimaryComputername(
|
---|
769 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
770 | [in,unique] [string,charset(UTF16)] uint16 *primary_name,
|
---|
771 | [in,unique] [string,charset(UTF16)] uint16 *Account,
|
---|
772 | [in,unique] wkssvc_PasswordBuffer *EncryptedPassword,
|
---|
773 | [in] uint32 Reserved
|
---|
774 | );
|
---|
775 |
|
---|
776 | /*****************************/
|
---|
777 | /* Function 0x1e */
|
---|
778 | typedef enum {
|
---|
779 | NetPrimaryComputerName = 0,
|
---|
780 | NetAlternateComputerNames = 1,
|
---|
781 | NetAllComputerNames = 2,
|
---|
782 | NetComputerNameTypeMax = 3
|
---|
783 | } wkssvc_ComputerNameType;
|
---|
784 |
|
---|
785 | typedef struct {
|
---|
786 | uint32 count;
|
---|
787 | [size_is(count)] lsa_String *computer_name;
|
---|
788 | } wkssvc_ComputerNamesCtr;
|
---|
789 |
|
---|
790 | WERROR wkssvc_NetrEnumerateComputerNames(
|
---|
791 | [in,unique] [string,charset(UTF16)] uint16 *server_name,
|
---|
792 | [in] wkssvc_ComputerNameType name_type,
|
---|
793 | [in] uint32 Reserved,
|
---|
794 | [out,ref] wkssvc_ComputerNamesCtr **ctr
|
---|
795 | );
|
---|
796 | }
|
---|