[INCLUDE]
[reactos.git] / reactos / include / reactos / idl / wkssvc.idl
1 /*
2 * Workstation Service interface definition
3 */
4
5 #include <ms-dtyp.idl>
6
7 typedef [handle] wchar_t *WKSSVC_IDENTIFY_HANDLE;
8 typedef [handle] wchar_t *WKSSVC_IMPERSONATE_HANDLE;
9
10 typedef enum _NETSETUP_JOIN_STATUS
11 {
12 NetSetupUnknownStatus = 0,
13 NetSetupUnjoined,
14 NetSetupWorkgroupName,
15 NetSetupDomainName
16 } NETSETUP_JOIN_STATUS, *PNETSETUP_JOIN_STATUS;
17
18 typedef enum _NETSETUP_NAME_TYPE
19 {
20 NetSetupUnknown = 0,
21 NetSetupMachine,
22 NetSetupWorkgroup,
23 NetSetupDomain,
24 NetSetupNonExistentDomain,
25 NetSetupDnsMachine
26 } NETSETUP_NAME_TYPE, *PNETSETUP_NAME_TYPE;
27
28 typedef enum _NET_COMPUTER_NAME_TYPE
29 {
30 NetPrimaryComputerName = 0,
31 NetAlternateComputerNames,
32 NetAllComputerNames,
33 NetComputerNameTypeMax
34 } NET_COMPUTER_NAME_TYPE, *PNET_COMPUTER_NAME_TYPE;
35
36 typedef struct _STAT_WORKSTATION_0
37 {
38 LARGE_INTEGER StatisticsStartTime;
39 LARGE_INTEGER BytesReceived;
40 LARGE_INTEGER SmbsReceived;
41 LARGE_INTEGER PagingReadBytesRequested;
42 LARGE_INTEGER NonPagingReadBytesRequested;
43 LARGE_INTEGER CacheReadBytesRequested;
44 LARGE_INTEGER NetworkReadBytesRequested;
45 LARGE_INTEGER BytesTransmitted;
46 LARGE_INTEGER SmbsTransmitted;
47 LARGE_INTEGER PagingWriteBytesRequested;
48 LARGE_INTEGER NonPagingWriteBytesRequested;
49 LARGE_INTEGER CacheWriteBytesRequested;
50 LARGE_INTEGER NetworkWriteBytesRequested;
51 unsigned long InitiallyFailedOperations;
52 unsigned long FailedCompletionOperations;
53 unsigned long ReadOperations;
54 unsigned long RandomReadOperations;
55 unsigned long ReadSmbs;
56 unsigned long LargeReadSmbs;
57 unsigned long SmallReadSmbs;
58 unsigned long WriteOperations;
59 unsigned long RandomWriteOperations;
60 unsigned long WriteSmbs;
61 unsigned long LargeWriteSmbs;
62 unsigned long SmallWriteSmbs;
63 unsigned long RawReadsDenied;
64 unsigned long RawWritesDenied;
65 unsigned long NetworkErrors;
66 unsigned long Sessions;
67 unsigned long FailedSessions;
68 unsigned long Reconnects;
69 unsigned long CoreConnects;
70 unsigned long Lanman20Connects;
71 unsigned long Lanman21Connects;
72 unsigned long LanmanNtConnects;
73 unsigned long ServerDisconnects;
74 unsigned long HungSessions;
75 unsigned long UseCount;
76 unsigned long FailedUseCount;
77 unsigned long CurrentCommands;
78 } STAT_WORKSTATION_0, *PSTAT_WORKSTATION_0, *LPSTAT_WORKSTATION_0;
79
80 typedef struct _WKSTA_INFO_100
81 {
82 unsigned long wki100_platform_id;
83 [string] wchar_t *wki100_computername;
84 [string] wchar_t *wki100_langroup;
85 unsigned long wki100_ver_major;
86 unsigned long wki100_ver_minor;
87 } WKSTA_INFO_100, *PWKSTA_INFO_100, *LPWKSTA_INFO_100;
88
89 typedef struct _WKSTA_INFO_101
90 {
91 unsigned long wki101_platform_id;
92 [string] wchar_t *wki101_computername;
93 [string] wchar_t *wki101_langroup;
94 unsigned long wki101_ver_major;
95 unsigned long wki101_ver_minor;
96 [string] wchar_t* wki101_lanroot;
97 } WKSTA_INFO_101, *PWKSTA_INFO_101, *LPWKSTA_INFO_101;
98
99 typedef struct _WKSTA_INFO_102
100 {
101 unsigned long wki102_platform_id;
102 [string] wchar_t *wki102_computername;
103 [string] wchar_t *wki102_langroup;
104 unsigned long wki102_ver_major;
105 unsigned long wki102_ver_minor;
106 [string] wchar_t *wki102_lanroot;
107 unsigned long wki102_logged_on_users;
108 } WKSTA_INFO_102, *PWKSTA_INFO_102, *LPWKSTA_INFO_102;
109
110 typedef struct _WKSTA_INFO_502
111 {
112 unsigned long wki502_char_wait;
113 unsigned long wki502_collection_time;
114 unsigned long wki502_maximum_collection_count;
115 unsigned long wki502_keep_conn;
116 unsigned long wki502_max_cmds;
117 unsigned long wki502_sess_timeout;
118 unsigned long wki502_siz_char_buf;
119 unsigned long wki502_max_threads;
120 unsigned long wki502_lock_quota;
121 unsigned long wki502_lock_increment;
122 unsigned long wki502_lock_maximum;
123 unsigned long wki502_pipe_increment;
124 unsigned long wki502_pipe_maximum;
125 unsigned long wki502_cache_file_timeout;
126 unsigned long wki502_dormant_file_limit;
127 unsigned long wki502_read_ahead_throughput;
128 unsigned long wki502_num_mailslot_buffers;
129 unsigned long wki502_num_srv_announce_buffers;
130 unsigned long wki502_max_illegal_datagram_events;
131 unsigned long wki502_illegal_datagram_event_reset_frequency;
132 int wki502_log_election_packets;
133 int wki502_use_opportunistic_locking;
134 int wki502_use_unlock_behind;
135 int wki502_use_close_behind;
136 int wki502_buf_named_pipes;
137 int wki502_use_lock_read_unlock;
138 int wki502_utilize_nt_caching;
139 int wki502_use_raw_read;
140 int wki502_use_raw_write;
141 int wki502_use_write_raw_data;
142 int wki502_use_encryption;
143 int wki502_buf_files_deny_write;
144 int wki502_buf_read_only_files;
145 int wki502_force_core_create_mode;
146 int wki502_use_512_byte_max_transfer;
147 } WKSTA_INFO_502, *PWKSTA_INFO_502, *LPWKSTA_INFO_502;
148
149 typedef struct _WKSTA_INFO_1013
150 {
151 unsigned long wki1013_keep_conn;
152 } WKSTA_INFO_1013, *PWKSTA_INFO_1013, *LPWKSTA_INFO_1013;
153
154 typedef struct _WKSTA_INFO_1018
155 {
156 unsigned long wki1018_sess_timeout;
157 } WKSTA_INFO_1018, *PWKSTA_INFO_1018, *LPWKSTA_INFO_1018;
158
159 typedef struct _WKSTA_INFO_1046
160 {
161 unsigned long wki1046_dormant_file_limit;
162 } WKSTA_INFO_1046, *PWKSTA_INFO_1046, *LPWKSTA_INFO_1046;
163
164 typedef struct _WKSTA_USER_INFO_0
165 {
166 [string] wchar_t *wkui0_username;
167 } WKSTA_USER_INFO_0, *PWKSTA_USER_INFO_0, *LPWKSTA_USER_INFO_0;
168
169 typedef struct _WKSTA_USER_INFO_1
170 {
171 [string] wchar_t *wkui1_username;
172 [string] wchar_t *wkui1_logon_domain;
173 [string] wchar_t *wkui1_oth_domains;
174 [string] wchar_t *wkui1_logon_server;
175 } WKSTA_USER_INFO_1, *PWKSTA_USER_INFO_1, *LPWKSTA_USER_INFO_1;
176
177 typedef struct _WKSTA_TRANSPORT_INFO_0
178 {
179 unsigned long wkti0_quality_of_service;
180 unsigned long wkti0_number_of_vcs;
181 [string] wchar_t *wkti0_transport_name;
182 [string] wchar_t *wkti0_transport_address;
183 unsigned long wkti0_wan_ish;
184 } WKSTA_TRANSPORT_INFO_0, *PWKSTA_TRANSPORT_INFO_0, *LPWKSTA_TRANSPORT_INFO_0;
185
186 typedef [switch_type(unsigned long)] union _WKSTA_INFO
187 {
188 [case(100)] LPWKSTA_INFO_100 WkstaInfo100;
189 [case(101)] LPWKSTA_INFO_101 WkstaInfo101;
190 [case(102)] LPWKSTA_INFO_102 WkstaInfo102;
191 [case(502)] LPWKSTA_INFO_502 WkstaInfo502;
192 [case(1013)] LPWKSTA_INFO_1013 WkstaInfo1013;
193 [case(1018)] LPWKSTA_INFO_1018 WkstaInfo1018;
194 [case(1046)] LPWKSTA_INFO_1046 WkstaInfo1046;
195 [default] ;
196 } WKSTA_INFO, *PWKSTA_INFO, *LPWKSTA_INFO;
197
198 typedef struct _USE_INFO_0
199 {
200 [string] wchar_t *ui0_local;
201 [string] wchar_t *ui0_remote;
202 } USE_INFO_0, *PUSE_INFO_0, *LPUSE_INFO_0;
203
204 typedef struct _USE_INFO_1
205 {
206 [string] wchar_t *ui1_local;
207 [string] wchar_t *ui1_remote;
208 [string] wchar_t *ui1_password;
209 unsigned long ui1_status;
210 unsigned long ui1_asg_type;
211 unsigned long ui1_refcount;
212 unsigned long ui1_usecount;
213 } USE_INFO_1, *PUSE_INFO_1, *LPUSE_INFO_1;
214
215 typedef struct _USE_INFO_2
216 {
217 USE_INFO_1 ui2_useinfo;
218 [string] wchar_t *ui2_username;
219 [string] wchar_t *ui2_domainname;
220 } USE_INFO_2, *PUSE_INFO_2, *LPUSE_INFO_2;
221
222 typedef struct _USE_INFO_3
223 {
224 USE_INFO_2 ui3_ui2;
225 ULONG ui3_flags;
226 } USE_INFO_3, *PUSE_INFO_3, *LPUSE_INFO_3;
227
228 typedef [switch_type(unsigned long)] union _USE_INFO
229 {
230 [case(0)] LPUSE_INFO_0 UseInfo0;
231 [case(1)] LPUSE_INFO_1 UseInfo1;
232 [case(2)] LPUSE_INFO_2 UseInfo2;
233 [case(3)] LPUSE_INFO_3 UseInfo3;
234 [default] ;
235 } USE_INFO, *PUSE_INFO, *LPUSE_INFO;
236
237 typedef struct _USE_INFO_0_CONTAINER
238 {
239 unsigned long EntriesRead;
240 LPUSE_INFO_0 Buffer;
241 } USE_INFO_0_CONTAINER, *PUSE_INFO_0_CONTAINER, *LPUSE_INFO_0_CONTAINER;
242
243 typedef struct _USE_INFO_1_CONTAINER
244 {
245 unsigned long EntriesRead;
246 LPUSE_INFO_1 Buffer;
247 } USE_INFO_1_CONTAINER, *PUSE_INFO_1_CONTAINER, *LPUSE_INFO_1_CONTAINER;
248
249 typedef struct _USE_INFO_2_CONTAINER
250 {
251 unsigned long EntriesRead;
252 LPUSE_INFO_2 Buffer;
253 } USE_INFO_2_CONTAINER, *PUSE_INFO_2_CONTAINER, *LPUSE_INFO_2_CONTAINER;
254
255 typedef struct _USE_ENUM_STRUCT
256 {
257 DWORD Level;
258 [switch_is(Level)] union _USE_ENUM_UNION
259 {
260 [case(0)] LPUSE_INFO_0_CONTAINER Level0;
261 [case(1)] LPUSE_INFO_1_CONTAINER Level1;
262 [case(2)] LPUSE_INFO_2_CONTAINER Level2;
263 [default] ;
264 } UseInfo;
265 } USE_ENUM_STRUCT, *PUSE_ENUM_STRUCT, *LPUSE_ENUM_STRUCT;
266
267 typedef struct _WKSTA_USER_INFO_0_CONTAINER
268 {
269 unsigned long EntriesRead;
270 [size_is(EntriesRead)] LPWKSTA_USER_INFO_0 Buffer;
271 } WKSTA_USER_INFO_0_CONTAINER, *PWKSTA_USER_INFO_0_CONTAINER, *LPWKSTA_USER_INFO_0_CONTAINER;
272
273 typedef struct _WKSTA_USER_INFO_1_CONTAINER
274 {
275 unsigned long EntriesRead;
276 [size_is(EntriesRead)] LPWKSTA_USER_INFO_1 Buffer;
277 } WKSTA_USER_INFO_1_CONTAINER, *PWKSTA_USER_INFO_1_CONTAINER, *LPWKSTA_USER_INFO_1_CONTAINER;
278
279 typedef struct _WKSTA_USER_ENUM_STRUCT
280 {
281 unsigned long Level;
282 [switch_is(Level)] union _WKSTA_USER_ENUM_UNION
283 {
284 [case(0)] LPWKSTA_USER_INFO_0_CONTAINER Level0;
285 [case(1)] LPWKSTA_USER_INFO_1_CONTAINER Level1;
286 [default] ;
287 } WkstaUserInfo;
288 } WKSTA_USER_ENUM_STRUCT, *PWKSTA_USER_ENUM_STRUCT, *LPWKSTA_USER_ENUM_STRUCT;
289
290 typedef struct _WKSTA_TRANSPORT_INFO_0_CONTAINER
291 {
292 unsigned long EntriesRead;
293 [size_is(EntriesRead)] LPWKSTA_TRANSPORT_INFO_0 Buffer;
294 } WKSTA_TRANSPORT_INFO_0_CONTAINER, *PWKSTA_TRANSPORT_INFO_0_CONTAINER, *LPWKSTA_TRANSPORT_INFO_0_CONTAINER;
295
296 typedef struct _WKSTA_TRANSPORT_ENUM_STRUCT
297 {
298 unsigned long Level;
299 [switch_is(Level)] union _WKSTA_TRANSPORT_ENUM_UNION
300 {
301 [case(0)] LPWKSTA_TRANSPORT_INFO_0_CONTAINER Level0;
302 [default] ;
303 } WkstaTransportInfo;
304 } WKSTA_TRANSPORT_ENUM_STRUCT, *PWKSTA_TRANSPORT_ENUM_STRUCT, *LPWKSTA_TRANSPORT_ENUM_STRUCT;
305
306 #define JOIN_OBFUSCATOR_LENGTH 8
307 #define JOIN_MAX_PASSWORD_LENGTH 256
308 typedef struct _JOINPR_USER_PASSWORD
309 {
310 unsigned char Obfuscator[JOIN_OBFUSCATOR_LENGTH];
311 wchar_t Buffer[JOIN_MAX_PASSWORD_LENGTH];
312 unsigned long Length;
313 } JOINPR_USER_PASSWORD, *PJOINPR_USER_PASSWORD;
314
315 typedef struct _JOINPR_ENCRYPTED_USER_PASSWORD
316 {
317 unsigned char Buffer[JOIN_OBFUSCATOR_LENGTH + (JOIN_MAX_PASSWORD_LENGTH * sizeof(wchar_t)) + sizeof(unsigned long)];
318 } JOINPR_ENCRYPTED_USER_PASSWORD, *PJOINPR_ENCRYPTED_USER_PASSWORD;
319
320 cpp_quote("#if !defined(_NTSECAPI_H)")
321 typedef struct _UNICODE_STRING
322 {
323 unsigned short Length;
324 unsigned short MaximumLength;
325 [size_is(MaximumLength / 2), length_is((Length) / 2)] unsigned short *Buffer;
326 } UNICODE_STRING, *PUNICODE_STRING;
327 cpp_quote("#endif")
328
329 typedef struct _NET_COMPUTER_NAME_ARRAY
330 {
331 unsigned long EntryCount;
332 [size_is(EntryCount)] PUNICODE_STRING ComputerNames;
333 } NET_COMPUTER_NAME_ARRAY, *PNET_COMPUTER_NAME_ARRAY;
334
335
336 [
337 uuid(6BFFD098-A112-3610-9833-46C3F87E345A),version(1.0),
338 version(1.0),
339 pointer_default(unique),
340 endpoint("ncacn_np:[\\pipe\\wkssvc]")
341 #ifndef __midl
342 ,implicit_handle(handle_t hBinding)
343 #endif
344
345 ]
346 interface wkssvc
347 {
348 /* Function 0 */
349 unsigned long
350 __stdcall
351 NetrWkstaGetInfo (
352 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
353 [in] unsigned long Level,
354 [out, switch_is(Level)] LPWKSTA_INFO WkstaInfo);
355
356 /* Function 1 */
357 unsigned long
358 __stdcall
359 NetrWkstaSetInfo (
360 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
361 [in] unsigned long Level,
362 [in, switch_is(Level)] LPWKSTA_INFO WkstaInfo,
363 [in, out, unique] unsigned long *ErrorParameter);
364
365 /* Function 2 */
366 unsigned long
367 __stdcall
368 NetrWkstaUserEnum (
369 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
370 [in, out] LPWKSTA_USER_ENUM_STRUCT UserInfo,
371 [in] unsigned long PreferredMaximumLength,
372 [out] unsigned long *TotalEntries,
373 [in, out, unique] unsigned long *ResumeHandle);
374
375 /* Function 3 */
376 void
377 __stdcall
378 Opnum3NotUsedOnWire(void);
379
380 /* Function 4 */
381 void
382 __stdcall
383 Opnum4NotUsedOnWire(void);
384
385 /* Function 5 */
386 unsigned long
387 __stdcall
388 NetrWkstaTransportEnum (
389 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
390 [in, out] LPWKSTA_TRANSPORT_ENUM_STRUCT TransportInfo,
391 [in] unsigned long PreferredMaximumLength,
392 [out] unsigned long* TotalEntries,
393 [in, out, unique] unsigned long *ResumeHandle);
394
395 /* Function 6 */
396 unsigned long
397 __stdcall
398 NetrWkstaTransportAdd (
399 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
400 [in] unsigned long Level,
401 [in] LPWKSTA_TRANSPORT_INFO_0 TransportInfo,
402 [in, out, unique] unsigned long *ErrorParameter);
403
404 /* Function 7 */
405 unsigned long
406 __stdcall
407 NetrWkstaTransportDel (
408 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
409 [in, string, unique] wchar_t *TransportName,
410 [in] unsigned long ForceLevel);
411
412 /* Function 8 */
413 unsigned long
414 __stdcall
415 NetrUseAdd (
416 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
417 [in] unsigned long Level,
418 [in, switch_is(Level)] LPUSE_INFO InfoStruct,
419 [in, out, unique] unsigned long *ErrorParameter);
420
421 /* Function 9 */
422 unsigned long
423 __stdcall
424 NetrUseGetInfo (
425 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
426 [in, string] wchar_t *UseName,
427 [in] unsigned long Level,
428 [out, switch_is(Level)] LPUSE_INFO InfoStruct);
429
430 /* Function 10 */
431 unsigned long
432 __stdcall
433 NetrUseDel (
434 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
435 [in, string] wchar_t *UseName,
436 [in] unsigned long ForceLevel);
437
438 /* Function 11 */
439 unsigned long
440 __stdcall
441 NetrUseEnum (
442 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
443 [in, out] LPUSE_ENUM_STRUCT InfoStruct,
444 [in] unsigned long PreferredMaximumLength,
445 [out] unsigned long *TotalEntries,
446 [in, out, unique] unsigned long *ResumeHandle);
447
448 /* Function 12 */
449 void
450 __stdcall
451 Opnum12NotUsedOnWire(void);
452
453 /* Function 13 */
454 unsigned long
455 __stdcall
456 NetrWorkstationStatisticsGet(
457 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
458 [in, string, unique] wchar_t *ServiceName,
459 [in] unsigned long Level,
460 [in] unsigned long Options,
461 [out] LPSTAT_WORKSTATION_0 *Buffer);
462
463 /* Function 14 */
464 void
465 __stdcall
466 Opnum14NotUsedOnWire(void);
467
468 /* Function 15 */
469 void
470 __stdcall
471 Opnum15NotUsedOnWire(void);
472
473 /* Function 16 */
474 void
475 __stdcall
476 Opnum16NotUsedOnWire(void);
477
478 /* Function 17 */
479 void
480 __stdcall
481 Opnum17NotUsedOnWire(void);
482
483 /* Function 18 */
484 void
485 __stdcall
486 Opnum18NotUsedOnWire(void);
487
488 /* Function 19 */
489 void
490 __stdcall
491 Opnum19NotUsedOnWire(void);
492
493 /* Function 20 */
494 unsigned long
495 __stdcall
496 NetrGetJoinInformation(
497 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
498 [in, out, string] wchar_t **NameBuffer,
499 [out] PNETSETUP_JOIN_STATUS BufferType);
500
501 /* Function 21 */
502 void
503 __stdcall
504 Opnum21NotUsedOnWire(void);
505
506 /* Function 22 */
507 unsigned long
508 __stdcall
509 NetrJoinDomain2(
510 [in] handle_t RpcBindingHandle,
511 [in, string, unique] wchar_t *ServerName,
512 [in, string] wchar_t *DomainNameParam,
513 [in, string, unique] wchar_t *MachineAccountOU,
514 [in, string, unique] wchar_t *AccountName,
515 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
516 [in] unsigned long Options);
517
518 /* Function 23 */
519 unsigned long
520 __stdcall
521 NetrUnjoinDomain2(
522 [in] handle_t RpcBindingHandle,
523 [in, string, unique] wchar_t *ServerName,
524 [in, string, unique] wchar_t *AccountName,
525 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
526 [in] unsigned long Options);
527
528 /* Function 24 */
529 unsigned long
530 __stdcall
531 NetrRenameMachineInDomain2(
532 [in] handle_t RpcBindingHandle,
533 [in, string, unique] wchar_t *ServerName,
534 [in, string, unique] wchar_t *MachineName,
535 [in, string, unique] wchar_t *AccountName,
536 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
537 [in] unsigned long Options);
538
539 /* Function 25 */
540 unsigned long
541 __stdcall
542 NetrValidateName2(
543 [in] handle_t RpcBindingHandle,
544 [in, string, unique] wchar_t *ServerName,
545 [in, string] wchar_t *NameToValidate,
546 [in, string, unique] wchar_t *AccountName,
547 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
548 [in] NETSETUP_NAME_TYPE NameType);
549
550 /* Function 26 */
551 unsigned long
552 __stdcall
553 NetrGetJoinableOUs2(
554 [in] handle_t RpcBindingHandle,
555 [in, string, unique] wchar_t *ServerName,
556 [in, string] wchar_t *DomainNameParam,
557 [in, string, unique] wchar_t *AccountName,
558 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
559 [in, out] unsigned long* OUCount,
560 [out, string, size_is(,*OUCount)] wchar_t ***OUs);
561
562 /* Function 27 */
563 unsigned long
564 __stdcall
565 NetrAddAlternateComputerName(
566 [in] handle_t RpcBindingHandle,
567 [in, string, unique] wchar_t *ServerName,
568 [in, string, unique] wchar_t *AlternateName,
569 [in, string, unique] wchar_t *DomainAccount,
570 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword,
571 [in] unsigned long Reserved);
572
573 /* Function 28 */
574 unsigned long
575 __stdcall
576 NetrRemoveAlternateComputerName(
577 [in] handle_t RpcBindingHandle,
578 [in, string, unique] wchar_t *ServerName,
579 [in, string, unique] wchar_t *AlternateName,
580 [in, string, unique] wchar_t *DomainAccount,
581 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword,
582 [in] unsigned long Reserved);
583
584 /* Function 29 */
585 unsigned long
586 __stdcall
587 NetrSetPrimaryComputerName(
588 [in] handle_t RpcBindingHandle,
589 [in, string, unique] wchar_t *ServerName,
590 [in, string, unique] wchar_t *PrimaryName,
591 [in, string, unique] wchar_t *DomainAccount,
592 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword,
593 [in] unsigned long Reserved);
594
595 /* Function 30 */
596 unsigned long
597 __stdcall
598 NetrEnumerateComputerNames(
599 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
600 [in] NET_COMPUTER_NAME_TYPE NameType,
601 [in] unsigned long Reserved,
602 [out] PNET_COMPUTER_NAME_ARRAY *ComputerNames);
603 }