4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
30 * NT Distributed File Service (NETDFS) RPC interface definition.
33 #include "ndrtypes.ndl"
36 #define NETDFS_ABSTRACT_UUID "4fc742e0-4a10-11cf-8273-00aa004ae673"
37 #define NETDFS_ABSTRACT_VERS 3
39 #define NETDFS_TRANSFER_UUID "8a885d04-1ceb-11c9-9fe8-08002b104860"
40 #define NETDFS_TRANSFER_VERS 2
42 #define NETDFS_OPNUM_GETVER 0x00
43 #define NETDFS_OPNUM_ADD 0x01
44 #define NETDFS_OPNUM_REMOVE 0x02
45 #define NETDFS_OPNUM_SETINFO 0x03
46 #define NETDFS_OPNUM_GETINFO 0x04
47 #define NETDFS_OPNUM_ENUM 0x05
48 #define NETDFS_OPNUM_MOVE 0x06
49 #define NETDFS_OPNUM_RENAME 0x07
50 #define NETDFS_OPNUM_ADDSTDROOT 0x0c
51 #define NETDFS_OPNUM_REMSTDROOT 0x0d
52 #define NETDFS_OPNUM_ENUMEX 0x15
54 #define DFS_MANAGER_VERSION_NT4 0x01
55 #define DFS_MANAGER_VERSION_W2K 0x02
56 #define DFS_MANAGER_VERSION_W2K3 0x04
64 typedef struct netdfs_uuid netdfs_uuid_t;
66 struct netdfs_storage_info {
71 typedef struct netdfs_storage_info netdfs_storage_info_t;
74 struct netdfs_storage_info1 {
82 typedef struct netdfs_storage_info1 netdfs_storage_info1_t;
87 typedef struct netdfs_info1 netdfs_info1_t;
95 typedef struct netdfs_info2 netdfs_info2_t;
103 struct netdfs_storage_info *si;
105 typedef struct netdfs_info3 netdfs_info3_t;
107 struct netdfs_info4 {
115 struct netdfs_storage_info *si;
117 typedef struct netdfs_info4 netdfs_info4_t;
119 struct netdfs_info5 {
129 typedef struct netdfs_info5 netdfs_info5_t;
131 struct netdfs_info6 {
141 struct netdfs_storage_info1 *si;
143 typedef struct netdfs_info6 netdfs_info6_t;
145 struct netdfs_info100 {
148 typedef struct netdfs_info100 netdfs_info100_t;
150 struct netdfs_info101 {
153 typedef struct netdfs_info101 netdfs_info101_t;
156 struct netdfs_info102 {
159 typedef struct netdfs_info102 netdfs_info102_t;
162 struct netdfs_info103 {
163 DWORD property_flag_mask;
164 DWORD property_flags;
166 typedef struct netdfs_info103 netdfs_info103_t;
169 struct netdfs_info104 {
170 DWORD priority_class;
174 typedef struct netdfs_info104 netdfs_info104_t;
177 struct netdfs_info105 {
181 DWORD property_flag_mask;
182 DWORD property_flags;
184 typedef struct netdfs_info105 netdfs_info105_t;
187 struct netdfs_info106 {
189 DWORD priority_class;
194 struct netdfs_info200 {
199 struct netdfs_info300 {
203 typedef struct netdfs_info300 netdfs_info300_t;
206 union netdfs_info_u {
207 CASE(1) struct netdfs_info1 *info1;
208 CASE(2) struct netdfs_info2 *info2;
209 CASE(3) struct netdfs_info3 *info3;
210 CASE(4) struct netdfs_info4 *info4;
211 CASE(5) struct netdfs_info5 *info5;
212 CASE(6) struct netdfs_info6 *info6;
213 CASE(100) struct netdfs_info100 *info100;
214 CASE(101) struct netdfs_info101 *info101;
215 CASE(102) struct netdfs_info102 *info102;
216 CASE(103) struct netdfs_info103 *info103;
217 CASE(104) struct netdfs_info104 *info104;
218 CASE(105) struct netdfs_info105 *info105;
219 CASE(106) struct netdfs_info106 *info106;
220 DEFAULT char *nullptr;
227 union netdfs_info_u iu;
229 typedef struct netdfs_info netdfs_info_t;
232 struct netdfs_array1 {
235 struct netdfs_info1 *info1;
238 struct netdfs_array2 {
241 struct netdfs_info2 *info2;
244 struct netdfs_array3 {
247 struct netdfs_info3 *info3;
250 struct netdfs_array4 {
253 struct netdfs_info4 *info4;
256 struct netdfs_array5 {
259 struct netdfs_info5 *info5;
262 struct netdfs_array6 {
265 struct netdfs_info6 *info6;
268 struct netdfs_array200 {
271 struct netdfs_info200 *info200;
274 struct netdfs_array300 {
277 struct netdfs_info300 *info300;
280 union netdfs_enum_info_u {
281 CASE(1) struct netdfs_array1 *info1;
282 CASE(2) struct netdfs_array2 *info2;
283 CASE(3) struct netdfs_array3 *info3;
284 CASE(4) struct netdfs_array4 *info4;
285 CASE(5) struct netdfs_array5 *info5;
286 CASE(6) struct netdfs_array6 *info6;
287 CASE(200) struct netdfs_array200 *info200;
288 CASE(300) struct netdfs_array300 *info300;
289 DEFAULT char *nullptr;
293 struct netdfs_enum_info {
297 union netdfs_enum_info_u iu;
302 ***********************************************************************
303 * Return server version id
304 ***********************************************************************
306 OPERATION(NETDFS_OPNUM_GETVER)
307 struct netdfs_getver {
313 ***********************************************************************
314 * Add a new volume or additional storage for an existing volume at
316 ***********************************************************************
318 OPERATION(NETDFS_OPNUM_ADD)
320 IN REFERENCE LPTSTR dfs_path;
321 IN REFERENCE LPTSTR server;
327 typedef struct netdfs_add netdfs_add_t;
331 ***********************************************************************
332 * Remove a volume or additional storage for volume from the DFS at
333 * dfs_path. When applied to the last storage in a volume, removes
334 * the volume from the DFS.
335 ***********************************************************************
337 OPERATION(NETDFS_OPNUM_REMOVE)
338 struct netdfs_remove {
339 IN REFERENCE LPTSTR dfs_path;
347 ***********************************************************************
348 * Set information about the volume or storage. If the server and share
349 * are specified, the information set is specific to that server and
350 * share. Otherwise the information is specific to the volume as a whole.
352 * Valid levels are 100-102.
353 ***********************************************************************
355 OPERATION(NETDFS_OPNUM_SETINFO)
356 struct netdfs_setinfo {
357 IN REFERENCE LPTSTR dfs_path;
361 IN struct netdfs_info info;
364 typedef struct netdfs_setinfo netdfs_setinfo_t;
368 ***********************************************************************
369 * Get information about the volume or storage. If the server and share
370 * are specified, the information returned is specific to that server
371 * and share. Otherwise the information is specific to the volume as a
374 * Valid levels are 1-4, 100-102.
375 ***********************************************************************
377 OPERATION(NETDFS_OPNUM_GETINFO)
378 struct netdfs_getinfo {
379 IN REFERENCE LPTSTR dfs_path;
383 OUT struct netdfs_info info;
386 typedef struct netdfs_getinfo netdfs_getinfo_t;
390 ***********************************************************************
391 * Get information about all of the volumes in the DFS. dfs_path is
392 * the "server" part of the UNC name used to refer to this particular
395 * Valid levels are 1-3.
396 ***********************************************************************
398 OPERATION(NETDFS_OPNUM_ENUM)
401 IN DWORD pref_max_len;
402 INOUT struct netdfs_enum_info *info;
403 INOUT DWORD *resume_handle;
406 typedef struct netdfs_enum netdfs_enum_t;
410 ***********************************************************************
411 * Rename the current Win32 path in a DFS to a new Win32 path in the
413 ***********************************************************************
415 OPERATION(NETDFS_OPNUM_RENAME)
416 struct netdfs_rename {
417 IN REFERENCE LPTSTR dfs_path;
418 IN REFERENCE LPTSTR new_path;
424 ***********************************************************************
425 * Move a DFS volume and all subordinate volumes from one place in the
426 * DFS to another place in the DFS.
427 ***********************************************************************
429 OPERATION(NETDFS_OPNUM_MOVE)
431 IN REFERENCE LPTSTR dfs_path;
432 IN REFERENCE LPTSTR new_path;
439 ***********************************************************************
440 * Add a DFS root share.
441 ***********************************************************************
443 OPERATION(NETDFS_OPNUM_ADDSTDROOT)
444 struct netdfs_addstdroot {
445 IN REFERENCE LPTSTR server;
446 IN REFERENCE LPTSTR share;
447 IN REFERENCE LPTSTR comment;
453 ***********************************************************************
454 * Remove a DFS root share.
455 ***********************************************************************
457 OPERATION(NETDFS_OPNUM_REMSTDROOT)
458 struct netdfs_remstdroot {
459 IN REFERENCE LPTSTR server;
460 IN REFERENCE LPTSTR share;
467 ***********************************************************************
468 * Get information about all of the volumes in the DFS. dfs_path is
469 * the "server" part of the UNC name used to refer to this particular
472 * Valid levels are 1-3.
473 ***********************************************************************
475 OPERATION(NETDFS_OPNUM_ENUMEX)
476 struct netdfs_enumex {
477 IN REFERENCE LPTSTR dfs_path;
479 IN DWORD pref_max_len;
480 INOUT struct netdfs_enum_info *info;
481 INOUT DWORD *resume_handle;
487 ***********************************************************************
488 * The NETDFS interface definiton.
489 ***********************************************************************
492 union netdfs_interface {
493 CASE(NETDFS_OPNUM_GETVER)
494 struct netdfs_getver netdfs_getver;
495 CASE(NETDFS_OPNUM_ADD)
496 struct netdfs_add netdfs_add;
497 CASE(NETDFS_OPNUM_REMOVE)
498 struct netdfs_remove netdfs_remove;
499 CASE(NETDFS_OPNUM_SETINFO)
500 struct netdfs_setinfo netdfs_setinfo;
501 CASE(NETDFS_OPNUM_GETINFO)
502 struct netdfs_getinfo netdfs_getinfo;
503 CASE(NETDFS_OPNUM_ENUM)
504 struct netdfs_enum netdfs_enum;
505 CASE(NETDFS_OPNUM_MOVE)
506 struct netdfs_move netdfs_move;
507 CASE(NETDFS_OPNUM_RENAME)
508 struct netdfs_rename netdfs_rename;
509 CASE(NETDFS_OPNUM_ADDSTDROOT)
510 struct netdfs_addstdroot netdfs_addstdroot;
511 CASE(NETDFS_OPNUM_REMSTDROOT)
512 struct netdfs_remstdroot netdfs_remstdroot;
513 CASE(NETDFS_OPNUM_ENUMEX)
514 struct netdfs_enumex netdfs_enumex;
516 typedef union netdfs_interface netdfs_interface_t;
517 EXTERNTYPEINFO(netdfs_interface)
520 #endif /* _NETDFS_NDL_ */