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,
20 DFS_MANAGER_VERSION_W2K8
= 6
23 [public] void dfs_GetManagerVersion
(
24 [out] dfs_ManagerVersion
*version
31 [in] [string,charset
(UTF16
)] uint16
*path
,
32 [in] [string,charset
(UTF16
)] uint16
*server
,
33 [in,unique] [string,charset
(UTF16
)] uint16
*share
,
34 [in,unique] [string,charset
(UTF16
)] uint16
*comment
,
41 [in] [string,charset
(UTF16
)] uint16
*dfs_entry_path
,
42 [in,unique] [string,charset
(UTF16
)] uint16
*servername
,
43 [in,unique] [string,charset
(UTF16
)] uint16
*sharename
53 [string,charset
(UTF16
)] uint16
*path
;
56 typedef [public,bitmap32bit
] bitmap
{
57 DFS_VOLUME_STATE_OK
= 0x1,
58 DFS_VOLUME_STATE_INCONSISTENT
= 0x2,
59 DFS_VOLUME_STATE_OFFLINE
= 0x3,
60 DFS_VOLUME_STATE_ONLINE
= 0x4,
61 DFS_VOLUME_STATE_STANDALONE
= DFS_VOLUME_FLAVOR_STANDALONE
,
62 DFS_VOLUME_STATE_AD_BLOB
= DFS_VOLUME_FLAVOR_AD_BLOB
66 [string,charset
(UTF16
)] uint16
*path
;
67 [string,charset
(UTF16
)] uint16
*comment
;
68 dfs_VolumeState state
;
72 const int DFS_STORAGE_STATES
= 0xf;
74 /* yes, this is a bitmap */
75 typedef [public,bitmap32bit
] bitmap
{
76 DFS_STORAGE_STATE_OFFLINE
= 1,
77 DFS_STORAGE_STATE_ONLINE
= 2,
78 DFS_STORAGE_STATE_ACTIVE
= 4
82 dfs_StorageState state
;
83 [string,charset
(UTF16
)] uint16
*server
;
84 [string,charset
(UTF16
)] uint16
*share
;
88 [string,charset
(UTF16
)] uint16
*path
;
89 [string,charset
(UTF16
)] uint16
*comment
;
90 dfs_VolumeState state
;
92 [size_is(num_stores
)] dfs_StorageInfo
*stores
;
96 [string,charset
(UTF16
)] uint16
*path
;
97 [string,charset
(UTF16
)] uint16
*comment
;
98 dfs_VolumeState state
;
102 [size_is(num_stores
)] dfs_StorageInfo
*stores
;
105 /* verified with dfsutil */
106 typedef [public,bitmap32bit
] bitmap
{
107 DFS_PROPERTY_FLAG_INSITE_REFERRALS
= 0x01,
108 DFS_PROPERTY_FLAG_ROOT_SCALABILITY
= 0x02,
109 DFS_PROPERTY_FLAG_SITE_COSTING
= 0x04,
110 DFS_PROPERTY_FLAG_TARGET_FAILBACK
= 0x08,
111 DFS_PROPERTY_FLAG_CLUSTER_ENABLED
= 0x10 /* untested */
115 [string,charset
(UTF16
)] uint16
*path
;
116 [string,charset
(UTF16
)] uint16
*comment
;
117 dfs_VolumeState state
;
120 dfs_PropertyFlags flags
;
125 typedef [v1_enum] enum {
126 DFS_INVALID_PRIORITY_CLASS
= -1,
127 DFS_SITE_COST_NORMAL_PRIORITY_CLASS
= 0,
128 DFS_GLOBAL_HIGH_PRIORITY_CLASS
= 1,
129 DFS_SITE_COST_HIGH_PRIORITY_CLASS
= 2,
130 DFS_SITE_COST_LOW_PRIORITY_CLASS
= 3,
131 DFS_GLOBAL_LOW_PRIORITY_CLASS
= 4
132 } dfs_Target_PriorityClass
;
135 dfs_Target_PriorityClass target_priority_class
;
136 uint16 target_priority_rank
;
138 } dfs_Target_Priority
;
141 dfs_StorageInfo info
;
142 dfs_Target_Priority target_priority
;
146 [string,charset
(UTF16
)] uint16
*entry_path
;
147 [string,charset
(UTF16
)] uint16
*comment
;
148 dfs_VolumeState state
;
151 dfs_PropertyFlags flags
;
154 [size_is(num_stores
)] dfs_StorageInfo2
*stores
;
158 GUID generation_guid
;
162 [string,charset
(UTF16
)] uint16
*comment
;
166 dfs_StorageState state
;
174 dfs_PropertyFlags flags
;
178 dfs_Target_Priority priority
;
182 [string,charset
(UTF16
)] uint16
*comment
;
183 dfs_VolumeState state
;
185 uint32 property_flag_mask
;
186 uint32 property_flags
;
190 dfs_StorageState state
;
191 dfs_Target_Priority priority
;
195 [string,charset
(UTF16
)] uint16
*dom_root
;
199 DFS_VOLUME_FLAVOR_STANDALONE
= 0x100,
200 DFS_VOLUME_FLAVOR_AD_BLOB
= 0x200
204 dfs_VolumeFlavor flavor
;
205 [string,charset
(UTF16
)] uint16
*dom_root
;
209 [case(0)] dfs_Info0
*info0
;
210 [case(1)] dfs_Info1
*info1
;
211 [case(2)] dfs_Info2
*info2
;
212 [case(3)] dfs_Info3
*info3
;
213 [case(4)] dfs_Info4
*info4
;
214 [case(5)] dfs_Info5
*info5
;
215 [case(6)] dfs_Info6
*info6
;
216 [case(7)] dfs_Info7
*info7
;
217 [case(100)] dfs_Info100
*info100
;
218 [case(101)] dfs_Info101
*info101
;
219 [case(102)] dfs_Info102
*info102
;
220 [case(103)] dfs_Info103
*info103
;
221 [case(104)] dfs_Info104
*info104
;
222 [case(105)] dfs_Info105
*info105
;
223 [case(106)] dfs_Info106
*info106
;
227 [in] [string,charset
(UTF16
)] uint16 dfs_entry_path
[],
228 [in,unique] [string,charset
(UTF16
)] uint16
*servername
,
229 [in,unique] [string,charset
(UTF16
)] uint16
*sharename
,
231 [in,ref,switch_is(level
)] dfs_Info
*info
237 [in] [string,charset
(UTF16
)] uint16 dfs_entry_path
[],
238 [in,unique] [string,charset
(UTF16
)] uint16
*servername
,
239 [in,unique] [string,charset
(UTF16
)] uint16
*sharename
,
241 [out,switch_is(level
)] dfs_Info
*info
249 [size_is(count
)] dfs_Info1
*s
;
254 [size_is(count
)] dfs_Info2
*s
;
259 [size_is(count
)] dfs_Info3
*s
;
264 [size_is(count
)] dfs_Info4
*s
;
269 [size_is(count
)] dfs_Info5
*s
;
274 [size_is(count
)] dfs_Info6
*s
;
279 [size_is(count
)] dfs_Info200
*s
;
284 [size_is(count
)] dfs_Info300
*s
;
289 [case(1)] dfs_EnumArray1
*info1
;
290 [case(2)] dfs_EnumArray2
*info2
;
291 [case(3)] dfs_EnumArray3
*info3
;
292 [case(4)] dfs_EnumArray4
*info4
;
293 [case(5)] dfs_EnumArray5
*info5
;
294 [case(6)] dfs_EnumArray6
*info6
;
295 [case(200)] dfs_EnumArray200
*info200
;
296 [case(300)] dfs_EnumArray300
*info300
;
301 [switch_is(level
)] dfs_EnumInfo e
;
307 [in,out,unique] dfs_EnumStruct
*info
,
308 [in,out,unique] uint32
*total
312 [todo
] WERROR dfs_Rename
();
315 [todo
] WERROR dfs_Move
();
318 [todo
] WERROR dfs_ManagerGetConfigInfo
();
321 [todo
] WERROR dfs_ManagerSendSiteInfo
();
326 [string,charset
(UTF16
)] uint16
*unknown2
;
329 WERROR dfs_AddFtRoot
(
330 [in] [string,charset
(UTF16
)] uint16 servername
[],
331 [in] [string,charset
(UTF16
)] uint16 dns_servername
[],
332 [in] [string,charset
(UTF16
)] uint16 dfsname
[],
333 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
334 [in] [string,charset
(UTF16
)] uint16 comment
[],
335 [in] [string,charset
(UTF16
)] uint16 dfs_config_dn
[],
338 [in,out,unique] dfs_UnknownStruct
**unknown2
342 WERROR dfs_RemoveFtRoot
(
343 [in] [string,charset
(UTF16
)] uint16 servername
[],
344 [in] [string,charset
(UTF16
)] uint16 dns_servername
[],
345 [in] [string,charset
(UTF16
)] uint16 dfsname
[],
346 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
348 [in,out,unique] dfs_UnknownStruct
**unknown
352 WERROR dfs_AddStdRoot
(
353 [in] [string,charset
(UTF16
)] uint16 servername
[],
354 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
355 [in] [string,charset
(UTF16
)] uint16 comment
[],
360 WERROR dfs_RemoveStdRoot
(
361 [in] [string,charset
(UTF16
)] uint16 servername
[],
362 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
367 WERROR dfs_ManagerInitialize
(
368 [in] [string,charset
(UTF16
)] uint16
*servername
,
373 WERROR dfs_AddStdRootForced
(
374 [in] [string,charset
(UTF16
)] uint16 servername
[],
375 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
376 [in] [string,charset
(UTF16
)] uint16 comment
[],
377 [in] [string,charset
(UTF16
)] uint16 store
[] /* C:\\whatever */
381 WERROR dfs_GetDcAddress
(
382 [in] [string,charset
(UTF16
)] uint16 servername
[],
383 [in,out,ref] [string,charset
(UTF16
)] uint16
**server_fullname
,
384 [in,out,ref] boolean8
*is_root
,
385 [in,out,ref] uint32
*ttl
389 WERROR dfs_SetDcAddress
(
390 [in] [string,charset
(UTF16
)] uint16 servername
[],
391 [in] [string,charset
(UTF16
)] uint16 server_fullname
[],
397 WERROR dfs_FlushFtTable
(
398 [in] [string,charset
(UTF16
)] uint16 servername
[],
399 [in] [string,charset
(UTF16
)] uint16 rootshare
[]
403 [todo
] WERROR dfs_Add2
();
406 [todo
] WERROR dfs_Remove2
();
409 [public] WERROR dfs_EnumEx
(
410 [in] [string,charset
(UTF16
)] uint16 dfs_name
[],
413 [in,out,unique] dfs_EnumStruct
*info
,
414 [in,out,unique] uint32
*total
418 [todo
] WERROR dfs_SetInfo2
();