xref: /titanic_50/usr/src/uts/common/smbsrv/ndl/netdfs.ndl (revision 9fb67ea305c66b6a297583b9b0db6796b0dfe497)
1da6c28aaSamw/*
2da6c28aaSamw * CDDL HEADER START
3da6c28aaSamw *
4da6c28aaSamw * The contents of this file are subject to the terms of the
5da6c28aaSamw * Common Development and Distribution License (the "License").
6da6c28aaSamw * You may not use this file except in compliance with the License.
7da6c28aaSamw *
8da6c28aaSamw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9da6c28aaSamw * or http://www.opensolaris.org/os/licensing.
10da6c28aaSamw * See the License for the specific language governing permissions
11da6c28aaSamw * and limitations under the License.
12da6c28aaSamw *
13da6c28aaSamw * When distributing Covered Code, include this CDDL HEADER in each
14da6c28aaSamw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15da6c28aaSamw * If applicable, add the following below this CDDL HEADER, with the
16da6c28aaSamw * fields enclosed by brackets "[]" replaced with your own identifying
17da6c28aaSamw * information: Portions Copyright [yyyy] [name of copyright owner]
18da6c28aaSamw *
19da6c28aaSamw * CDDL HEADER END
20da6c28aaSamw */
21da6c28aaSamw/*
22*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
23da6c28aaSamw * Use is subject to license terms.
24da6c28aaSamw */
25da6c28aaSamw
26da6c28aaSamw#ifndef _NETDFS_NDL_
27da6c28aaSamw#define	_NETDFS_NDL_
28da6c28aaSamw
29da6c28aaSamw/*
30da6c28aaSamw * NT Distributed File Service (NETDFS) RPC interface definition.
31da6c28aaSamw */
32da6c28aaSamw
33da6c28aaSamw#include "ndrtypes.ndl"
34da6c28aaSamw
35da6c28aaSamw
368d7e4166Sjose borrego#define	NETDFS_ABSTRACT_UUID		"4fc742e0-4a10-11cf-8273-00aa004ae673"
37da6c28aaSamw#define	NETDFS_ABSTRACT_VERS		3
38da6c28aaSamw
398d7e4166Sjose borrego#define	NETDFS_TRANSFER_UUID		"8a885d04-1ceb-11c9-9fe8-08002b104860"
40da6c28aaSamw#define	NETDFS_TRANSFER_VERS		2
41da6c28aaSamw
42da6c28aaSamw#define	NETDFS_OPNUM_GETVER		0x00
43da6c28aaSamw#define	NETDFS_OPNUM_ADD		0x01
44da6c28aaSamw#define	NETDFS_OPNUM_REMOVE		0x02
45da6c28aaSamw#define	NETDFS_OPNUM_SETINFO		0x03
46da6c28aaSamw#define	NETDFS_OPNUM_GETINFO		0x04
47da6c28aaSamw#define	NETDFS_OPNUM_ENUM		0x05
48*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States#define	NETDFS_OPNUM_MOVE		0x06
49*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States#define	NETDFS_OPNUM_RENAME		0x07
50da6c28aaSamw#define	NETDFS_OPNUM_ADDSTDROOT		0x0c
51da6c28aaSamw#define	NETDFS_OPNUM_REMSTDROOT		0x0d
52da6c28aaSamw#define	NETDFS_OPNUM_ENUMEX		0x15
53da6c28aaSamw
54da6c28aaSamw#define	DFS_MANAGER_VERSION_NT4		0x01
55da6c28aaSamw#define	DFS_MANAGER_VERSION_W2K		0x02
56da6c28aaSamw#define	DFS_MANAGER_VERSION_W2K3	0x04
57da6c28aaSamw
58*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statesstruct netdfs_uuid {
59*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD data1;
60*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	WORD data2;
61*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	WORD data3;
62*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	BYTE data4[8];
63*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States};
64*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_uuid netdfs_uuid_t;
65da6c28aaSamw
66da6c28aaSamwstruct netdfs_storage_info {
67da6c28aaSamw	DWORD state;
68da6c28aaSamw	LPTSTR server;
69da6c28aaSamw	LPTSTR share;
70da6c28aaSamw};
71*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_storage_info netdfs_storage_info_t;
72da6c28aaSamw
73da6c28aaSamw
74*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statesstruct netdfs_storage_info1 {
75da6c28aaSamw	DWORD state;
76da6c28aaSamw	LPTSTR server;
77da6c28aaSamw	LPTSTR share;
78*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD p_class;
79*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	WORD p_rank;
80*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	WORD p_reserved;
81da6c28aaSamw};
82*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_storage_info1 netdfs_storage_info1_t;
83da6c28aaSamw
84da6c28aaSamwstruct netdfs_info1 {
85da6c28aaSamw	LPTSTR entry_path;
86da6c28aaSamw};
87*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info1 netdfs_info1_t;
88da6c28aaSamw
89da6c28aaSamwstruct netdfs_info2 {
90da6c28aaSamw	LPTSTR entry_path;
91da6c28aaSamw	LPTSTR comment;
92da6c28aaSamw	DWORD state;
93da6c28aaSamw	DWORD n_store;
94da6c28aaSamw};
95*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info2 netdfs_info2_t;
96da6c28aaSamw
97da6c28aaSamwstruct netdfs_info3 {
98da6c28aaSamw	LPTSTR entry_path;
99da6c28aaSamw	LPTSTR comment;
100da6c28aaSamw	DWORD state;
101da6c28aaSamw	DWORD n_store;
102da6c28aaSamw  SIZE_IS(n_store)
103da6c28aaSamw	struct netdfs_storage_info *si;
104da6c28aaSamw};
105*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info3 netdfs_info3_t;
106da6c28aaSamw
107da6c28aaSamwstruct netdfs_info4 {
108da6c28aaSamw	LPTSTR entry_path;
109da6c28aaSamw	LPTSTR comment;
110da6c28aaSamw	DWORD state;
111da6c28aaSamw	DWORD timeout;
112*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	netdfs_uuid_t guid;
113da6c28aaSamw	DWORD n_store;
114da6c28aaSamw  SIZE_IS(n_store)
115da6c28aaSamw	struct netdfs_storage_info *si;
116da6c28aaSamw};
117*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info4 netdfs_info4_t;
118da6c28aaSamw
119*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statesstruct netdfs_info5 {
120*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	LPTSTR entry_path;
121*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	LPTSTR comment;
122*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD state;
123*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD timeout;
124*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	netdfs_uuid_t guid;
125*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD flags;
126*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD metadata_sz;
127*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD n_store;
128*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States};
129*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info5 netdfs_info5_t;
130da6c28aaSamw
131da6c28aaSamwstruct netdfs_info6 {
132da6c28aaSamw	LPTSTR entry_path;
133da6c28aaSamw	LPTSTR comment;
134da6c28aaSamw	DWORD state;
135da6c28aaSamw	DWORD timeout;
136*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	netdfs_uuid_t guid;
137da6c28aaSamw	DWORD flags;
138*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD metadata_sz;
139da6c28aaSamw	DWORD n_store;
140da6c28aaSamw  SIZE_IS(n_store)
141*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	struct netdfs_storage_info1 *si;
142da6c28aaSamw};
143*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info6 netdfs_info6_t;
144da6c28aaSamw
145da6c28aaSamwstruct netdfs_info100 {
146da6c28aaSamw	LPTSTR comment;
147da6c28aaSamw};
148*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info100 netdfs_info100_t;
149da6c28aaSamw
150da6c28aaSamwstruct netdfs_info101 {
151da6c28aaSamw	DWORD state;
152da6c28aaSamw};
153*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info101 netdfs_info101_t;
154da6c28aaSamw
155da6c28aaSamw
156da6c28aaSamwstruct netdfs_info102 {
157da6c28aaSamw	DWORD timeout;
158da6c28aaSamw};
159*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info102 netdfs_info102_t;
160da6c28aaSamw
161da6c28aaSamw
162da6c28aaSamwstruct netdfs_info103 {
163*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD property_flag_mask;
164da6c28aaSamw	DWORD property_flags;
165da6c28aaSamw};
166*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info103 netdfs_info103_t;
167da6c28aaSamw
168da6c28aaSamw
169da6c28aaSamwstruct netdfs_info104 {
170da6c28aaSamw	DWORD priority_class;
171*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	WORD priority_rank;
172*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	WORD reserved;
173da6c28aaSamw};
174*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info104 netdfs_info104_t;
175da6c28aaSamw
176da6c28aaSamw
177da6c28aaSamwstruct netdfs_info105 {
178da6c28aaSamw	LPTSTR comment;
179*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD state;
180da6c28aaSamw	DWORD timeout;
181da6c28aaSamw	DWORD property_flag_mask;
182da6c28aaSamw	DWORD property_flags;
183da6c28aaSamw};
184*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info105 netdfs_info105_t;
185da6c28aaSamw
186da6c28aaSamw
187da6c28aaSamwstruct netdfs_info106 {
188da6c28aaSamw	DWORD storage_state;
189da6c28aaSamw	DWORD priority_class;
190da6c28aaSamw	DWORD priority_rank;
191da6c28aaSamw};
192da6c28aaSamw
193da6c28aaSamw
194da6c28aaSamwstruct netdfs_info200 {
195da6c28aaSamw	LPTSTR entry_path;
196da6c28aaSamw};
197da6c28aaSamw
198da6c28aaSamw
199da6c28aaSamwstruct netdfs_info300 {
200da6c28aaSamw	DWORD flavor;
201*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	LPTSTR dfsname;
202da6c28aaSamw};
203*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info300 netdfs_info300_t;
204da6c28aaSamw
205da6c28aaSamw
206da6c28aaSamwunion netdfs_info_u {
207da6c28aaSamw        CASE(1) struct netdfs_info1 *info1;
208da6c28aaSamw	CASE(2) struct netdfs_info2 *info2;
209da6c28aaSamw	CASE(3) struct netdfs_info3 *info3;
210da6c28aaSamw	CASE(4) struct netdfs_info4 *info4;
211*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	CASE(5) struct netdfs_info5 *info5;
212da6c28aaSamw	CASE(6) struct netdfs_info6 *info6;
213da6c28aaSamw	CASE(100) struct netdfs_info100 *info100;
214da6c28aaSamw	CASE(101) struct netdfs_info101 *info101;
215da6c28aaSamw	CASE(102) struct netdfs_info102 *info102;
216da6c28aaSamw	CASE(103) struct netdfs_info103 *info103;
217da6c28aaSamw	CASE(104) struct netdfs_info104 *info104;
218da6c28aaSamw	CASE(105) struct netdfs_info105 *info105;
219da6c28aaSamw	CASE(106) struct netdfs_info106 *info106;
220da6c28aaSamw	DEFAULT char *nullptr;
221da6c28aaSamw};
222da6c28aaSamw
223da6c28aaSamw
224da6c28aaSamwstruct netdfs_info {
225da6c28aaSamw	DWORD level;
226da6c28aaSamw  SWITCH(level)
227da6c28aaSamw	union netdfs_info_u iu;
228da6c28aaSamw};
229*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_info netdfs_info_t;
230da6c28aaSamw
231da6c28aaSamw
232da6c28aaSamwstruct netdfs_array1 {
233da6c28aaSamw	DWORD count;
234da6c28aaSamw  SIZE_IS(count)
235da6c28aaSamw	struct netdfs_info1 *info1;
236da6c28aaSamw};
237da6c28aaSamw
238da6c28aaSamwstruct netdfs_array2 {
239da6c28aaSamw	DWORD count;
240da6c28aaSamw  SIZE_IS(count)
241da6c28aaSamw	struct netdfs_info2 *info2;
242da6c28aaSamw};
243da6c28aaSamw
244da6c28aaSamwstruct netdfs_array3 {
245da6c28aaSamw	DWORD count;
246da6c28aaSamw  SIZE_IS(count)
247da6c28aaSamw	struct netdfs_info3 *info3;
248da6c28aaSamw};
249da6c28aaSamw
250da6c28aaSamwstruct netdfs_array4 {
251da6c28aaSamw	DWORD count;
252da6c28aaSamw  SIZE_IS(count)
253da6c28aaSamw	struct netdfs_info4 *info4;
254da6c28aaSamw};
255da6c28aaSamw
256*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statesstruct netdfs_array5 {
257*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD count;
258*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  SIZE_IS(count)
259*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	struct netdfs_info5 *info5;
260*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States};
261*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States
262da6c28aaSamwstruct netdfs_array6 {
263da6c28aaSamw	DWORD count;
264da6c28aaSamw  SIZE_IS(count)
265da6c28aaSamw	struct netdfs_info6 *info6;
266da6c28aaSamw};
267da6c28aaSamw
268da6c28aaSamwstruct netdfs_array200 {
269da6c28aaSamw	DWORD count;
270da6c28aaSamw  SIZE_IS(count)
271da6c28aaSamw	struct netdfs_info200 *info200;
272da6c28aaSamw};
273da6c28aaSamw
274da6c28aaSamwstruct netdfs_array300 {
275da6c28aaSamw	DWORD count;
276da6c28aaSamw  SIZE_IS(count)
277da6c28aaSamw	struct netdfs_info300 *info300;
278da6c28aaSamw};
279da6c28aaSamw
280da6c28aaSamwunion netdfs_enum_info_u {
281da6c28aaSamw	CASE(1) struct netdfs_array1 *info1;
282da6c28aaSamw	CASE(2) struct netdfs_array2 *info2;
283da6c28aaSamw	CASE(3) struct netdfs_array3 *info3;
284da6c28aaSamw	CASE(4) struct netdfs_array4 *info4;
285*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	CASE(5) struct netdfs_array5 *info5;
286da6c28aaSamw	CASE(6) struct netdfs_array6 *info6;
287da6c28aaSamw	CASE(200) struct netdfs_array200 *info200;
288da6c28aaSamw	CASE(300) struct netdfs_array300 *info300;
289da6c28aaSamw	DEFAULT char *nullptr;
290da6c28aaSamw};
291da6c28aaSamw
292da6c28aaSamw
293da6c28aaSamwstruct netdfs_enum_info {
294da6c28aaSamw	DWORD level;
295*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	DWORD switch_value;
296*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  SWITCH(switch_value)
297da6c28aaSamw	union netdfs_enum_info_u iu;
298da6c28aaSamw};
299da6c28aaSamw
300da6c28aaSamw
301da6c28aaSamw/*
302da6c28aaSamw ***********************************************************************
303da6c28aaSamw * Return server version id
304da6c28aaSamw ***********************************************************************
305da6c28aaSamw */
306da6c28aaSamwOPERATION(NETDFS_OPNUM_GETVER)
307da6c28aaSamwstruct netdfs_getver {
308da6c28aaSamw	OUT		DWORD version;
309da6c28aaSamw};
310da6c28aaSamw
311da6c28aaSamw
312da6c28aaSamw/*
313da6c28aaSamw ***********************************************************************
314da6c28aaSamw * Add a new volume or additional storage for an existing volume at
315da6c28aaSamw * dfs_path.
316da6c28aaSamw ***********************************************************************
317da6c28aaSamw */
318da6c28aaSamwOPERATION(NETDFS_OPNUM_ADD)
319da6c28aaSamwstruct netdfs_add {
320da6c28aaSamw	IN REFERENCE	LPTSTR dfs_path;
321da6c28aaSamw	IN REFERENCE	LPTSTR server;
322da6c28aaSamw	IN		LPTSTR share;
323da6c28aaSamw	IN		LPTSTR comment;
324da6c28aaSamw	IN		DWORD flags;
325da6c28aaSamw	OUT		DWORD status;
326da6c28aaSamw};
327*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_add netdfs_add_t;
328da6c28aaSamw
329da6c28aaSamw
330da6c28aaSamw/*
331da6c28aaSamw ***********************************************************************
332da6c28aaSamw * Remove a volume or additional storage for volume from the DFS at
333da6c28aaSamw * dfs_path. When applied to the last storage in a volume, removes
334da6c28aaSamw * the volume from the DFS.
335da6c28aaSamw ***********************************************************************
336da6c28aaSamw */
337da6c28aaSamwOPERATION(NETDFS_OPNUM_REMOVE)
338da6c28aaSamwstruct netdfs_remove {
339da6c28aaSamw	IN REFERENCE	LPTSTR dfs_path;
340da6c28aaSamw	IN		LPTSTR server;
341da6c28aaSamw	IN		LPTSTR share;
342da6c28aaSamw	OUT		DWORD status;
343da6c28aaSamw};
344da6c28aaSamw
345da6c28aaSamw
346da6c28aaSamw/*
347da6c28aaSamw ***********************************************************************
348da6c28aaSamw * Set information about the volume or storage. If the server and share
349da6c28aaSamw * are specified, the information set is specific to that server and
350da6c28aaSamw * share. Otherwise the information is specific to the volume as a whole.
351da6c28aaSamw *
352da6c28aaSamw * Valid levels are 100-102.
353da6c28aaSamw ***********************************************************************
354da6c28aaSamw */
355da6c28aaSamwOPERATION(NETDFS_OPNUM_SETINFO)
356da6c28aaSamwstruct netdfs_setinfo {
357da6c28aaSamw	IN REFERENCE	LPTSTR dfs_path;
358da6c28aaSamw	IN		LPTSTR server;
359da6c28aaSamw	IN		LPTSTR share;
360da6c28aaSamw	IN		DWORD level;
361da6c28aaSamw	IN		struct netdfs_info info;
362da6c28aaSamw	OUT		DWORD status;
363da6c28aaSamw};
364*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_setinfo netdfs_setinfo_t;
365da6c28aaSamw
366da6c28aaSamw
367da6c28aaSamw/*
368da6c28aaSamw ***********************************************************************
369da6c28aaSamw * Get information about the volume or storage. If the server and share
370da6c28aaSamw * are specified, the information returned is specific to that server
371da6c28aaSamw * and share. Otherwise the information is specific to the volume as a
372da6c28aaSamw * whole.
373da6c28aaSamw *
374da6c28aaSamw * Valid levels are 1-4, 100-102.
375da6c28aaSamw ***********************************************************************
376da6c28aaSamw */
377da6c28aaSamwOPERATION(NETDFS_OPNUM_GETINFO)
378da6c28aaSamwstruct netdfs_getinfo {
379da6c28aaSamw	IN REFERENCE	LPTSTR dfs_path;
380da6c28aaSamw	IN		LPTSTR server;
381da6c28aaSamw	IN		LPTSTR share;
382da6c28aaSamw	IN		DWORD level;
383da6c28aaSamw	OUT		struct netdfs_info info;
384da6c28aaSamw	OUT		DWORD status;
385da6c28aaSamw};
386*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_getinfo netdfs_getinfo_t;
387da6c28aaSamw
388da6c28aaSamw
389da6c28aaSamw/*
390da6c28aaSamw ***********************************************************************
391da6c28aaSamw * Get information about all of the volumes in the DFS. dfs_path is
392da6c28aaSamw * the "server" part of the UNC name used to refer to this particular
393da6c28aaSamw * DFS.
394da6c28aaSamw *
395da6c28aaSamw * Valid levels are 1-3.
396da6c28aaSamw ***********************************************************************
397da6c28aaSamw */
398da6c28aaSamwOPERATION(NETDFS_OPNUM_ENUM)
399da6c28aaSamwstruct netdfs_enum {
400da6c28aaSamw	IN		DWORD level;
401da6c28aaSamw	IN		DWORD pref_max_len;
402da6c28aaSamw	INOUT		struct netdfs_enum_info *info;
403da6c28aaSamw	INOUT		DWORD *resume_handle;
404da6c28aaSamw	OUT		DWORD status;
405da6c28aaSamw};
406*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United Statestypedef struct netdfs_enum netdfs_enum_t;
407da6c28aaSamw
408da6c28aaSamw
409da6c28aaSamw/*
410da6c28aaSamw ***********************************************************************
411da6c28aaSamw * Rename the current Win32 path in a DFS to a new Win32 path in the
412da6c28aaSamw * same DFS.
413da6c28aaSamw ***********************************************************************
414da6c28aaSamw */
415da6c28aaSamwOPERATION(NETDFS_OPNUM_RENAME)
416da6c28aaSamwstruct netdfs_rename {
417da6c28aaSamw	IN REFERENCE	LPTSTR dfs_path;
418da6c28aaSamw	IN REFERENCE	LPTSTR new_path;
419da6c28aaSamw	OUT		DWORD status;
420da6c28aaSamw};
421da6c28aaSamw
422da6c28aaSamw
423da6c28aaSamw/*
424da6c28aaSamw ***********************************************************************
425da6c28aaSamw * Move a DFS volume and all subordinate volumes from one place in the
426da6c28aaSamw * DFS to another place in the DFS.
427da6c28aaSamw ***********************************************************************
428da6c28aaSamw */
429da6c28aaSamwOPERATION(NETDFS_OPNUM_MOVE)
430da6c28aaSamwstruct netdfs_move {
431da6c28aaSamw	IN REFERENCE	LPTSTR dfs_path;
432da6c28aaSamw	IN REFERENCE	LPTSTR new_path;
433*9fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States	IN		DWORD flags;
434da6c28aaSamw	OUT		DWORD status;
435da6c28aaSamw};
436da6c28aaSamw
437da6c28aaSamw
438da6c28aaSamw/*
439da6c28aaSamw ***********************************************************************
440da6c28aaSamw * Add a DFS root share.
441da6c28aaSamw ***********************************************************************
442da6c28aaSamw */
443da6c28aaSamwOPERATION(NETDFS_OPNUM_ADDSTDROOT)
444da6c28aaSamwstruct netdfs_addstdroot {
445da6c28aaSamw	IN REFERENCE	LPTSTR server;
446da6c28aaSamw	IN REFERENCE	LPTSTR share;
447da6c28aaSamw	IN REFERENCE	LPTSTR comment;
448da6c28aaSamw	IN		DWORD flags;
449da6c28aaSamw	OUT		DWORD status;
450da6c28aaSamw};
451da6c28aaSamw
452da6c28aaSamw/*
453da6c28aaSamw ***********************************************************************
454da6c28aaSamw * Remove a DFS root share.
455da6c28aaSamw ***********************************************************************
456da6c28aaSamw */
457da6c28aaSamwOPERATION(NETDFS_OPNUM_REMSTDROOT)
458da6c28aaSamwstruct netdfs_remstdroot {
459da6c28aaSamw	IN REFERENCE	LPTSTR server;
460da6c28aaSamw	IN REFERENCE	LPTSTR share;
461da6c28aaSamw	IN		DWORD flags;
462da6c28aaSamw	OUT		DWORD status;
463da6c28aaSamw};
464da6c28aaSamw
465da6c28aaSamw
466da6c28aaSamw/*
467da6c28aaSamw ***********************************************************************
468da6c28aaSamw * Get information about all of the volumes in the DFS. dfs_path is
469da6c28aaSamw * the "server" part of the UNC name used to refer to this particular
470da6c28aaSamw * DFS.
471da6c28aaSamw *
472da6c28aaSamw * Valid levels are 1-3.
473da6c28aaSamw ***********************************************************************
474da6c28aaSamw */
475da6c28aaSamwOPERATION(NETDFS_OPNUM_ENUMEX)
476da6c28aaSamwstruct netdfs_enumex {
477da6c28aaSamw	IN REFERENCE	LPTSTR dfs_path;
478da6c28aaSamw	IN		DWORD level;
479da6c28aaSamw	IN		DWORD pref_max_len;
480da6c28aaSamw	INOUT		struct netdfs_enum_info *info;
481da6c28aaSamw	INOUT		DWORD *resume_handle;
482da6c28aaSamw	OUT		DWORD status;
483da6c28aaSamw};
484da6c28aaSamw
485da6c28aaSamw
486da6c28aaSamw/*
487da6c28aaSamw ***********************************************************************
488da6c28aaSamw * The NETDFS interface definiton.
489da6c28aaSamw ***********************************************************************
490da6c28aaSamw */
491da6c28aaSamwINTERFACE(0)
492da6c28aaSamwunion netdfs_interface {
493da6c28aaSamw	CASE(NETDFS_OPNUM_GETVER)
494da6c28aaSamw		struct netdfs_getver		netdfs_getver;
495da6c28aaSamw	CASE(NETDFS_OPNUM_ADD)
496da6c28aaSamw		struct netdfs_add		netdfs_add;
497da6c28aaSamw	CASE(NETDFS_OPNUM_REMOVE)
498da6c28aaSamw		struct netdfs_remove		netdfs_remove;
499da6c28aaSamw	CASE(NETDFS_OPNUM_SETINFO)
500da6c28aaSamw		struct netdfs_setinfo		netdfs_setinfo;
501da6c28aaSamw	CASE(NETDFS_OPNUM_GETINFO)
502da6c28aaSamw		struct netdfs_getinfo		netdfs_getinfo;
503da6c28aaSamw	CASE(NETDFS_OPNUM_ENUM)
504da6c28aaSamw		struct netdfs_enum		netdfs_enum;
505da6c28aaSamw	CASE(NETDFS_OPNUM_MOVE)
506da6c28aaSamw		struct netdfs_move		netdfs_move;
507da6c28aaSamw	CASE(NETDFS_OPNUM_RENAME)
508da6c28aaSamw		struct netdfs_rename		netdfs_rename;
509da6c28aaSamw	CASE(NETDFS_OPNUM_ADDSTDROOT)
510da6c28aaSamw		struct netdfs_addstdroot	netdfs_addstdroot;
511da6c28aaSamw	CASE(NETDFS_OPNUM_REMSTDROOT)
512da6c28aaSamw		struct netdfs_remstdroot	netdfs_remstdroot;
513da6c28aaSamw	CASE(NETDFS_OPNUM_ENUMEX)
514da6c28aaSamw		struct netdfs_enumex		netdfs_enumex;
515da6c28aaSamw};
516da6c28aaSamwtypedef union netdfs_interface	netdfs_interface_t;
517da6c28aaSamwEXTERNTYPEINFO(netdfs_interface)
518da6c28aaSamw
519da6c28aaSamw
520da6c28aaSamw#endif /* _NETDFS_NDL_ */
521