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
20 [public] void dfs_GetManagerVersion
(
21 [out] dfs_ManagerVersion
*version
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
,
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
50 [string,charset
(UTF16
)] uint16
*path
;
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
63 [string,charset
(UTF16
)] uint16
*path
;
64 [string,charset
(UTF16
)] uint16
*comment
;
65 dfs_VolumeState state
;
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
79 dfs_StorageState state
;
80 [string,charset
(UTF16
)] uint16
*server
;
81 [string,charset
(UTF16
)] uint16
*share
;
85 [string,charset
(UTF16
)] uint16
*path
;
86 [string,charset
(UTF16
)] uint16
*comment
;
87 dfs_VolumeState state
;
89 [size_is(num_stores
)] dfs_StorageInfo
*stores
;
93 [string,charset
(UTF16
)] uint16
*path
;
94 [string,charset
(UTF16
)] uint16
*comment
;
95 dfs_VolumeState state
;
99 [size_is(num_stores
)] dfs_StorageInfo
*stores
;
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 */
112 [string,charset
(UTF16
)] uint16
*path
;
113 [string,charset
(UTF16
)] uint16
*comment
;
114 dfs_VolumeState state
;
117 dfs_PropertyFlags flags
;
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
;
132 dfs_Target_PriorityClass target_priority_class
;
133 uint16 target_priority_rank
;
135 } dfs_Target_Priority
;
138 dfs_StorageInfo info
;
139 dfs_Target_Priority target_priority
;
143 [string,charset
(UTF16
)] uint16
*entry_path
;
144 [string,charset
(UTF16
)] uint16
*comment
;
145 dfs_VolumeState state
;
148 dfs_PropertyFlags flags
;
151 [size_is(num_stores
)] dfs_StorageInfo2
*stores
;
155 GUID generation_guid
;
159 [string,charset
(UTF16
)] uint16
*comment
;
163 dfs_StorageState state
;
171 dfs_PropertyFlags flags
;
175 dfs_Target_Priority priority
;
179 [string,charset
(UTF16
)] uint16
*comment
;
180 dfs_VolumeState state
;
182 uint32 property_flag_mask
;
183 uint32 property_flags
;
187 dfs_StorageState state
;
188 dfs_Target_Priority priority
;
192 [string,charset
(UTF16
)] uint16
*dom_root
;
196 DFS_VOLUME_FLAVOR_STANDALONE
= 0x100,
197 DFS_VOLUME_FLAVOR_AD_BLOB
= 0x200
201 dfs_VolumeFlavor flavor
;
202 [string,charset
(UTF16
)] uint16
*dom_root
;
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
;
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
,
228 [in,ref,switch_is(level
)] dfs_Info
*info
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
,
238 [out,switch_is(level
)] dfs_Info
*info
246 [size_is(count
)] dfs_Info1
*s
;
251 [size_is(count
)] dfs_Info2
*s
;
256 [size_is(count
)] dfs_Info3
*s
;
261 [size_is(count
)] dfs_Info4
*s
;
266 [size_is(count
)] dfs_Info5
*s
;
271 [size_is(count
)] dfs_Info6
*s
;
276 [size_is(count
)] dfs_Info200
*s
;
281 [size_is(count
)] dfs_Info300
*s
;
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
;
298 [switch_is(level
)] dfs_EnumInfo e
;
304 [in,out,unique] dfs_EnumStruct
*info
,
305 [in,out,unique] uint32
*total
315 WERROR dfs_ManagerGetConfigInfo
();
318 WERROR dfs_ManagerSendSiteInfo
();
323 [string,charset
(UTF16
)] uint16
*unknown2
;
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
[],
335 [in,out,unique] dfs_UnknownStruct
**unknown2
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
[],
345 [in,out,unique] dfs_UnknownStruct
**unknown
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
[],
357 WERROR dfs_RemoveStdRoot
(
358 [in] [string,charset
(UTF16
)] uint16 servername
[],
359 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
364 WERROR dfs_ManagerInitialize
(
365 [in] [string,charset
(UTF16
)] uint16
*servername
,
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 */
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
386 WERROR dfs_SetDcAddress
(
387 [in] [string,charset
(UTF16
)] uint16 servername
[],
388 [in] [string,charset
(UTF16
)] uint16 server_fullname
[],
394 WERROR dfs_FlushFtTable
(
395 [in] [string,charset
(UTF16
)] uint16 servername
[],
396 [in] [string,charset
(UTF16
)] uint16 rootshare
[]
403 WERROR dfs_Remove2
();
406 [public] WERROR dfs_EnumEx
(
407 [in] [string,charset
(UTF16
)] uint16 dfs_name
[],
410 [in,out,unique] dfs_EnumStruct
*info
,
411 [in,out,unique] uint32
*total
415 WERROR dfs_SetInfo2
();