2 wkssvc interface definitions
5 [ uuid("6bffd098-a112-3610-9833-46c3f87e345a"),
7 pointer_default(unique),
8 pointer_default_top
(unique),
9 helpstring("Workstation Service"),
14 declare
[v1_enum] enum srvsvc_PlatformId
;
22 srvsvc_PlatformId platform_id
;
23 [string,charset
(UTF16
)] uint16
*server_name
;
24 [string,charset
(UTF16
)] uint16
*domain_name
;
27 } wkssvc_NetWkstaInfo100
;
30 srvsvc_PlatformId platform_id
;
31 [string,charset
(UTF16
)] uint16
*server_name
;
32 [string,charset
(UTF16
)] uint16
*domain_name
;
35 [string,charset
(UTF16
)] uint16
*lan_root
;
36 } wkssvc_NetWkstaInfo101
;
39 srvsvc_PlatformId platform_id
;
40 [string,charset
(UTF16
)] uint16
*server_name
;
41 [string,charset
(UTF16
)] uint16
*domain_name
;
44 [string,charset
(UTF16
)] uint16
*lan_root
;
45 uint32 logged_on_users
;
46 } wkssvc_NetWkstaInfo102
;
50 uint32 collection_time
;
51 uint32 maximum_collection_count
;
52 uint32 keep_connection
;
54 uint32 session_timeout
;
58 uint32 lock_increment
;
60 uint32 pipe_increment
;
62 uint32 cache_file_timeout
;
63 uint32 dormant_file_limit
;
64 uint32 read_ahead_throughput
;
65 uint32 num_mailslot_buffers
;
66 uint32 num_srv_announce_buffers
;
67 uint32 max_illegal_dgram_events
;
68 uint32 dgram_event_reset_freq
;
69 BOOL log_election_packets
;
70 BOOL use_opportunistic_locking
;
71 BOOL use_unlock_behind
;
72 BOOL use_close_behind
;
74 BOOL use_lock_read_unlock
;
75 BOOL utilize_nt_caching
;
78 BOOL use_write_raw_data
;
80 BOOL buf_files_deny_write
;
81 BOOL buf_read_only_files
;
82 BOOL force_core_create_mode
;
83 BOOL use_512_byte_max_transfer
;
84 } wkssvc_NetWkstaInfo502
;
88 } wkssvc_NetWkstaInfo1010
;
91 uint32 collection_time
;
92 } wkssvc_NetWkstaInfo1011
;
95 uint32 maximum_collection_count
;
96 } wkssvc_NetWkstaInfo1012
;
99 uint32 keep_connection
;
100 } wkssvc_NetWkstaInfo1013
;
103 uint32 session_timeout
;
104 } wkssvc_NetWkstaInfo1018
;
107 uint32 size_char_buf
;
108 } wkssvc_NetWkstaInfo1023
;
112 } wkssvc_NetWkstaInfo1027
;
116 } wkssvc_NetWkstaInfo1033
;
119 [case(100)] wkssvc_NetWkstaInfo100
*info100
;
120 [case(101)] wkssvc_NetWkstaInfo101
*info101
;
121 [case(102)] wkssvc_NetWkstaInfo102
*info102
;
122 [case(502)] wkssvc_NetWkstaInfo502
*info502
;
123 [case(1010)] wkssvc_NetWkstaInfo1010
*info1010
;
124 [case(1011)] wkssvc_NetWkstaInfo1011
*info1011
;
125 [case(1012)] wkssvc_NetWkstaInfo1012
*info1012
;
126 [case(1013)] wkssvc_NetWkstaInfo1013
*info1013
;
127 [case(1018)] wkssvc_NetWkstaInfo1018
*info1018
;
128 [case(1023)] wkssvc_NetWkstaInfo1023
*info1023
;
129 [case(1027)] wkssvc_NetWkstaInfo1027
*info1027
;
130 [case(1033)] wkssvc_NetWkstaInfo1033
*info1033
;
132 } wkssvc_NetWkstaInfo
;
134 WERROR wkssvc_NetWkstaGetInfo
(
135 [in] [string,charset
(UTF16
)] uint16
*server_name
,
137 [out,switch_is(level
),ref] wkssvc_NetWkstaInfo
*info
143 WERROR wkssvc_NetWkstaSetInfo
(
144 [in] [string,charset
(UTF16
)] uint16
*server_name
,
146 [in,switch_is(level
),ref] wkssvc_NetWkstaInfo
*info
,
147 [in,out,ref] uint32
*parm_error
151 /*****************************/
154 [string,charset
(UTF16
)] uint16
*user
;
159 [size_is(entries_read
)] USER_INFO_0
*user0
;
160 } USER_INFO_0_CONTAINER
;
163 [string,charset
(UTF16
)] uint16
*user_name
;
164 [string,charset
(UTF16
)] uint16
*logon_domain
;
165 [string,charset
(UTF16
)] uint16
*other_domains
;
166 [string,charset
(UTF16
)] uint16
*logon_server
;
171 [size_is(entries_read
)] USER_INFO_1
*user1
;
172 } USER_INFO_1_CONTAINER
;
174 typedef [switch_type(uint32
)] union {
175 [case(0)] USER_INFO_0_CONTAINER
*user0
;
176 [case(1)] USER_INFO_1_CONTAINER
*user1
;
177 } WKS_USER_ENUM_UNION
;
179 WERROR wkssvc_NetWkstaEnumUsers
(
180 [in] [string,charset
(UTF16
)] uint16
*server_name
,
182 [in] [out] [ref] WKS_USER_ENUM_UNION
*users
,
183 [in] uint32 prefmaxlen
,
184 [out] uint32
*entriesread
,
185 [out] uint32
*totalentries
,
186 [in] [out] [ref] uint32
*resumehandle
189 /*****************************/
191 WERROR WKSSVC_NETRWKSTAUSERGETINFO
();
193 /*****************************/
195 WERROR WKSSVC_NETRWKSTAUSERSETINFO
();
198 /*****************************/
202 uint32 quality_of_service
;
204 [string,charset
(UTF16
)] uint16
*name
;
205 [string,charset
(UTF16
)] uint16
*address
;
207 } wkssvc_NetWkstaTransportInfo0
;
211 [size_is(count
)] wkssvc_NetWkstaTransportInfo0
*array
;
212 } wkssvc_NetWkstaTransportCtr0
;
215 [case(0)] wkssvc_NetWkstaTransportCtr0
*ctr0
;
217 } wkssvc_NetWkstaTransportCtr
;
219 WERROR wkssvc_NetWkstaTransportEnum
(
220 [in] [string,charset
(UTF16
)] uint16
*server_name
,
221 [in,out] uint32 level
,
222 [in,out,switch_is(level
),ref] wkssvc_NetWkstaTransportCtr
*ctr
,
223 [in] uint32 max_buffer
,
224 [out] uint32 totalentries
,
225 [in,out] uint32
*resume_handle
229 /*****************************/
231 WERROR WKSSVC_NETRWKSTATRANSPORTADD
();
233 /*****************************/
235 WERROR WKSSVC_NETRWKSTATRANSPORTDEL
();
237 /*****************************/
239 WERROR WKSSVC_NETRUSEADD
();
241 /*****************************/
243 WERROR WKSSVC_NETRUSEGETINFO
();
245 /*****************************/
247 WERROR WKSSVC_NETRUSEDEL
();
249 /*****************************/
251 WERROR WKSSVC_NETRUSEENUM
();
253 /*****************************/
255 WERROR WKSSVC_NETRMESSAGEBUFFERSEND
();
257 /*****************************/
259 WERROR WKSSVC_NETRWORKSTATIONSTATISTICSGET
();
261 /*****************************/
263 WERROR WKSSVC_NETRLOGONDOMAINNAMEADD
();
265 /*****************************/
267 WERROR WKSSVC_NETRLOGONDOMAINNAMEDEL
();
269 /*****************************/
271 WERROR WKSSVC_NETRJOINDOMAIN
();
273 /*****************************/
275 WERROR WKSSVC_NETRUNJOINDOMAIN
();
277 /*****************************/
279 WERROR WKSSVC_NETRRENAMEMACHINEINDOMAIN
();
281 /*****************************/
283 WERROR WKSSVC_NETRVALIDATENAME
();
285 /*****************************/
287 WERROR WKSSVC_NETRGETJOININFORMATION
();
289 /*****************************/
291 WERROR WKSSVC_NETRGETJOINABLEOUS
();
295 } wkssvc_PasswordBuffer
;
297 typedef [bitmap32bit
] bitmap
{
298 /* TRUE: defer setting the SPN and dNSHostName until a rename operation */
299 WKSSVC_JOIN_FLAGS_DEFER_SPN
= 0x00000100,
301 /* TRUE: set the machine password to the provided one after the join completes */
302 WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED
= 0x00000080,
304 /* TRUE: perform an unsecured join */
305 WKSSVC_JOIN_FLAGS_JOIN_UNSECURE
= 0x00000040,
307 /* TRUE: allow the join to complete even if the account already exists */
308 WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED
= 0x00000020,
310 /* TRUE: this join is part of a w9x upgrade */
311 WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE
= 0x00000010,
313 /* TRUE: delete the account when the domain is left */
314 WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE
= 0x00000004,
316 /* TRUE: create the account in the domain */
317 WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE
= 0x00000002,
319 /* TRUE: join domain FALSE: join workgroup */
320 WKSSVC_JOIN_FLAGS_JOIN_TYPE
= 0x00000001
324 /*****************************/
326 WERROR wkssvc_NetrJoinDomain2
(
327 [in] [string,charset
(UTF16
)] uint16
*server_name
,
328 [in] [string,charset
(UTF16
),ref] uint16
*domain_name
,
329 [in] [string,charset
(UTF16
)] uint16
*account_name
,
330 [in] [string,charset
(UTF16
)] uint16
*admin_account
,
331 [in] wkssvc_PasswordBuffer
*encrypted_password
,
332 [in] wkssvc_joinflags join_flags
335 /*****************************/
337 WERROR wkssvc_NetrUnjoinDomain2
(
338 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
339 [in] [unique] [string,charset
(UTF16
)] uint16
*account
,
340 [in] [unique] wkssvc_PasswordBuffer
*encrypted_password
,
341 [in] wkssvc_joinflags unjoin_flags
344 typedef [bitmap32bit
] bitmap
{
345 /* TRUE: create the account in the domain */
346 WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE
= 0x00000002
347 } wkssvc_renameflags
;
349 /*****************************/
351 WERROR wkssvc_NetrRenameMachineInDomain2
(
352 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
353 [in] [unique] [string,charset
(UTF16
)] uint16
*NewMachineName
,
354 [in] [unique] [string,charset
(UTF16
)] uint16
*Account
,
355 [in] [unique] wkssvc_PasswordBuffer
*EncryptedPassword
,
356 [in] wkssvc_renameflags RenameOptions
359 /*****************************/
361 WERROR WKSSVC_NETRVALIDATENAME2
();
363 /*****************************/
365 WERROR WKSSVC_NETRGETJOINABLEOUS2
();
367 /*****************************/
369 WERROR wkssvc_NetrAddAlternateComputerName
(
370 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
371 [in] [unique] [string,charset
(UTF16
)] uint16
*NewAlternateMachineName
,
372 [in] [unique] [string,charset
(UTF16
)] uint16
*Account
,
373 [in] [unique] wkssvc_PasswordBuffer
*EncryptedPassword
,
377 /*****************************/
379 WERROR wkssvc_NetrRemoveAlternateComputerName
(
380 [in] [unique] [string,charset
(UTF16
)] uint16
*server_name
,
381 [in] [unique] [string,charset
(UTF16
)] uint16
*AlternateMachineNameToRemove
,
382 [in] [unique] [string,charset
(UTF16
)] uint16
*Account
,
383 [in] [unique] wkssvc_PasswordBuffer
*EncryptedPassword
,
387 /*****************************/
389 WERROR WKSSVC_NETRSETPRIMARYCOMPUTERNAME
();
391 /*****************************/
393 WERROR WKSSVC_NETRENUMERATECOMPUTERNAMES
();