IDL: now that we have nbt.idl, re-add it to the includes again.
[Samba/gebeck_regimport.git] / source3 / librpc / idl / dfs.idl
blobd4c05f9936a33b68d0e04f0b95ce7fc1c55e4891
1 /*
2 dfs interface definition
3 */
5 [ uuid("4fc742e0-4a10-11cf-8273-00aa004ae673"),
6 version(3.0),
7 pointer_default(unique),
8 helpstring("Settings for Microsoft Distributed File System"),
9 endpoint("ncacn_np:[\\pipe\\netdfs]", "ncacn_ip_tcp:", "ncalrpc:")
10 ] interface netdfs
12 /******************/
13 /* Function: 0x00 */
14 typedef [v1_enum] enum {
15 DFS_MANAGER_VERSION_NT4 = 1,
16 DFS_MANAGER_VERSION_W2K = 2,
17 DFS_MANAGER_VERSION_W2K3 = 4
18 } dfs_ManagerVersion;
20 [public] void dfs_GetManagerVersion(
21 [out] dfs_ManagerVersion *version
25 /******************/
26 /* Function: 0x01 */
27 WERROR dfs_Add (
28 [in] [string,charset(UTF16)] uint16 *path,
29 [in] [string,charset(UTF16)] uint16 *server,
30 [in,unique] [string,charset(UTF16)] uint16 *share,
31 [in,unique] [string,charset(UTF16)] uint16 *comment,
32 [in] uint32 flags
35 /******************/
36 /* Function: 0x02 */
37 WERROR dfs_Remove (
38 [in] [string,charset(UTF16)] uint16 *dfs_entry_path,
39 [in,unique] [string,charset(UTF16)] uint16 *servername,
40 [in,unique] [string,charset(UTF16)] uint16 *sharename
43 /******************/
44 /* Function: 0x03 */
46 typedef struct {
47 } dfs_Info0;
49 typedef struct {
50 [string,charset(UTF16)] uint16 *path;
51 } dfs_Info1;
53 typedef [public,bitmap32bit] bitmap {
54 DFS_VOLUME_STATE_OK = 0x1,
55 DFS_VOLUME_STATE_INCONSISTENT = 0x2,
56 DFS_VOLUME_STATE_OFFLINE = 0x3,
57 DFS_VOLUME_STATE_ONLINE = 0x4,
58 DFS_VOLUME_STATE_STANDALONE = DFS_VOLUME_FLAVOR_STANDALONE,
59 DFS_VOLUME_STATE_AD_BLOB = DFS_VOLUME_FLAVOR_AD_BLOB
60 } dfs_VolumeState;
62 typedef struct {
63 [string,charset(UTF16)] uint16 *path;
64 [string,charset(UTF16)] uint16 *comment;
65 dfs_VolumeState state;
66 uint32 num_stores;
67 } dfs_Info2;
69 const int DFS_STORAGE_STATES = 0xf;
71 /* yes, this is a bitmap */
72 typedef [public,bitmap32bit] bitmap {
73 DFS_STORAGE_STATE_OFFLINE = 1,
74 DFS_STORAGE_STATE_ONLINE = 2,
75 DFS_STORAGE_STATE_ACTIVE = 4
76 } dfs_StorageState;
78 typedef struct {
79 dfs_StorageState state;
80 [string,charset(UTF16)] uint16 *server;
81 [string,charset(UTF16)] uint16 *share;
82 } dfs_StorageInfo;
84 typedef struct {
85 [string,charset(UTF16)] uint16 *path;
86 [string,charset(UTF16)] uint16 *comment;
87 dfs_VolumeState state;
88 uint32 num_stores;
89 [size_is(num_stores)] dfs_StorageInfo *stores;
90 } dfs_Info3;
92 typedef struct {
93 [string,charset(UTF16)] uint16 *path;
94 [string,charset(UTF16)] uint16 *comment;
95 dfs_VolumeState state;
96 uint32 timeout;
97 GUID guid;
98 uint32 num_stores;
99 [size_is(num_stores)] dfs_StorageInfo *stores;
100 } dfs_Info4;
102 /* verified with dfsutil */
103 typedef [public,bitmap32bit] bitmap {
104 DFS_PROPERTY_FLAG_INSITE_REFERRALS = 0x01,
105 DFS_PROPERTY_FLAG_ROOT_SCALABILITY = 0x02,
106 DFS_PROPERTY_FLAG_SITE_COSTING = 0x04,
107 DFS_PROPERTY_FLAG_TARGET_FAILBACK = 0x08,
108 DFS_PROPERTY_FLAG_CLUSTER_ENABLED = 0x10 /* untested */
109 } dfs_PropertyFlags;
111 typedef struct {
112 [string,charset(UTF16)] uint16 *path;
113 [string,charset(UTF16)] uint16 *comment;
114 dfs_VolumeState state;
115 uint32 timeout;
116 GUID guid;
117 dfs_PropertyFlags flags;
118 uint32 pktsize;
119 uint32 num_stores;
120 } dfs_Info5;
122 typedef [v1_enum] enum {
123 DFS_INVALID_PRIORITY_CLASS = -1,
124 DFS_SITE_COST_NORMAL_PRIORITY_CLASS = 0,
125 DFS_GLOBAL_HIGH_PRIORITY_CLASS = 1,
126 DFS_SITE_COST_HIGH_PRIORITY_CLASS = 2,
127 DFS_SITE_COST_LOW_PRIORITY_CLASS = 3,
128 DFS_GLOBAL_LOW_PRIORITY_CLASS = 4
129 } dfs_Target_PriorityClass;
131 typedef struct {
132 dfs_Target_PriorityClass target_priority_class;
133 uint16 target_priority_rank;
134 uint16 reserved;
135 } dfs_Target_Priority;
137 typedef struct {
138 dfs_StorageInfo info;
139 dfs_Target_Priority target_priority;
140 } dfs_StorageInfo2;
142 typedef struct {
143 [string,charset(UTF16)] uint16 *entry_path;
144 [string,charset(UTF16)] uint16 *comment;
145 dfs_VolumeState state;
146 uint32 timeout;
147 GUID guid;
148 dfs_PropertyFlags flags;
149 uint32 pktsize;
150 uint16 num_stores;
151 [size_is(num_stores)] dfs_StorageInfo2 *stores;
152 } dfs_Info6;
154 typedef struct {
155 GUID generation_guid;
156 } dfs_Info7;
158 typedef struct {
159 [string,charset(UTF16)] uint16 *comment;
160 } dfs_Info100;
162 typedef struct {
163 dfs_StorageState state;
164 } dfs_Info101;
166 typedef struct {
167 uint32 timeout;
168 } dfs_Info102;
170 typedef struct {
171 dfs_PropertyFlags flags;
172 } dfs_Info103;
174 typedef struct {
175 dfs_Target_Priority priority;
176 } dfs_Info104;
178 typedef struct {
179 [string,charset(UTF16)] uint16 *comment;
180 dfs_VolumeState state;
181 uint32 timeout;
182 uint32 property_flag_mask;
183 uint32 property_flags;
184 } dfs_Info105;
186 typedef struct {
187 dfs_StorageState state;
188 dfs_Target_Priority priority;
189 } dfs_Info106;
191 typedef struct {
192 [string,charset(UTF16)] uint16 *dom_root;
193 } dfs_Info200;
195 typedef enum {
196 DFS_VOLUME_FLAVOR_STANDALONE = 0x100,
197 DFS_VOLUME_FLAVOR_AD_BLOB = 0x200
198 } dfs_VolumeFlavor;
200 typedef struct {
201 dfs_VolumeFlavor flavor;
202 [string,charset(UTF16)] uint16 *dom_root;
203 } dfs_Info300;
205 typedef union {
206 [case(0)] dfs_Info0 *info0;
207 [case(1)] dfs_Info1 *info1;
208 [case(2)] dfs_Info2 *info2;
209 [case(3)] dfs_Info3 *info3;
210 [case(4)] dfs_Info4 *info4;
211 [case(5)] dfs_Info5 *info5;
212 [case(6)] dfs_Info6 *info6;
213 [case(7)] dfs_Info7 *info7;
214 [case(100)] dfs_Info100 *info100;
215 [case(101)] dfs_Info101 *info101;
216 [case(102)] dfs_Info102 *info102;
217 [case(103)] dfs_Info103 *info103;
218 [case(104)] dfs_Info104 *info104;
219 [case(105)] dfs_Info105 *info105;
220 [case(106)] dfs_Info106 *info106;
221 } dfs_Info;
223 WERROR dfs_SetInfo (
224 [in] [string,charset(UTF16)] uint16 dfs_entry_path[],
225 [in,unique] [string,charset(UTF16)] uint16 *servername,
226 [in,unique] [string,charset(UTF16)] uint16 *sharename,
227 [in] uint32 level,
228 [in,ref,switch_is(level)] dfs_Info *info
231 /******************/
232 /* Function: 0x04 */
233 WERROR dfs_GetInfo (
234 [in] [string,charset(UTF16)] uint16 dfs_entry_path[],
235 [in,unique] [string,charset(UTF16)] uint16 *servername,
236 [in,unique] [string,charset(UTF16)] uint16 *sharename,
237 [in] uint32 level,
238 [out,switch_is(level)] dfs_Info *info
241 /******************/
242 /* Function: 0x05 */
244 typedef struct {
245 uint32 count;
246 [size_is(count)] dfs_Info1 *s;
247 } dfs_EnumArray1;
249 typedef struct {
250 uint32 count;
251 [size_is(count)] dfs_Info2 *s;
252 } dfs_EnumArray2;
254 typedef struct {
255 uint32 count;
256 [size_is(count)] dfs_Info3 *s;
257 } dfs_EnumArray3;
259 typedef struct {
260 uint32 count;
261 [size_is(count)] dfs_Info4 *s;
262 } dfs_EnumArray4;
264 typedef struct {
265 uint32 count;
266 [size_is(count)] dfs_Info5 *s;
267 } dfs_EnumArray5;
269 typedef struct {
270 uint32 count;
271 [size_is(count)] dfs_Info6 *s;
272 } dfs_EnumArray6;
274 typedef struct {
275 uint32 count;
276 [size_is(count)] dfs_Info200 *s;
277 } dfs_EnumArray200;
279 typedef struct {
280 uint32 count;
281 [size_is(count)] dfs_Info300 *s;
282 } dfs_EnumArray300;
285 typedef union {
286 [case(1)] dfs_EnumArray1 *info1;
287 [case(2)] dfs_EnumArray2 *info2;
288 [case(3)] dfs_EnumArray3 *info3;
289 [case(4)] dfs_EnumArray4 *info4;
290 [case(5)] dfs_EnumArray5 *info5;
291 [case(6)] dfs_EnumArray6 *info6;
292 [case(200)] dfs_EnumArray200 *info200;
293 [case(300)] dfs_EnumArray300 *info300;
294 } dfs_EnumInfo;
296 typedef struct {
297 uint32 level;
298 [switch_is(level)] dfs_EnumInfo e;
299 } dfs_EnumStruct;
301 WERROR dfs_Enum (
302 [in] uint32 level,
303 [in] uint32 bufsize,
304 [in,out,unique] dfs_EnumStruct *info,
305 [in,out,unique] uint32 *total
308 /* Function 0x06 */
309 WERROR dfs_Rename();
311 /* Function 0x07 */
312 WERROR dfs_Move();
314 /* Function 0x08 */
315 WERROR dfs_ManagerGetConfigInfo();
317 /* Function 0x09 */
318 WERROR dfs_ManagerSendSiteInfo();
320 /* Function 0x0a */
321 typedef struct {
322 uint32 unknown1;
323 [string,charset(UTF16)] uint16 *unknown2;
324 } dfs_UnknownStruct;
326 WERROR dfs_AddFtRoot(
327 [in] [string,charset(UTF16)] uint16 servername[],
328 [in] [string,charset(UTF16)] uint16 dns_servername[],
329 [in] [string,charset(UTF16)] uint16 dfsname[],
330 [in] [string,charset(UTF16)] uint16 rootshare[],
331 [in] [string,charset(UTF16)] uint16 comment[],
332 [in] [string,charset(UTF16)] uint16 dfs_config_dn[],
333 [in] uint8 unknown1,
334 [in] uint32 flags,
335 [in,out,unique] dfs_UnknownStruct **unknown2
338 /* Function 0x0b */
339 WERROR dfs_RemoveFtRoot(
340 [in] [string,charset(UTF16)] uint16 servername[],
341 [in] [string,charset(UTF16)] uint16 dns_servername[],
342 [in] [string,charset(UTF16)] uint16 dfsname[],
343 [in] [string,charset(UTF16)] uint16 rootshare[],
344 [in] uint32 flags,
345 [in,out,unique] dfs_UnknownStruct **unknown
348 /* Function 0x0c */
349 WERROR dfs_AddStdRoot(
350 [in] [string,charset(UTF16)] uint16 servername[],
351 [in] [string,charset(UTF16)] uint16 rootshare[],
352 [in] [string,charset(UTF16)] uint16 comment[],
353 [in] uint32 flags
356 /* Function 0x0d */
357 WERROR dfs_RemoveStdRoot(
358 [in] [string,charset(UTF16)] uint16 servername[],
359 [in] [string,charset(UTF16)] uint16 rootshare[],
360 [in] uint32 flags
363 /* Function 0x0e */
364 WERROR dfs_ManagerInitialize(
365 [in] [string,charset(UTF16)] uint16 *servername,
366 [in] uint32 flags
369 /* Function 0x0f */
370 WERROR dfs_AddStdRootForced(
371 [in] [string,charset(UTF16)] uint16 servername[],
372 [in] [string,charset(UTF16)] uint16 rootshare[],
373 [in] [string,charset(UTF16)] uint16 comment[],
374 [in] [string,charset(UTF16)] uint16 store[] /* C:\\whatever */
377 /* Function 0x10 */
378 WERROR dfs_GetDcAddress(
379 [in] [string,charset(UTF16)] uint16 servername[],
380 [in,out,ref] [string,charset(UTF16)] uint16 **server_fullname,
381 [in,out,ref] boolean8 *is_root,
382 [in,out,ref] uint32 *ttl
385 /* Function 0x11 */
386 WERROR dfs_SetDcAddress(
387 [in] [string,charset(UTF16)] uint16 servername[],
388 [in] [string,charset(UTF16)] uint16 server_fullname[],
389 [in] uint32 flags,
390 [in] uint32 ttl
393 /* Function 0x12 */
394 WERROR dfs_FlushFtTable(
395 [in] [string,charset(UTF16)] uint16 servername[],
396 [in] [string,charset(UTF16)] uint16 rootshare[]
399 /* Function 0x13 */
400 WERROR dfs_Add2();
402 /* Function 0x14 */
403 WERROR dfs_Remove2();
405 /* Function 0x15 */
406 [public] WERROR dfs_EnumEx(
407 [in] [string,charset(UTF16)] uint16 dfs_name[],
408 [in] uint32 level,
409 [in] uint32 bufsize,
410 [in,out,unique] dfs_EnumStruct *info,
411 [in,out,unique] uint32 *total
414 /* Function 0x16 */
415 WERROR dfs_SetInfo2();