libwbclient: add wbcBlob and wbcNamedBlob.
[Samba.git] / source / librpc / idl / dfs.idl
bloba729b0e560dcc46958ecc866ecb8c6c101e55f76
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_MANAGER_VERSION_W2K8 = 6
19 } dfs_ManagerVersion;
21 [public] void dfs_GetManagerVersion(
22 [out] dfs_ManagerVersion *version
26 /******************/
27 /* Function: 0x01 */
28 WERROR dfs_Add (
29 [in] [string,charset(UTF16)] uint16 *path,
30 [in] [string,charset(UTF16)] uint16 *server,
31 [in,unique] [string,charset(UTF16)] uint16 *share,
32 [in,unique] [string,charset(UTF16)] uint16 *comment,
33 [in] uint32 flags
36 /******************/
37 /* Function: 0x02 */
38 WERROR dfs_Remove (
39 [in] [string,charset(UTF16)] uint16 *dfs_entry_path,
40 [in,unique] [string,charset(UTF16)] uint16 *servername,
41 [in,unique] [string,charset(UTF16)] uint16 *sharename
44 /******************/
45 /* Function: 0x03 */
47 typedef struct {
48 } dfs_Info0;
50 typedef struct {
51 [string,charset(UTF16)] uint16 *path;
52 } dfs_Info1;
54 typedef [public,bitmap32bit] bitmap {
55 DFS_VOLUME_STATE_OK = 0x1,
56 DFS_VOLUME_STATE_INCONSISTENT = 0x2,
57 DFS_VOLUME_STATE_OFFLINE = 0x3,
58 DFS_VOLUME_STATE_ONLINE = 0x4,
59 DFS_VOLUME_STATE_STANDALONE = DFS_VOLUME_FLAVOR_STANDALONE,
60 DFS_VOLUME_STATE_AD_BLOB = DFS_VOLUME_FLAVOR_AD_BLOB
61 } dfs_VolumeState;
63 typedef struct {
64 [string,charset(UTF16)] uint16 *path;
65 [string,charset(UTF16)] uint16 *comment;
66 dfs_VolumeState state;
67 uint32 num_stores;
68 } dfs_Info2;
70 const int DFS_STORAGE_STATES = 0xf;
72 /* yes, this is a bitmap */
73 typedef [public,bitmap32bit] bitmap {
74 DFS_STORAGE_STATE_OFFLINE = 1,
75 DFS_STORAGE_STATE_ONLINE = 2,
76 DFS_STORAGE_STATE_ACTIVE = 4
77 } dfs_StorageState;
79 typedef struct {
80 dfs_StorageState state;
81 [string,charset(UTF16)] uint16 *server;
82 [string,charset(UTF16)] uint16 *share;
83 } dfs_StorageInfo;
85 typedef struct {
86 [string,charset(UTF16)] uint16 *path;
87 [string,charset(UTF16)] uint16 *comment;
88 dfs_VolumeState state;
89 uint32 num_stores;
90 [size_is(num_stores)] dfs_StorageInfo *stores;
91 } dfs_Info3;
93 typedef struct {
94 [string,charset(UTF16)] uint16 *path;
95 [string,charset(UTF16)] uint16 *comment;
96 dfs_VolumeState state;
97 uint32 timeout;
98 GUID guid;
99 uint32 num_stores;
100 [size_is(num_stores)] dfs_StorageInfo *stores;
101 } dfs_Info4;
103 /* verified with dfsutil */
104 typedef [public,bitmap32bit] bitmap {
105 DFS_PROPERTY_FLAG_INSITE_REFERRALS = 0x01,
106 DFS_PROPERTY_FLAG_ROOT_SCALABILITY = 0x02,
107 DFS_PROPERTY_FLAG_SITE_COSTING = 0x04,
108 DFS_PROPERTY_FLAG_TARGET_FAILBACK = 0x08,
109 DFS_PROPERTY_FLAG_CLUSTER_ENABLED = 0x10 /* untested */
110 } dfs_PropertyFlags;
112 typedef struct {
113 [string,charset(UTF16)] uint16 *path;
114 [string,charset(UTF16)] uint16 *comment;
115 dfs_VolumeState state;
116 uint32 timeout;
117 GUID guid;
118 dfs_PropertyFlags flags;
119 uint32 pktsize;
120 uint32 num_stores;
121 } dfs_Info5;
123 typedef [v1_enum] enum {
124 DFS_INVALID_PRIORITY_CLASS = -1,
125 DFS_SITE_COST_NORMAL_PRIORITY_CLASS = 0,
126 DFS_GLOBAL_HIGH_PRIORITY_CLASS = 1,
127 DFS_SITE_COST_HIGH_PRIORITY_CLASS = 2,
128 DFS_SITE_COST_LOW_PRIORITY_CLASS = 3,
129 DFS_GLOBAL_LOW_PRIORITY_CLASS = 4
130 } dfs_Target_PriorityClass;
132 typedef struct {
133 dfs_Target_PriorityClass target_priority_class;
134 uint16 target_priority_rank;
135 uint16 reserved;
136 } dfs_Target_Priority;
138 typedef struct {
139 dfs_StorageInfo info;
140 dfs_Target_Priority target_priority;
141 } dfs_StorageInfo2;
143 typedef struct {
144 [string,charset(UTF16)] uint16 *entry_path;
145 [string,charset(UTF16)] uint16 *comment;
146 dfs_VolumeState state;
147 uint32 timeout;
148 GUID guid;
149 dfs_PropertyFlags flags;
150 uint32 pktsize;
151 uint16 num_stores;
152 [size_is(num_stores)] dfs_StorageInfo2 *stores;
153 } dfs_Info6;
155 typedef struct {
156 GUID generation_guid;
157 } dfs_Info7;
159 typedef struct {
160 [string,charset(UTF16)] uint16 *comment;
161 } dfs_Info100;
163 typedef struct {
164 dfs_StorageState state;
165 } dfs_Info101;
167 typedef struct {
168 uint32 timeout;
169 } dfs_Info102;
171 typedef struct {
172 dfs_PropertyFlags flags;
173 } dfs_Info103;
175 typedef struct {
176 dfs_Target_Priority priority;
177 } dfs_Info104;
179 typedef struct {
180 [string,charset(UTF16)] uint16 *comment;
181 dfs_VolumeState state;
182 uint32 timeout;
183 uint32 property_flag_mask;
184 uint32 property_flags;
185 } dfs_Info105;
187 typedef struct {
188 dfs_StorageState state;
189 dfs_Target_Priority priority;
190 } dfs_Info106;
192 typedef struct {
193 [string,charset(UTF16)] uint16 *dom_root;
194 } dfs_Info200;
196 typedef enum {
197 DFS_VOLUME_FLAVOR_STANDALONE = 0x100,
198 DFS_VOLUME_FLAVOR_AD_BLOB = 0x200
199 } dfs_VolumeFlavor;
201 typedef struct {
202 dfs_VolumeFlavor flavor;
203 [string,charset(UTF16)] uint16 *dom_root;
204 } dfs_Info300;
206 typedef union {
207 [case(0)] dfs_Info0 *info0;
208 [case(1)] dfs_Info1 *info1;
209 [case(2)] dfs_Info2 *info2;
210 [case(3)] dfs_Info3 *info3;
211 [case(4)] dfs_Info4 *info4;
212 [case(5)] dfs_Info5 *info5;
213 [case(6)] dfs_Info6 *info6;
214 [case(7)] dfs_Info7 *info7;
215 [case(100)] dfs_Info100 *info100;
216 [case(101)] dfs_Info101 *info101;
217 [case(102)] dfs_Info102 *info102;
218 [case(103)] dfs_Info103 *info103;
219 [case(104)] dfs_Info104 *info104;
220 [case(105)] dfs_Info105 *info105;
221 [case(106)] dfs_Info106 *info106;
222 } dfs_Info;
224 WERROR dfs_SetInfo (
225 [in] [string,charset(UTF16)] uint16 dfs_entry_path[],
226 [in,unique] [string,charset(UTF16)] uint16 *servername,
227 [in,unique] [string,charset(UTF16)] uint16 *sharename,
228 [in] uint32 level,
229 [in,ref,switch_is(level)] dfs_Info *info
232 /******************/
233 /* Function: 0x04 */
234 WERROR dfs_GetInfo (
235 [in] [string,charset(UTF16)] uint16 dfs_entry_path[],
236 [in,unique] [string,charset(UTF16)] uint16 *servername,
237 [in,unique] [string,charset(UTF16)] uint16 *sharename,
238 [in] uint32 level,
239 [out,switch_is(level)] dfs_Info *info
242 /******************/
243 /* Function: 0x05 */
245 typedef struct {
246 uint32 count;
247 [size_is(count)] dfs_Info1 *s;
248 } dfs_EnumArray1;
250 typedef struct {
251 uint32 count;
252 [size_is(count)] dfs_Info2 *s;
253 } dfs_EnumArray2;
255 typedef struct {
256 uint32 count;
257 [size_is(count)] dfs_Info3 *s;
258 } dfs_EnumArray3;
260 typedef struct {
261 uint32 count;
262 [size_is(count)] dfs_Info4 *s;
263 } dfs_EnumArray4;
265 typedef struct {
266 uint32 count;
267 [size_is(count)] dfs_Info5 *s;
268 } dfs_EnumArray5;
270 typedef struct {
271 uint32 count;
272 [size_is(count)] dfs_Info6 *s;
273 } dfs_EnumArray6;
275 typedef struct {
276 uint32 count;
277 [size_is(count)] dfs_Info200 *s;
278 } dfs_EnumArray200;
280 typedef struct {
281 uint32 count;
282 [size_is(count)] dfs_Info300 *s;
283 } dfs_EnumArray300;
286 typedef union {
287 [case(1)] dfs_EnumArray1 *info1;
288 [case(2)] dfs_EnumArray2 *info2;
289 [case(3)] dfs_EnumArray3 *info3;
290 [case(4)] dfs_EnumArray4 *info4;
291 [case(5)] dfs_EnumArray5 *info5;
292 [case(6)] dfs_EnumArray6 *info6;
293 [case(200)] dfs_EnumArray200 *info200;
294 [case(300)] dfs_EnumArray300 *info300;
295 } dfs_EnumInfo;
297 typedef struct {
298 uint32 level;
299 [switch_is(level)] dfs_EnumInfo e;
300 } dfs_EnumStruct;
302 WERROR dfs_Enum (
303 [in] uint32 level,
304 [in] uint32 bufsize,
305 [in,out,unique] dfs_EnumStruct *info,
306 [in,out,unique] uint32 *total
309 /* Function 0x06 */
310 WERROR dfs_Rename();
312 /* Function 0x07 */
313 WERROR dfs_Move();
315 /* Function 0x08 */
316 WERROR dfs_ManagerGetConfigInfo();
318 /* Function 0x09 */
319 WERROR dfs_ManagerSendSiteInfo();
321 /* Function 0x0a */
322 typedef struct {
323 uint32 unknown1;
324 [string,charset(UTF16)] uint16 *unknown2;
325 } dfs_UnknownStruct;
327 WERROR dfs_AddFtRoot(
328 [in] [string,charset(UTF16)] uint16 servername[],
329 [in] [string,charset(UTF16)] uint16 dns_servername[],
330 [in] [string,charset(UTF16)] uint16 dfsname[],
331 [in] [string,charset(UTF16)] uint16 rootshare[],
332 [in] [string,charset(UTF16)] uint16 comment[],
333 [in] [string,charset(UTF16)] uint16 dfs_config_dn[],
334 [in] uint8 unknown1,
335 [in] uint32 flags,
336 [in,out,unique] dfs_UnknownStruct **unknown2
339 /* Function 0x0b */
340 WERROR dfs_RemoveFtRoot(
341 [in] [string,charset(UTF16)] uint16 servername[],
342 [in] [string,charset(UTF16)] uint16 dns_servername[],
343 [in] [string,charset(UTF16)] uint16 dfsname[],
344 [in] [string,charset(UTF16)] uint16 rootshare[],
345 [in] uint32 flags,
346 [in,out,unique] dfs_UnknownStruct **unknown
349 /* Function 0x0c */
350 WERROR dfs_AddStdRoot(
351 [in] [string,charset(UTF16)] uint16 servername[],
352 [in] [string,charset(UTF16)] uint16 rootshare[],
353 [in] [string,charset(UTF16)] uint16 comment[],
354 [in] uint32 flags
357 /* Function 0x0d */
358 WERROR dfs_RemoveStdRoot(
359 [in] [string,charset(UTF16)] uint16 servername[],
360 [in] [string,charset(UTF16)] uint16 rootshare[],
361 [in] uint32 flags
364 /* Function 0x0e */
365 WERROR dfs_ManagerInitialize(
366 [in] [string,charset(UTF16)] uint16 *servername,
367 [in] uint32 flags
370 /* Function 0x0f */
371 WERROR dfs_AddStdRootForced(
372 [in] [string,charset(UTF16)] uint16 servername[],
373 [in] [string,charset(UTF16)] uint16 rootshare[],
374 [in] [string,charset(UTF16)] uint16 comment[],
375 [in] [string,charset(UTF16)] uint16 store[] /* C:\\whatever */
378 /* Function 0x10 */
379 WERROR dfs_GetDcAddress(
380 [in] [string,charset(UTF16)] uint16 servername[],
381 [in,out,ref] [string,charset(UTF16)] uint16 **server_fullname,
382 [in,out,ref] boolean8 *is_root,
383 [in,out,ref] uint32 *ttl
386 /* Function 0x11 */
387 WERROR dfs_SetDcAddress(
388 [in] [string,charset(UTF16)] uint16 servername[],
389 [in] [string,charset(UTF16)] uint16 server_fullname[],
390 [in] uint32 flags,
391 [in] uint32 ttl
394 /* Function 0x12 */
395 WERROR dfs_FlushFtTable(
396 [in] [string,charset(UTF16)] uint16 servername[],
397 [in] [string,charset(UTF16)] uint16 rootshare[]
400 /* Function 0x13 */
401 WERROR dfs_Add2();
403 /* Function 0x14 */
404 WERROR dfs_Remove2();
406 /* Function 0x15 */
407 [public] WERROR dfs_EnumEx(
408 [in] [string,charset(UTF16)] uint16 dfs_name[],
409 [in] uint32 level,
410 [in] uint32 bufsize,
411 [in,out,unique] dfs_EnumStruct *info,
412 [in,out,unique] uint32 *total
415 /* Function 0x16 */
416 WERROR dfs_SetInfo2();