2 wkssvc interface definitions
5 [ uuid("6bffd098-a112-3610-9833-46c3f87e345a"),
7 pointer_default(unique),
8 pointer_default_top
(unique),
9 helpstring("Workstation Service"),
22 [string,charset
(UTF16
)] uint16
*server_name
;
23 [string,charset
(UTF16
)] uint16
*domain_name
;
26 } wkssvc_NetWkstaInfo100
;
30 [string,charset
(UTF16
)] uint16
*server_name
;
31 [string,charset
(UTF16
)] uint16
*domain_name
;
34 [string,charset
(UTF16
)] uint16
*lan_root
;
35 } wkssvc_NetWkstaInfo101
;
39 [string,charset
(UTF16
)] uint16
*server_name
;
40 [string,charset
(UTF16
)] uint16
*domain_name
;
43 [string,charset
(UTF16
)] uint16
*lan_root
;
44 uint32 logged_on_users
;
45 } wkssvc_NetWkstaInfo102
;
49 uint32 collection_time
;
50 uint32 maximum_collection_count
;
51 uint32 keep_connection
;
53 uint32 session_timeout
;
57 uint32 lock_increment
;
59 uint32 pipe_increment
;
61 uint32 cache_file_timeout
;
62 uint32 dormant_file_limit
;
63 uint32 read_ahead_throughput
;
64 uint32 num_mailslot_buffers
;
65 uint32 num_srv_announce_buffers
;
66 uint32 max_illegal_dgram_events
;
67 uint32 dgram_event_reset_freq
;
68 BOOL log_election_packets
;
69 BOOL use_opportunistic_locking
;
70 BOOL use_unlock_behind
;
71 BOOL use_close_behind
;
73 BOOL use_lock_read_unlock
;
74 BOOL utilize_nt_caching
;
77 BOOL use_write_raw_data
;
79 BOOL buf_files_deny_write
;
80 BOOL buf_read_only_files
;
81 BOOL force_core_create_mode
;
82 BOOL use_512_byte_max_transfer
;
83 } wkssvc_NetWkstaInfo502
;
87 } wkssvc_NetWkstaInfo1010
;
90 uint32 collection_time
;
91 } wkssvc_NetWkstaInfo1011
;
94 uint32 maximum_collection_count
;
95 } wkssvc_NetWkstaInfo1012
;
98 uint32 keep_connection
;
99 } wkssvc_NetWkstaInfo1013
;
102 uint32 session_timeout
;
103 } wkssvc_NetWkstaInfo1018
;
106 uint32 size_char_buf
;
107 } wkssvc_NetWkstaInfo1023
;
111 } wkssvc_NetWkstaInfo1027
;
115 } wkssvc_NetWkstaInfo1033
;
118 [case(100)] wkssvc_NetWkstaInfo100
*info100
;
119 [case(101)] wkssvc_NetWkstaInfo101
*info101
;
120 [case(102)] wkssvc_NetWkstaInfo102
*info102
;
121 [case(502)] wkssvc_NetWkstaInfo502
*info502
;
122 [case(1010)] wkssvc_NetWkstaInfo1010
*info1010
;
123 [case(1011)] wkssvc_NetWkstaInfo1011
*info1011
;
124 [case(1012)] wkssvc_NetWkstaInfo1012
*info1012
;
125 [case(1013)] wkssvc_NetWkstaInfo1013
*info1013
;
126 [case(1018)] wkssvc_NetWkstaInfo1018
*info1018
;
127 [case(1023)] wkssvc_NetWkstaInfo1023
*info1023
;
128 [case(1027)] wkssvc_NetWkstaInfo1027
*info1027
;
129 [case(1033)] wkssvc_NetWkstaInfo1033
*info1033
;
131 } wkssvc_NetWkstaInfo
;
133 WERROR wkssvc_NetWkstaGetInfo
(
134 [in] [string,charset
(UTF16
)] uint16
*server_name
,
136 [out,switch_is(level
),ref] wkssvc_NetWkstaInfo
*info
142 WERROR wkssvc_NetWkstaSetInfo
(
143 [in] [string,charset
(UTF16
)] uint16
*server_name
,
145 [in,switch_is(level
),ref] wkssvc_NetWkstaInfo
*info
,
146 [in,out,ref] uint32
*parm_error
150 /*****************************/
153 [string,charset
(UTF16
)] uint16
*user
;
158 [size_is(entries_read
)] USER_INFO_0
*user0
;
159 } USER_INFO_0_CONTAINER
;
162 [string,charset
(UTF16
)] uint16
*user_name
;
163 [string,charset
(UTF16
)] uint16
*logon_domain
;
164 [string,charset
(UTF16
)] uint16
*other_domains
;
165 [string,charset
(UTF16
)] uint16
*logon_server
;
170 [size_is(entries_read
)] USER_INFO_1
*user1
;
171 } USER_INFO_1_CONTAINER
;
173 typedef [switch_type(uint32
)] union {
174 [case(0)] USER_INFO_0_CONTAINER
*user0
;
175 [case(1)] USER_INFO_1_CONTAINER
*user1
;
176 } WKS_USER_ENUM_UNION
;
178 WERROR wkssvc_NetWkstaEnumUsers
(
179 [in] [string,charset
(UTF16
)] uint16
*server_name
,
181 [in] [out] [ref] WKS_USER_ENUM_UNION
*users
,
182 [in] uint32 prefmaxlen
,
183 [out] uint32
*entriesread
,
184 [out] uint32
*totalentries
,
185 [in] [out] [ref] uint32
*resumehandle
188 /*****************************/
190 WERROR WKSSVC_NETRWKSTAUSERGETINFO
();
192 /*****************************/
194 WERROR WKSSVC_NETRWKSTAUSERSETINFO
();
197 /*****************************/
201 uint32 quality_of_service
;
203 [string,charset
(UTF16
)] uint16
*name
;
204 [string,charset
(UTF16
)] uint16
*address
;
206 } wkssvc_NetWkstaTransportInfo0
;
210 [size_is(count
)] wkssvc_NetWkstaTransportInfo0
*array
;
211 } wkssvc_NetWkstaTransportCtr0
;
214 [case(0)] wkssvc_NetWkstaTransportCtr0
*ctr0
;
216 } wkssvc_NetWkstaTransportCtr
;
218 WERROR wkssvc_NetWkstaTransportEnum
(
219 [in] [string,charset
(UTF16
)] uint16
*server_name
,
220 [in,out] uint32
*level
,
221 [in,out,switch_is(level
),ref] wkssvc_NetWkstaTransportCtr
*ctr
,
222 [in] uint32 max_buffer
,
223 [out] uint32
*totalentries
,
224 [in,out] uint32
*resume_handle
228 /*****************************/
230 WERROR WKSSVC_NETRWKSTATRANSPORTADD
();
232 /*****************************/
234 WERROR WKSSVC_NETRWKSTATRANSPORTDEL
();
236 /*****************************/
238 WERROR WKSSVC_NETRUSEADD
();
240 /*****************************/
242 WERROR WKSSVC_NETRUSEGETINFO
();
244 /*****************************/
246 WERROR WKSSVC_NETRUSEDEL
();
248 /*****************************/
250 WERROR WKSSVC_NETRUSEENUM
();
252 /*****************************/
254 WERROR WKSSVC_NETRMESSAGEBUFFERSEND
();
256 /*****************************/
258 WERROR WKSSVC_NETRWORKSTATIONSTATISTICSGET
();
260 /*****************************/
262 WERROR WKSSVC_NETRLOGONDOMAINNAMEADD
();
264 /*****************************/
266 WERROR WKSSVC_NETRLOGONDOMAINNAMEDEL
();
268 /*****************************/
270 WERROR WKSSVC_NETRJOINDOMAIN
();
272 /*****************************/
274 WERROR WKSSVC_NETRUNJOINDOMAIN
();
276 /*****************************/
278 WERROR WKSSVC_NETRRENAMEMACHINEINDOMAIN
();
280 /*****************************/
282 WERROR WKSSVC_NETRVALIDATENAME
();
284 /*****************************/
286 WERROR WKSSVC_NETRGETJOININFORMATION
();
288 /*****************************/
290 WERROR WKSSVC_NETRGETJOINABLEOUS
();
294 } wkssvc_PasswordBuffer
;
296 typedef [bitmap32bit
] bitmap
{
297 /* TRUE: defer setting the SPN and dNSHostName until a rename operation */
298 WKSSVC_JOIN_FLAGS_DEFER_SPN
= 0x00000100,
300 /* TRUE: set the machine password to the provided one after the join completes */
301 WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED
= 0x00000080,
303 /* TRUE: perform an unsecured join */
304 WKSSVC_JOIN_FLAGS_JOIN_UNSECURE
= 0x00000040,
306 /* TRUE: allow the join to complete even if the account already exists */
307 WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED
= 0x00000020,
309 /* TRUE: this join is part of a w9x upgrade */
310 WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE
= 0x00000010,
312 /* TRUE: delete the account when the domain is left */
313 WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE
= 0x00000004,
315 /* TRUE: create the account in the domain */
316 WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE
= 0x00000002,
318 /* TRUE: join domain FALSE: join workgroup */
319 WKSSVC_JOIN_FLAGS_JOIN_TYPE
= 0x00000001
323 /*****************************/
325 WERROR wkssvc_NetrJoinDomain2
(
326 [in] [string,charset
(UTF16
)] uint16
*server_name
,
327 [in] [string,charset
(UTF16
),ref] uint16
*domain_name
,
328 [in] [string,charset
(UTF16
)] uint16
*account_name
,
329 [in] [string,charset
(UTF16
)] uint16
*admin_account
,
330 [in] wkssvc_PasswordBuffer
*encrypted_password
,
331 [in] wkssvc_joinflags join_flags
334 /*****************************/
336 WERROR wkssvc_NetrUnjoinDomain2
(
337 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
338 [in] [unique] [string,charset
(UTF16
)] uint16
*account
,
339 [in] [unique] wkssvc_PasswordBuffer
*encrypted_password
,
340 [in] wkssvc_joinflags unjoin_flags
343 typedef [bitmap32bit
] bitmap
{
344 /* TRUE: create the account in the domain */
345 WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE
= 0x00000002
346 } wkssvc_renameflags
;
348 /*****************************/
350 WERROR wkssvc_NetrRenameMachineInDomain2
(
351 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
352 [in] [unique] [string,charset
(UTF16
)] uint16
*NewMachineName
,
353 [in] [unique] [string,charset
(UTF16
)] uint16
*Account
,
354 [in] [unique] wkssvc_PasswordBuffer
*EncryptedPassword
,
355 [in] wkssvc_renameflags RenameOptions
358 /*****************************/
360 WERROR WKSSVC_NETRVALIDATENAME2
();
362 /*****************************/
364 WERROR WKSSVC_NETRGETJOINABLEOUS2
();
366 /*****************************/
368 WERROR wkssvc_NetrAddAlternateComputerName
(
369 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
370 [in] [unique] [string,charset
(UTF16
)] uint16
*NewAlternateMachineName
,
371 [in] [unique] [string,charset
(UTF16
)] uint16
*Account
,
372 [in] [unique] wkssvc_PasswordBuffer
*EncryptedPassword
,
376 /*****************************/
378 WERROR wkssvc_NetrRemoveAlternateComputerName
(
379 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
380 [in] [unique] [string,charset
(UTF16
)] uint16
*AlternateMachineNameToRemove
,
381 [in] [unique] [string,charset
(UTF16
)] uint16
*Account
,
382 [in] [unique] wkssvc_PasswordBuffer
*EncryptedPassword
,
386 /*****************************/
388 WERROR WKSSVC_NETRSETPRIMARYCOMPUTERNAME
();
390 /*****************************/
392 WERROR WKSSVC_NETRENUMERATECOMPUTERNAMES
();