~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to librpc/idl/wkssvc.idl

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
}