2 dfs interface definition
5 [ uuid("4fc742e0-4a10-11cf-8273-00aa004ae673"),
7 pointer_default(unique),
8 helpstring("Settings for Microsoft Distributed File System"),
9 endpoint("ncacn_np:[\\pipe\\netdfs]", "ncacn_ip_tcp:", "ncalrpc:")
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
21 [public] void dfs_GetManagerVersion
(
22 [out] dfs_ManagerVersion
*version
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
,
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
51 [string,charset
(UTF16
)] uint16
*path
;
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
64 [string,charset
(UTF16
)] uint16
*path
;
65 [string,charset
(UTF16
)] uint16
*comment
;
66 dfs_VolumeState state
;
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
80 dfs_StorageState state
;
81 [string,charset
(UTF16
)] uint16
*server
;
82 [string,charset
(UTF16
)] uint16
*share
;
86 [string,charset
(UTF16
)] uint16
*path
;
87 [string,charset
(UTF16
)] uint16
*comment
;
88 dfs_VolumeState state
;
90 [size_is(num_stores
)] dfs_StorageInfo
*stores
;
94 [string,charset
(UTF16
)] uint16
*path
;
95 [string,charset
(UTF16
)] uint16
*comment
;
96 dfs_VolumeState state
;
100 [size_is(num_stores
)] dfs_StorageInfo
*stores
;
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 */
113 [string,charset
(UTF16
)] uint16
*path
;
114 [string,charset
(UTF16
)] uint16
*comment
;
115 dfs_VolumeState state
;
118 dfs_PropertyFlags flags
;
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
;
133 dfs_Target_PriorityClass target_priority_class
;
134 uint16 target_priority_rank
;
136 } dfs_Target_Priority
;
139 dfs_StorageInfo info
;
140 dfs_Target_Priority target_priority
;
144 [string,charset
(UTF16
)] uint16
*entry_path
;
145 [string,charset
(UTF16
)] uint16
*comment
;
146 dfs_VolumeState state
;
149 dfs_PropertyFlags flags
;
152 [size_is(num_stores
)] dfs_StorageInfo2
*stores
;
156 GUID generation_guid
;
160 [string,charset
(UTF16
)] uint16
*comment
;
164 dfs_StorageState state
;
172 dfs_PropertyFlags flags
;
176 dfs_Target_Priority priority
;
180 [string,charset
(UTF16
)] uint16
*comment
;
181 dfs_VolumeState state
;
183 uint32 property_flag_mask
;
184 uint32 property_flags
;
188 dfs_StorageState state
;
189 dfs_Target_Priority priority
;
193 [string,charset
(UTF16
)] uint16
*dom_root
;
197 DFS_VOLUME_FLAVOR_STANDALONE
= 0x100,
198 DFS_VOLUME_FLAVOR_AD_BLOB
= 0x200
202 dfs_VolumeFlavor flavor
;
203 [string,charset
(UTF16
)] uint16
*dom_root
;
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
;
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
,
229 [in,ref,switch_is(level
)] dfs_Info
*info
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
,
239 [out,switch_is(level
)] dfs_Info
*info
247 [size_is(count
)] dfs_Info1
*s
;
252 [size_is(count
)] dfs_Info2
*s
;
257 [size_is(count
)] dfs_Info3
*s
;
262 [size_is(count
)] dfs_Info4
*s
;
267 [size_is(count
)] dfs_Info5
*s
;
272 [size_is(count
)] dfs_Info6
*s
;
277 [size_is(count
)] dfs_Info200
*s
;
282 [size_is(count
)] dfs_Info300
*s
;
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
;
299 [switch_is(level
)] dfs_EnumInfo e
;
305 [in,out,unique] dfs_EnumStruct
*info
,
306 [in,out,unique] uint32
*total
316 WERROR dfs_ManagerGetConfigInfo
();
319 WERROR dfs_ManagerSendSiteInfo
();
324 [string,charset
(UTF16
)] uint16
*unknown2
;
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
[],
336 [in,out,unique] dfs_UnknownStruct
**unknown2
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
[],
346 [in,out,unique] dfs_UnknownStruct
**unknown
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
[],
358 WERROR dfs_RemoveStdRoot
(
359 [in] [string,charset
(UTF16
)] uint16 servername
[],
360 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
365 WERROR dfs_ManagerInitialize
(
366 [in] [string,charset
(UTF16
)] uint16
*servername
,
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 */
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
387 WERROR dfs_SetDcAddress
(
388 [in] [string,charset
(UTF16
)] uint16 servername
[],
389 [in] [string,charset
(UTF16
)] uint16 server_fullname
[],
395 WERROR dfs_FlushFtTable
(
396 [in] [string,charset
(UTF16
)] uint16 servername
[],
397 [in] [string,charset
(UTF16
)] uint16 rootshare
[]
404 WERROR dfs_Remove2
();
407 [public] WERROR dfs_EnumEx
(
408 [in] [string,charset
(UTF16
)] uint16 dfs_name
[],
411 [in,out,unique] dfs_EnumStruct
*info
,
412 [in,out,unique] uint32
*total
416 WERROR dfs_SetInfo2
();