2 dfs interface definition
7 [ uuid("4fc742e0-4a10-11cf-8273-00aa004ae673"),
9 pointer_default(unique),
10 helpstring("Settings for Microsoft Distributed File System"),
11 endpoint("ncacn_np:[\\pipe\\netdfs]", "ncacn_ip_tcp:", "ncalrpc:")
16 typedef [v1_enum] enum {
17 DFS_MANAGER_VERSION_NT4 = 1,
18 DFS_MANAGER_VERSION_W2K = 2,
19 DFS_MANAGER_VERSION_W2K3 = 4
22 [public] void dfs_GetManagerVersion(
23 [out] dfs_ManagerVersion *version
30 [in] [string,charset(UTF16)] uint16 *path,
31 [in] [string,charset(UTF16)] uint16 *server,
32 [in,unique] [string,charset(UTF16)] uint16 *share,
33 [in,unique] [string,charset(UTF16)] uint16 *comment,
40 [in] [string,charset(UTF16)] uint16 *dfs_entry_path,
41 [in,unique] [string,charset(UTF16)] uint16 *servername,
42 [in,unique] [string,charset(UTF16)] uint16 *sharename
52 [string,charset(UTF16)] uint16 *path;
55 typedef [public,bitmap32bit] bitmap {
56 DFS_VOLUME_STATE_OK = 0x1,
57 DFS_VOLUME_STATE_INCONSISTENT = 0x2,
58 DFS_VOLUME_STATE_OFFLINE = 0x3,
59 DFS_VOLUME_STATE_ONLINE = 0x4,
60 DFS_VOLUME_STATE_STANDALONE = DFS_VOLUME_FLAVOR_STANDALONE,
61 DFS_VOLUME_STATE_AD_BLOB = DFS_VOLUME_FLAVOR_AD_BLOB
65 [string,charset(UTF16)] uint16 *path;
66 [string,charset(UTF16)] uint16 *comment;
67 dfs_VolumeState state;
71 const int DFS_STORAGE_STATES = 0xf;
73 /* yes, this is a bitmap */
74 typedef [public,bitmap32bit] bitmap {
75 DFS_STORAGE_STATE_OFFLINE = 1,
76 DFS_STORAGE_STATE_ONLINE = 2,
77 DFS_STORAGE_STATE_ACTIVE = 4
81 dfs_StorageState state;
82 [string,charset(UTF16)] uint16 *server;
83 [string,charset(UTF16)] uint16 *share;
87 [string,charset(UTF16)] uint16 *path;
88 [string,charset(UTF16)] uint16 *comment;
89 dfs_VolumeState state;
91 [size_is(num_stores)] dfs_StorageInfo *stores;
95 [string,charset(UTF16)] uint16 *path;
96 [string,charset(UTF16)] uint16 *comment;
97 dfs_VolumeState state;
101 [size_is(num_stores)] dfs_StorageInfo *stores;
104 /* verified with dfsutil */
105 typedef [public,bitmap32bit] bitmap {
106 DFS_PROPERTY_FLAG_INSITE_REFERRALS = 0x01,
107 DFS_PROPERTY_FLAG_ROOT_SCALABILITY = 0x02,
108 DFS_PROPERTY_FLAG_SITE_COSTING = 0x04,
109 DFS_PROPERTY_FLAG_TARGET_FAILBACK = 0x08,
110 DFS_PROPERTY_FLAG_CLUSTER_ENABLED = 0x10 /* untested */
114 [string,charset(UTF16)] uint16 *path;
115 [string,charset(UTF16)] uint16 *comment;
116 dfs_VolumeState state;
119 dfs_PropertyFlags flags;
124 typedef [v1_enum] enum {
125 DFS_INVALID_PRIORITY_CLASS = -1,
126 DFS_SITE_COST_NORMAL_PRIORITY_CLASS = 0,
127 DFS_GLOBAL_HIGH_PRIORITY_CLASS = 1,
128 DFS_SITE_COST_HIGH_PRIORITY_CLASS = 2,
129 DFS_SITE_COST_LOW_PRIORITY_CLASS = 3,
130 DFS_GLOBAL_LOW_PRIORITY_CLASS = 4
131 } dfs_Target_PriorityClass;
134 dfs_Target_PriorityClass target_priority_class;
135 uint16 target_priority_rank;
137 } dfs_Target_Priority;
140 dfs_StorageInfo info;
141 dfs_Target_Priority target_priority;
145 [string,charset(UTF16)] uint16 *entry_path;
146 [string,charset(UTF16)] uint16 *comment;
147 dfs_VolumeState state;
150 dfs_PropertyFlags flags;
153 [size_is(num_stores)] dfs_StorageInfo2 *stores;
157 GUID generation_guid;
161 [string,charset(UTF16)] uint16 *comment;
165 dfs_StorageState state;
173 dfs_PropertyFlags flags;
177 dfs_Target_Priority priority;
181 [string,charset(UTF16)] uint16 *comment;
182 dfs_VolumeState state;
184 uint32 property_flag_mask;
185 uint32 property_flags;
189 dfs_StorageState state;
190 dfs_Target_Priority priority;
194 [string,charset(UTF16)] uint16 *dom_root;
198 DFS_VOLUME_FLAVOR_STANDALONE = 0x100,
199 DFS_VOLUME_FLAVOR_AD_BLOB = 0x200
203 dfs_VolumeFlavor flavor;
204 [string,charset(UTF16)] uint16 *dom_root;
208 [case(0)] dfs_Info0 *info0;
209 [case(1)] dfs_Info1 *info1;
210 [case(2)] dfs_Info2 *info2;
211 [case(3)] dfs_Info3 *info3;
212 [case(4)] dfs_Info4 *info4;
213 [case(5)] dfs_Info5 *info5;
214 [case(6)] dfs_Info6 *info6;
215 [case(7)] dfs_Info7 *info7;
216 [case(100)] dfs_Info100 *info100;
217 [case(101)] dfs_Info101 *info101;
218 [case(102)] dfs_Info102 *info102;
219 [case(103)] dfs_Info103 *info103;
220 [case(104)] dfs_Info104 *info104;
221 [case(105)] dfs_Info105 *info105;
222 [case(106)] dfs_Info106 *info106;
226 [in] [string,charset(UTF16)] uint16 dfs_entry_path[],
227 [in,unique] [string,charset(UTF16)] uint16 *servername,
228 [in,unique] [string,charset(UTF16)] uint16 *sharename,
230 [in,ref,switch_is(level)] dfs_Info *info
236 [in] [string,charset(UTF16)] uint16 dfs_entry_path[],
237 [in,unique] [string,charset(UTF16)] uint16 *servername,
238 [in,unique] [string,charset(UTF16)] uint16 *sharename,
240 [out,switch_is(level)] dfs_Info *info
248 [size_is(count)] dfs_Info1 *s;
253 [size_is(count)] dfs_Info2 *s;
258 [size_is(count)] dfs_Info3 *s;
263 [size_is(count)] dfs_Info4 *s;
268 [size_is(count)] dfs_Info5 *s;
273 [size_is(count)] dfs_Info6 *s;
278 [size_is(count)] dfs_Info200 *s;
283 [size_is(count)] dfs_Info300 *s;
288 [case(1)] dfs_EnumArray1 *info1;
289 [case(2)] dfs_EnumArray2 *info2;
290 [case(3)] dfs_EnumArray3 *info3;
291 [case(4)] dfs_EnumArray4 *info4;
292 [case(5)] dfs_EnumArray5 *info5;
293 [case(6)] dfs_EnumArray6 *info6;
294 [case(200)] dfs_EnumArray200 *info200;
295 [case(300)] dfs_EnumArray300 *info300;
300 [switch_is(level)] dfs_EnumInfo e;
306 [in,out,unique] dfs_EnumStruct *info,
307 [in,out,unique] uint32 *total
311 [todo] WERROR dfs_Rename();
314 [todo] WERROR dfs_Move();
317 [todo] WERROR dfs_ManagerGetConfigInfo();
320 [todo] WERROR dfs_ManagerSendSiteInfo();
325 [string,charset(UTF16)] uint16 *unknown2;
328 WERROR dfs_AddFtRoot(
329 [in] [string,charset(UTF16)] uint16 servername[],
330 [in] [string,charset(UTF16)] uint16 dns_servername[],
331 [in] [string,charset(UTF16)] uint16 dfsname[],
332 [in] [string,charset(UTF16)] uint16 rootshare[],
333 [in] [string,charset(UTF16)] uint16 comment[],
334 [in] [string,charset(UTF16)] uint16 dfs_config_dn[],
337 [in,out,unique] dfs_UnknownStruct **unknown2
341 WERROR dfs_RemoveFtRoot(
342 [in] [string,charset(UTF16)] uint16 servername[],
343 [in] [string,charset(UTF16)] uint16 dns_servername[],
344 [in] [string,charset(UTF16)] uint16 dfsname[],
345 [in] [string,charset(UTF16)] uint16 rootshare[],
347 [in,out,unique] dfs_UnknownStruct **unknown
351 WERROR dfs_AddStdRoot(
352 [in] [string,charset(UTF16)] uint16 servername[],
353 [in] [string,charset(UTF16)] uint16 rootshare[],
354 [in] [string,charset(UTF16)] uint16 comment[],
359 WERROR dfs_RemoveStdRoot(
360 [in] [string,charset(UTF16)] uint16 servername[],
361 [in] [string,charset(UTF16)] uint16 rootshare[],
366 WERROR dfs_ManagerInitialize(
367 [in] [string,charset(UTF16)] uint16 *servername,
372 WERROR dfs_AddStdRootForced(
373 [in] [string,charset(UTF16)] uint16 servername[],
374 [in] [string,charset(UTF16)] uint16 rootshare[],
375 [in] [string,charset(UTF16)] uint16 comment[],
376 [in] [string,charset(UTF16)] uint16 store[] /* C:\\whatever */
380 WERROR dfs_GetDcAddress(
381 [in] [string,charset(UTF16)] uint16 servername[],
382 [in,out,ref] [string,charset(UTF16)] uint16 **server_fullname,
383 [in,out,ref] boolean8 *is_root,
384 [in,out,ref] uint32 *ttl
388 WERROR dfs_SetDcAddress(
389 [in] [string,charset(UTF16)] uint16 servername[],
390 [in] [string,charset(UTF16)] uint16 server_fullname[],
396 WERROR dfs_FlushFtTable(
397 [in] [string,charset(UTF16)] uint16 servername[],
398 [in] [string,charset(UTF16)] uint16 rootshare[]
402 [todo] WERROR dfs_Add2();
405 [todo] WERROR dfs_Remove2();
408 [public] WERROR dfs_EnumEx(
409 [in] [string,charset(UTF16)] uint16 dfs_name[],
412 [in,out,unique] dfs_EnumStruct *info,
413 [in,out,unique] uint32 *total
417 [todo] WERROR dfs_SetInfo2();