2 wkssvc interface definitions
7 [ uuid("6bffd098-a112-3610-9833-46c3f87e345a"),
9 pointer_default(unique),
10 pointer_default_top(unique),
11 helpstring("Workstation Service"),
12 endpoint("ncacn_np:[\\pipe\\wkssvc]","ncacn_ip_tcp:","ncalrpc:")
15 declare [v1_enum] enum srvsvc_PlatformId;
23 srvsvc_PlatformId platform_id;
24 [string,charset(UTF16)] uint16 *server_name;
25 [string,charset(UTF16)] uint16 *domain_name;
28 } wkssvc_NetWkstaInfo100;
31 srvsvc_PlatformId platform_id;
32 [string,charset(UTF16)] uint16 *server_name;
33 [string,charset(UTF16)] uint16 *domain_name;
36 [string,charset(UTF16)] uint16 *lan_root;
37 } wkssvc_NetWkstaInfo101;
40 srvsvc_PlatformId platform_id;
41 [string,charset(UTF16)] uint16 *server_name;
42 [string,charset(UTF16)] uint16 *domain_name;
45 [string,charset(UTF16)] uint16 *lan_root;
46 uint32 logged_on_users;
47 } wkssvc_NetWkstaInfo102;
51 uint32 collection_time;
52 uint32 maximum_collection_count;
53 uint32 keep_connection;
55 uint32 session_timeout;
59 uint32 lock_increment;
61 uint32 pipe_increment;
63 uint32 cache_file_timeout;
64 uint32 dormant_file_limit;
65 uint32 read_ahead_throughput;
66 uint32 num_mailslot_buffers;
67 uint32 num_srv_announce_buffers;
68 uint32 max_illegal_dgram_events;
69 uint32 dgram_event_reset_freq;
70 BOOL log_election_packets;
71 BOOL use_opportunistic_locking;
72 BOOL use_unlock_behind;
73 BOOL use_close_behind;
75 BOOL use_lock_read_unlock;
76 BOOL utilize_nt_caching;
79 BOOL use_write_raw_data;
81 BOOL buf_files_deny_write;
82 BOOL buf_read_only_files;
83 BOOL force_core_create_mode;
84 BOOL use_512_byte_max_transfer;
85 } wkssvc_NetWkstaInfo502;
89 } wkssvc_NetWkstaInfo1010;
92 uint32 collection_time;
93 } wkssvc_NetWkstaInfo1011;
96 uint32 maximum_collection_count;
97 } wkssvc_NetWkstaInfo1012;
100 uint32 keep_connection;
101 } wkssvc_NetWkstaInfo1013;
104 uint32 session_timeout;
105 } wkssvc_NetWkstaInfo1018;
108 uint32 size_char_buf;
109 } wkssvc_NetWkstaInfo1023;
113 } wkssvc_NetWkstaInfo1027;
117 } wkssvc_NetWkstaInfo1033;
120 [case(100)] wkssvc_NetWkstaInfo100 *info100;
121 [case(101)] wkssvc_NetWkstaInfo101 *info101;
122 [case(102)] wkssvc_NetWkstaInfo102 *info102;
123 [case(502)] wkssvc_NetWkstaInfo502 *info502;
124 [case(1010)] wkssvc_NetWkstaInfo1010 *info1010;
125 [case(1011)] wkssvc_NetWkstaInfo1011 *info1011;
126 [case(1012)] wkssvc_NetWkstaInfo1012 *info1012;
127 [case(1013)] wkssvc_NetWkstaInfo1013 *info1013;
128 [case(1018)] wkssvc_NetWkstaInfo1018 *info1018;
129 [case(1023)] wkssvc_NetWkstaInfo1023 *info1023;
130 [case(1027)] wkssvc_NetWkstaInfo1027 *info1027;
131 [case(1033)] wkssvc_NetWkstaInfo1033 *info1033;
133 } wkssvc_NetWkstaInfo;
135 WERROR wkssvc_NetWkstaGetInfo(
136 [in] [string,charset(UTF16)] uint16 *server_name,
138 [out,switch_is(level),ref] wkssvc_NetWkstaInfo *info
144 WERROR wkssvc_NetWkstaSetInfo(
145 [in] [string,charset(UTF16)] uint16 *server_name,
147 [in,switch_is(level),ref] wkssvc_NetWkstaInfo *info,
148 [in,out,ref] uint32 *parm_error
152 /*****************************/
155 [string,charset(UTF16)] uint16 *user_name;
156 } wkssvc_NetrWkstaUserInfo0;
160 [size_is(entries_read)] wkssvc_NetrWkstaUserInfo0 *user0;
161 } wkssvc_NetWkstaEnumUsersCtr0;
164 [string,charset(UTF16)] uint16 *user_name;
165 [string,charset(UTF16)] uint16 *logon_domain;
166 [string,charset(UTF16)] uint16 *other_domains;
167 [string,charset(UTF16)] uint16 *logon_server;
168 } wkssvc_NetrWkstaUserInfo1;
172 [size_is(entries_read)] wkssvc_NetrWkstaUserInfo1 *user1;
173 } wkssvc_NetWkstaEnumUsersCtr1;
175 typedef [switch_type(uint32)] union {
176 [case(0)] wkssvc_NetWkstaEnumUsersCtr0 *user0;
177 [case(1)] wkssvc_NetWkstaEnumUsersCtr1 *user1;
178 } wkssvc_NetWkstaEnumUsersCtr;
182 [switch_is(level)] wkssvc_NetWkstaEnumUsersCtr ctr;
183 } wkssvc_NetWkstaEnumUsersInfo;
185 WERROR wkssvc_NetWkstaEnumUsers(
186 [in] [string,charset(UTF16)] uint16 *server_name,
187 [in,out,ref] wkssvc_NetWkstaEnumUsersInfo *info,
188 [in] uint32 prefmaxlen,
189 [out,ref] uint32 *entries_read,
190 [in,out] uint32 *resume_handle
193 /*****************************/
196 [string,charset(UTF16)] uint16 *other_domains;
197 } wkssvc_NetrWkstaUserInfo1101;
199 typedef [switch_type(uint32)] union {
200 [case(0)] wkssvc_NetrWkstaUserInfo0 *info0;
201 [case(1)] wkssvc_NetrWkstaUserInfo1 *info1;
202 [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101;
203 } wkssvc_NetrWkstaUserInfo;
205 WERROR wkssvc_NetrWkstaUserGetInfo(
206 [in] [string,charset(UTF16)] uint16 *unknown,
208 [out] [switch_is(level)] [ref] wkssvc_NetrWkstaUserInfo *info
212 /*****************************/
214 WERROR WKSSVC_NETRWKSTAUSERSETINFO ();
217 /*****************************/
221 uint32 quality_of_service;
223 [string,charset(UTF16)] uint16 *name;
224 [string,charset(UTF16)] uint16 *address;
226 } wkssvc_NetWkstaTransportInfo0;
230 [size_is(count)] wkssvc_NetWkstaTransportInfo0 *array;
231 } wkssvc_NetWkstaTransportCtr0;
234 [case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0;
235 } wkssvc_NetWkstaTransportCtr;
239 [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr;
240 } wkssvc_NetWkstaTransportInfo;
242 WERROR wkssvc_NetWkstaTransportEnum (
243 [in] [string,charset(UTF16)] uint16 *server_name,
244 [in,out,ref] wkssvc_NetWkstaTransportInfo *info,
245 [in] uint32 max_buffer,
246 [out,ref] uint32 *total_entries,
247 [in,out] uint32 *resume_handle
250 /*****************************/
252 /* only supported on NT */
253 WERROR wkssvc_NetrWkstaTransportAdd(
254 [in] [string,charset(UTF16)] uint16 *server_name,
255 [in] uint32 level, /* must be 0 */
256 [in] [ref] wkssvc_NetWkstaTransportInfo0 *info0,
257 [in,out] uint32 *parm_err
260 /*****************************/
262 /* only supported on NT */
263 WERROR wkssvc_NetrWkstaTransportDel(
264 [in] [string,charset(UTF16)] uint16 *server_name,
265 [in] [string,charset(UTF16)] uint16 *transport_name,
269 /*****************************/
272 [string,charset(UTF16)] uint16 *unknown1;
273 [string,charset(UTF16)] uint16 *unknown2;
274 } wkssvc_NetrUseInfo3;
277 [string,charset(UTF16)] uint16 *local;
278 [string,charset(UTF16)] uint16 *remote;
279 [string,charset(UTF16)] uint16 *password;
284 [string,charset(UTF16)] uint16 *user_name;
285 [string,charset(UTF16)] uint16 *domain_name;
286 } wkssvc_NetrUseInfo2;
289 [string,charset(UTF16)] uint16 *local;
290 [string,charset(UTF16)] uint16 *remote;
291 [string,charset(UTF16)] uint16 *password;
296 } wkssvc_NetrUseInfo1;
299 [string,charset(UTF16)] uint16 *local;
300 [string,charset(UTF16)] uint16 *remote;
301 } wkssvc_NetrUseInfo0;
303 typedef [switch_type(uint32)] union {
304 [case(0)] wkssvc_NetrUseInfo0 *info0;
305 [case(1)] wkssvc_NetrUseInfo1 *info1;
306 [case(2)] wkssvc_NetrUseInfo2 *info2;
307 [case(3)] wkssvc_NetrUseInfo3 *info3;
308 } wkssvc_NetrUseGetInfoCtr;
310 WERROR wkssvc_NetrUseAdd(
311 [in] [string,charset(UTF16)] uint16 *server_name,
313 [in] [switch_is(level)] [ref] wkssvc_NetrUseGetInfoCtr *ctr,
314 [in,out] uint32 *parm_err
317 /*****************************/
319 WERROR WKSSVC_NETRUSEGETINFO ();
321 /*****************************/
323 WERROR wkssvc_NetrUseDel(
324 [in] [string,charset(UTF16)] uint16 *server_name,
325 [in,ref] [string,charset(UTF16)] uint16 *use_name,
326 [in] uint32 force_cond
329 /*****************************/
333 [size_is(count)] wkssvc_NetrUseInfo2 *array;
334 } wkssvc_NetrUseEnumCtr2;
338 [size_is(count)] wkssvc_NetrUseInfo1 *array;
339 } wkssvc_NetrUseEnumCtr1;
343 [size_is(count)] wkssvc_NetrUseInfo0 *array;
344 } wkssvc_NetrUseEnumCtr0;
346 typedef [switch_type(uint32)] union {
347 [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0;
348 [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1;
349 [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2;
350 } wkssvc_NetrUseEnumCtr;
354 [switch_is(level)] wkssvc_NetrUseEnumCtr ctr;
355 } wkssvc_NetrUseEnumInfo;
357 WERROR wkssvc_NetrUseEnum(
358 [in] [string,charset(UTF16)] uint16 *server_name,
359 [in,out] [ref] wkssvc_NetrUseEnumInfo *info,
360 [in] uint32 prefmaxlen,
361 [out,ref] uint32 *entries_read,
362 [in,out] uint32 *resume_handle
365 /*****************************/
367 WERROR WKSSVC_NETRMESSAGEBUFFERSEND ();
369 /*****************************/
371 WERROR WKSSVC_NETRWORKSTATIONSTATISTICSGET ();
373 /*****************************/
375 WERROR WKSSVC_NETRLOGONDOMAINNAMEADD ();
377 /*****************************/
379 WERROR WKSSVC_NETRLOGONDOMAINNAMEDEL ();
381 /*****************************/
383 WERROR WKSSVC_NETRJOINDOMAIN ();
385 /*****************************/
387 WERROR WKSSVC_NETRUNJOINDOMAIN ();
389 /*****************************/
391 WERROR WKSSVC_NETRRENAMEMACHINEINDOMAIN ();
393 /*****************************/
395 WERROR WKSSVC_NETRVALIDATENAME ();
397 /*****************************/
399 WERROR WKSSVC_NETRGETJOININFORMATION ();
401 /*****************************/
403 WERROR WKSSVC_NETRGETJOINABLEOUS ();
407 } wkssvc_PasswordBuffer;
409 typedef [bitmap32bit] bitmap {
410 /* TRUE: defer setting the SPN and dNSHostName until a rename operation */
411 WKSSVC_JOIN_FLAGS_DEFER_SPN = 0x00000100,
413 /* TRUE: set the machine password to the provided one after the join completes */
414 WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED = 0x00000080,
416 /* TRUE: perform an unsecured join */
417 WKSSVC_JOIN_FLAGS_JOIN_UNSECURE = 0x00000040,
419 /* TRUE: allow the join to complete even if the account already exists */
420 WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = 0x00000020,
422 /* TRUE: this join is part of a w9x upgrade */
423 WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = 0x00000010,
425 /* TRUE: delete the account when the domain is left */
426 WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE = 0x00000004,
428 /* TRUE: create the account in the domain */
429 WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002,
431 /* TRUE: join domain FALSE: join workgroup */
432 WKSSVC_JOIN_FLAGS_JOIN_TYPE = 0x00000001
436 /*****************************/
438 WERROR wkssvc_NetrJoinDomain2 (
439 [in] [string,charset(UTF16)] uint16 *server_name,
440 [in] [string,charset(UTF16),ref] uint16 *domain_name,
441 [in] [string,charset(UTF16)] uint16 *account_name,
442 [in] [string,charset(UTF16)] uint16 *admin_account,
443 [in] wkssvc_PasswordBuffer *encrypted_password,
444 [in] wkssvc_joinflags join_flags
447 /*****************************/
449 WERROR wkssvc_NetrUnjoinDomain2 (
450 [in] [string,charset(UTF16)] uint16 *server_name,
451 [in] [string,charset(UTF16)] uint16 *account,
452 [in] wkssvc_PasswordBuffer *encrypted_password,
453 [in] wkssvc_joinflags unjoin_flags
456 typedef [bitmap32bit] bitmap {
457 /* TRUE: create the account in the domain */
458 WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002
459 } wkssvc_renameflags;
461 /*****************************/
463 WERROR wkssvc_NetrRenameMachineInDomain2(
464 [in] [string,charset(UTF16)] uint16 *server_name,
465 [in] [string,charset(UTF16)] uint16 *NewMachineName,
466 [in] [string,charset(UTF16)] uint16 *Account,
467 [in] wkssvc_PasswordBuffer *EncryptedPassword,
468 [in] wkssvc_renameflags RenameOptions
471 /*****************************/
473 WERROR WKSSVC_NETRVALIDATENAME2 ();
475 /*****************************/
477 WERROR WKSSVC_NETRGETJOINABLEOUS2 ();
479 /*****************************/
481 WERROR wkssvc_NetrAddAlternateComputerName(
482 [in] [string,charset(UTF16)] uint16 *server_name,
483 [in] [string,charset(UTF16)] uint16 *NewAlternateMachineName,
484 [in] [string,charset(UTF16)] uint16 *Account,
485 [in] wkssvc_PasswordBuffer *EncryptedPassword,
489 /*****************************/
491 WERROR wkssvc_NetrRemoveAlternateComputerName(
492 [in] [string,charset(UTF16)] uint16 *server_name,
493 [in] [string,charset(UTF16)] uint16 *AlternateMachineNameToRemove,
494 [in] [string,charset(UTF16)] uint16 *Account,
495 [in] wkssvc_PasswordBuffer *EncryptedPassword,
499 /*****************************/
501 WERROR WKSSVC_NETRSETPRIMARYCOMPUTERNAME ();
503 /*****************************/
505 WERROR WKSSVC_NETRENUMERATECOMPUTERNAMES ();