[IDL] Fix coding style and indentation
[reactos.git] / sdk / 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_USER_INFO_1101
178 {
179 [string] wchar_t *wkui1101_oth_domains;
180 } WKSTA_USER_INFO_1101, *PWKSTA_USER_INFO_1101, *LPWKSTA_USER_INFO_1101;
181
182 typedef [switch_type(unsigned long)] union _WKSTA_USER_INFO
183 {
184 [case(0)] LPWKSTA_USER_INFO_0 UserInfo0;
185 [case(1)] LPWKSTA_USER_INFO_1 UserInfo1;
186 [case(1101)] LPWKSTA_USER_INFO_1101 UserInfo1101;
187 [default] ;
188 } WKSTA_USER_INFO, *PWKSTA_USER_INFO, *LPWKSTA_USER_INFO;
189
190 typedef struct _WKSTA_TRANSPORT_INFO_0
191 {
192 unsigned long wkti0_quality_of_service;
193 unsigned long wkti0_number_of_vcs;
194 [string] wchar_t *wkti0_transport_name;
195 [string] wchar_t *wkti0_transport_address;
196 unsigned long wkti0_wan_ish;
197 } WKSTA_TRANSPORT_INFO_0, *PWKSTA_TRANSPORT_INFO_0, *LPWKSTA_TRANSPORT_INFO_0;
198
199 typedef [switch_type(unsigned long)] union _WKSTA_INFO
200 {
201 [case(100)] LPWKSTA_INFO_100 WkstaInfo100;
202 [case(101)] LPWKSTA_INFO_101 WkstaInfo101;
203 [case(102)] LPWKSTA_INFO_102 WkstaInfo102;
204 [case(502)] LPWKSTA_INFO_502 WkstaInfo502;
205 [case(1013)] LPWKSTA_INFO_1013 WkstaInfo1013;
206 [case(1018)] LPWKSTA_INFO_1018 WkstaInfo1018;
207 [case(1046)] LPWKSTA_INFO_1046 WkstaInfo1046;
208 [default] ;
209 } WKSTA_INFO, *PWKSTA_INFO, *LPWKSTA_INFO;
210
211 typedef struct _USE_INFO_0
212 {
213 [string] wchar_t *ui0_local;
214 [string] wchar_t *ui0_remote;
215 } USE_INFO_0, *PUSE_INFO_0, *LPUSE_INFO_0;
216
217 typedef struct _USE_INFO_1
218 {
219 [string] wchar_t *ui1_local;
220 [string] wchar_t *ui1_remote;
221 [string] wchar_t *ui1_password;
222 unsigned long ui1_status;
223 unsigned long ui1_asg_type;
224 unsigned long ui1_refcount;
225 unsigned long ui1_usecount;
226 } USE_INFO_1, *PUSE_INFO_1, *LPUSE_INFO_1;
227
228 typedef struct _USE_INFO_2
229 {
230 USE_INFO_1 ui2_useinfo;
231 [string] wchar_t *ui2_username;
232 [string] wchar_t *ui2_domainname;
233 } USE_INFO_2, *PUSE_INFO_2, *LPUSE_INFO_2;
234
235 typedef struct _USE_INFO_3
236 {
237 USE_INFO_2 ui3_ui2;
238 ULONG ui3_flags;
239 } USE_INFO_3, *PUSE_INFO_3, *LPUSE_INFO_3;
240
241 typedef [switch_type(unsigned long)] union _USE_INFO
242 {
243 [case(0)] LPUSE_INFO_0 UseInfo0;
244 [case(1)] LPUSE_INFO_1 UseInfo1;
245 [case(2)] LPUSE_INFO_2 UseInfo2;
246 [case(3)] LPUSE_INFO_3 UseInfo3;
247 [default] ;
248 } USE_INFO, *PUSE_INFO, *LPUSE_INFO;
249
250 typedef struct _USE_INFO_0_CONTAINER
251 {
252 unsigned long EntriesRead;
253 LPUSE_INFO_0 Buffer;
254 } USE_INFO_0_CONTAINER, *PUSE_INFO_0_CONTAINER, *LPUSE_INFO_0_CONTAINER;
255
256 typedef struct _USE_INFO_1_CONTAINER
257 {
258 unsigned long EntriesRead;
259 LPUSE_INFO_1 Buffer;
260 } USE_INFO_1_CONTAINER, *PUSE_INFO_1_CONTAINER, *LPUSE_INFO_1_CONTAINER;
261
262 typedef struct _USE_INFO_2_CONTAINER
263 {
264 unsigned long EntriesRead;
265 LPUSE_INFO_2 Buffer;
266 } USE_INFO_2_CONTAINER, *PUSE_INFO_2_CONTAINER, *LPUSE_INFO_2_CONTAINER;
267
268 typedef struct _USE_ENUM_STRUCT
269 {
270 DWORD Level;
271 [switch_is(Level)] union _USE_ENUM_UNION
272 {
273 [case(0)] LPUSE_INFO_0_CONTAINER Level0;
274 [case(1)] LPUSE_INFO_1_CONTAINER Level1;
275 [case(2)] LPUSE_INFO_2_CONTAINER Level2;
276 [default] ;
277 } UseInfo;
278 } USE_ENUM_STRUCT, *PUSE_ENUM_STRUCT, *LPUSE_ENUM_STRUCT;
279
280 typedef struct _WKSTA_USER_INFO_0_CONTAINER
281 {
282 unsigned long EntriesRead;
283 [size_is(EntriesRead)] LPWKSTA_USER_INFO_0 Buffer;
284 } WKSTA_USER_INFO_0_CONTAINER, *PWKSTA_USER_INFO_0_CONTAINER, *LPWKSTA_USER_INFO_0_CONTAINER;
285
286 typedef struct _WKSTA_USER_INFO_1_CONTAINER
287 {
288 unsigned long EntriesRead;
289 [size_is(EntriesRead)] LPWKSTA_USER_INFO_1 Buffer;
290 } WKSTA_USER_INFO_1_CONTAINER, *PWKSTA_USER_INFO_1_CONTAINER, *LPWKSTA_USER_INFO_1_CONTAINER;
291
292 typedef struct _WKSTA_USER_ENUM_STRUCT
293 {
294 unsigned long Level;
295 [switch_is(Level)] union _WKSTA_USER_ENUM_UNION
296 {
297 [case(0)] LPWKSTA_USER_INFO_0_CONTAINER Level0;
298 [case(1)] LPWKSTA_USER_INFO_1_CONTAINER Level1;
299 [default] ;
300 } WkstaUserInfo;
301 } WKSTA_USER_ENUM_STRUCT, *PWKSTA_USER_ENUM_STRUCT, *LPWKSTA_USER_ENUM_STRUCT;
302
303 typedef struct _WKSTA_TRANSPORT_INFO_0_CONTAINER
304 {
305 unsigned long EntriesRead;
306 [size_is(EntriesRead)] LPWKSTA_TRANSPORT_INFO_0 Buffer;
307 } WKSTA_TRANSPORT_INFO_0_CONTAINER, *PWKSTA_TRANSPORT_INFO_0_CONTAINER, *LPWKSTA_TRANSPORT_INFO_0_CONTAINER;
308
309 typedef struct _WKSTA_TRANSPORT_ENUM_STRUCT
310 {
311 unsigned long Level;
312 [switch_is(Level)] union _WKSTA_TRANSPORT_ENUM_UNION
313 {
314 [case(0)] LPWKSTA_TRANSPORT_INFO_0_CONTAINER Level0;
315 [default] ;
316 } WkstaTransportInfo;
317 } WKSTA_TRANSPORT_ENUM_STRUCT, *PWKSTA_TRANSPORT_ENUM_STRUCT, *LPWKSTA_TRANSPORT_ENUM_STRUCT;
318
319 #define JOIN_OBFUSCATOR_LENGTH 8
320 #define JOIN_MAX_PASSWORD_LENGTH 256
321 typedef struct _JOINPR_USER_PASSWORD
322 {
323 unsigned char Obfuscator[JOIN_OBFUSCATOR_LENGTH];
324 wchar_t Buffer[JOIN_MAX_PASSWORD_LENGTH];
325 unsigned long Length;
326 } JOINPR_USER_PASSWORD, *PJOINPR_USER_PASSWORD;
327
328 typedef struct _JOINPR_ENCRYPTED_USER_PASSWORD
329 {
330 unsigned char Buffer[JOIN_OBFUSCATOR_LENGTH + (JOIN_MAX_PASSWORD_LENGTH * sizeof(wchar_t)) + sizeof(unsigned long)];
331 } JOINPR_ENCRYPTED_USER_PASSWORD, *PJOINPR_ENCRYPTED_USER_PASSWORD;
332
333 cpp_quote("#if !defined(_NTSECAPI_H)")
334 typedef struct _UNICODE_STRING
335 {
336 unsigned short Length;
337 unsigned short MaximumLength;
338 [size_is(MaximumLength / 2), length_is((Length) / 2)] unsigned short *Buffer;
339 } UNICODE_STRING, *PUNICODE_STRING;
340 cpp_quote("#endif")
341
342 typedef struct _NET_COMPUTER_NAME_ARRAY
343 {
344 unsigned long EntryCount;
345 [size_is(EntryCount)] PUNICODE_STRING ComputerNames;
346 } NET_COMPUTER_NAME_ARRAY, *PNET_COMPUTER_NAME_ARRAY;
347
348
349 [
350 uuid(6BFFD098-A112-3610-9833-46C3F87E345A),
351 version(1.0),
352 pointer_default(unique),
353 endpoint("ncacn_np:[\\pipe\\wkssvc]")
354 #ifndef __midl
355 ,implicit_handle(handle_t hBinding)
356 #endif
357
358 ]
359 interface wkssvc
360 {
361 /* Function 0 */
362 unsigned long
363 __stdcall
364 NetrWkstaGetInfo(
365 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
366 [in] unsigned long Level,
367 [out, switch_is(Level)] LPWKSTA_INFO WkstaInfo);
368
369 /* Function 1 */
370 unsigned long
371 __stdcall
372 NetrWkstaSetInfo(
373 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
374 [in] unsigned long Level,
375 [in, switch_is(Level)] LPWKSTA_INFO WkstaInfo,
376 [in, out, unique] unsigned long *ErrorParameter);
377
378 /* Function 2 */
379 unsigned long
380 __stdcall
381 NetrWkstaUserEnum(
382 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
383 [in, out] LPWKSTA_USER_ENUM_STRUCT UserInfo,
384 [in] unsigned long PreferredMaximumLength,
385 [out] unsigned long *TotalEntries,
386 [in, out, unique] unsigned long *ResumeHandle);
387
388 /* Function 3 */
389 unsigned long
390 __stdcall
391 NetrWkstaUserGetInfo(
392 [in, string, unique] WKSSVC_IDENTIFY_HANDLE Unused,
393 [in] unsigned long Level,
394 [out, switch_is(Level)] LPWKSTA_USER_INFO UserInfo);
395
396 /* Function 4 */
397 unsigned long
398 __stdcall
399 NetrWkstaUserSetInfo(
400 [in, string, unique] WKSSVC_IDENTIFY_HANDLE Unused,
401 [in] unsigned long Level,
402 [in, switch_is(Level)] LPWKSTA_USER_INFO UserInfo,
403 [in, out, unique] unsigned long *ErrorParameter);
404
405 /* Function 5 */
406 unsigned long
407 __stdcall
408 NetrWkstaTransportEnum(
409 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
410 [in, out] LPWKSTA_TRANSPORT_ENUM_STRUCT TransportInfo,
411 [in] unsigned long PreferredMaximumLength,
412 [out] unsigned long* TotalEntries,
413 [in, out, unique] unsigned long *ResumeHandle);
414
415 /* Function 6 */
416 unsigned long
417 __stdcall
418 NetrWkstaTransportAdd(
419 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
420 [in] unsigned long Level,
421 [in] LPWKSTA_TRANSPORT_INFO_0 TransportInfo,
422 [in, out, unique] unsigned long *ErrorParameter);
423
424 /* Function 7 */
425 unsigned long
426 __stdcall
427 NetrWkstaTransportDel(
428 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
429 [in, string, unique] wchar_t *TransportName,
430 [in] unsigned long ForceLevel);
431
432 /* Function 8 */
433 unsigned long
434 __stdcall
435 NetrUseAdd(
436 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
437 [in] unsigned long Level,
438 [in, switch_is(Level)] LPUSE_INFO InfoStruct,
439 [in, out, unique] unsigned long *ErrorParameter);
440
441 /* Function 9 */
442 unsigned long
443 __stdcall
444 NetrUseGetInfo(
445 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
446 [in, string] wchar_t *UseName,
447 [in] unsigned long Level,
448 [out, switch_is(Level)] LPUSE_INFO InfoStruct);
449
450 /* Function 10 */
451 unsigned long
452 __stdcall
453 NetrUseDel(
454 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
455 [in, string] wchar_t *UseName,
456 [in] unsigned long ForceLevel);
457
458 /* Function 11 */
459 unsigned long
460 __stdcall
461 NetrUseEnum(
462 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
463 [in, out] LPUSE_ENUM_STRUCT InfoStruct,
464 [in] unsigned long PreferredMaximumLength,
465 [out] unsigned long *TotalEntries,
466 [in, out, unique] unsigned long *ResumeHandle);
467
468 /* Function 12 */
469 void
470 __stdcall
471 Opnum12NotUsedOnWire(void);
472
473 /* Function 13 */
474 unsigned long
475 __stdcall
476 NetrWorkstationStatisticsGet(
477 [in, string, unique] WKSSVC_IDENTIFY_HANDLE ServerName,
478 [in, string, unique] wchar_t *ServiceName,
479 [in] unsigned long Level,
480 [in] unsigned long Options,
481 [out] LPSTAT_WORKSTATION_0 *Buffer);
482
483 /* Function 14 */
484 void
485 __stdcall
486 Opnum14NotUsedOnWire(void);
487
488 /* Function 15 */
489 void
490 __stdcall
491 Opnum15NotUsedOnWire(void);
492
493 /* Function 16 */
494 void
495 __stdcall
496 Opnum16NotUsedOnWire(void);
497
498 /* Function 17 */
499 void
500 __stdcall
501 Opnum17NotUsedOnWire(void);
502
503 /* Function 18 */
504 void
505 __stdcall
506 Opnum18NotUsedOnWire(void);
507
508 /* Function 19 */
509 void
510 __stdcall
511 Opnum19NotUsedOnWire(void);
512
513 /* Function 20 */
514 unsigned long
515 __stdcall
516 NetrGetJoinInformation(
517 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
518 [in, out, string] wchar_t **NameBuffer,
519 [out] PNETSETUP_JOIN_STATUS BufferType);
520
521 /* Function 21 */
522 void
523 __stdcall
524 Opnum21NotUsedOnWire(void);
525
526 /* Function 22 */
527 unsigned long
528 __stdcall
529 NetrJoinDomain2(
530 [in] handle_t RpcBindingHandle,
531 [in, string, unique] wchar_t *ServerName,
532 [in, string] wchar_t *DomainNameParam,
533 [in, string, unique] wchar_t *MachineAccountOU,
534 [in, string, unique] wchar_t *AccountName,
535 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
536 [in] unsigned long Options);
537
538 /* Function 23 */
539 unsigned long
540 __stdcall
541 NetrUnjoinDomain2(
542 [in] handle_t RpcBindingHandle,
543 [in, string, unique] wchar_t *ServerName,
544 [in, string, unique] wchar_t *AccountName,
545 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
546 [in] unsigned long Options);
547
548 /* Function 24 */
549 unsigned long
550 __stdcall
551 NetrRenameMachineInDomain2(
552 [in] handle_t RpcBindingHandle,
553 [in, string, unique] wchar_t *ServerName,
554 [in, string, unique] wchar_t *MachineName,
555 [in, string, unique] wchar_t *AccountName,
556 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
557 [in] unsigned long Options);
558
559 /* Function 25 */
560 unsigned long
561 __stdcall
562 NetrValidateName2(
563 [in] handle_t RpcBindingHandle,
564 [in, string, unique] wchar_t *ServerName,
565 [in, string] wchar_t *NameToValidate,
566 [in, string, unique] wchar_t *AccountName,
567 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
568 [in] NETSETUP_NAME_TYPE NameType);
569
570 /* Function 26 */
571 unsigned long
572 __stdcall
573 NetrGetJoinableOUs2(
574 [in] handle_t RpcBindingHandle,
575 [in, string, unique] wchar_t *ServerName,
576 [in, string] wchar_t *DomainNameParam,
577 [in, string, unique] wchar_t *AccountName,
578 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD Password,
579 [in, out] unsigned long* OUCount,
580 [out, string, size_is(,*OUCount)] wchar_t ***OUs);
581
582 /* Function 27 */
583 unsigned long
584 __stdcall
585 NetrAddAlternateComputerName(
586 [in] handle_t RpcBindingHandle,
587 [in, string, unique] wchar_t *ServerName,
588 [in, string, unique] wchar_t *AlternateName,
589 [in, string, unique] wchar_t *DomainAccount,
590 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword,
591 [in] unsigned long Reserved);
592
593 /* Function 28 */
594 unsigned long
595 __stdcall
596 NetrRemoveAlternateComputerName(
597 [in] handle_t RpcBindingHandle,
598 [in, string, unique] wchar_t *ServerName,
599 [in, string, unique] wchar_t *AlternateName,
600 [in, string, unique] wchar_t *DomainAccount,
601 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword,
602 [in] unsigned long Reserved);
603
604 /* Function 29 */
605 unsigned long
606 __stdcall
607 NetrSetPrimaryComputerName(
608 [in] handle_t RpcBindingHandle,
609 [in, string, unique] wchar_t *ServerName,
610 [in, string, unique] wchar_t *PrimaryName,
611 [in, string, unique] wchar_t *DomainAccount,
612 [in, unique] PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword,
613 [in] unsigned long Reserved);
614
615 /* Function 30 */
616 unsigned long
617 __stdcall
618 NetrEnumerateComputerNames(
619 [in, string, unique] WKSSVC_IMPERSONATE_HANDLE ServerName,
620 [in] NET_COMPUTER_NAME_TYPE NameType,
621 [in] unsigned long Reserved,
622 [out] PNET_COMPUTER_NAME_ARRAY *ComputerNames);
623 }