2 dfs interface definition
5 [ uuid("4fc742e0-4a10-11cf-8273-00aa004ae673"),
7 pointer_default(unique),
8 helpstring("Settings for Microsoft Distributed File System")
13 typedef [v1_enum] enum {
14 DFS_MANAGER_VERSION_NT4
= 1,
15 DFS_MANAGER_VERSION_W2K
= 2,
16 DFS_MANAGER_VERSION_W2K3
= 4
19 [public] void dfs_GetManagerVersion
(
20 [out] dfs_ManagerVersion
*version
27 [in] [string,charset
(UTF16
)] uint16
*path
,
28 [in] [string,charset
(UTF16
)] uint16
*server
,
29 [in,unique] [string,charset
(UTF16
)] uint16
*share
,
30 [in,unique] [string,charset
(UTF16
)] uint16
*comment
,
37 [in] [string,charset
(UTF16
)] uint16
*dfs_entry_path
,
38 [in,unique] [string,charset
(UTF16
)] uint16
*servername
,
39 [in,unique] [string,charset
(UTF16
)] uint16
*sharename
49 [string,charset
(UTF16
)] uint16
*path
;
52 /* first 4 bits unverified yet */
53 typedef [public,bitmap32bit
] bitmap
{
54 DFS_VOLUME_STATE_OK
= 0x1,
55 DFS_VOLUME_STATE_INCONSISTENT
= 0x2,
56 DFS_VOLUME_STATE_OFFLINE
= 0x4,
57 DFS_VOLUME_STATE_ONLINE
= 0x8,
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
= 0x00000001,
105 DFS_PROPERTY_FLAG_ROOT_SCALABILITY
= 0x00000002,
106 DFS_PROPERTY_FLAG_SITE_COSTING
= 0x00000004,
107 DFS_PROPERTY_FLAG_TARGET_FAILBACK
= 0x00000008,
108 DFS_PROPERTY_FLAG_CLUSTER_ENABLED
= 0x00000010 /* 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_Info200
*s
;
271 [size_is(count
)] dfs_Info300
*s
;
276 [case(1)] dfs_EnumArray1
*info1
;
277 [case(2)] dfs_EnumArray2
*info2
;
278 [case(3)] dfs_EnumArray3
*info3
;
279 [case(4)] dfs_EnumArray4
*info4
;
280 [case(200)] dfs_EnumArray200
*info200
;
281 [case(300)] dfs_EnumArray300
*info300
;
286 [switch_is(level
)] dfs_EnumInfo e
;
292 [in,out,unique] dfs_EnumStruct
*info
,
293 [in,out,unique] uint32
*total
303 WERROR dfs_ManagerGetConfigInfo
();
306 WERROR dfs_ManagerSendSiteInfo
();
311 [string,charset
(UTF16
)] uint16
*unknown2
;
314 WERROR dfs_AddFtRoot
(
315 [in] [string,charset
(UTF16
)] uint16 servername
[],
316 [in] [string,charset
(UTF16
)] uint16 dns_servername
[],
317 [in] [string,charset
(UTF16
)] uint16 dfsname
[],
318 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
319 [in] [string,charset
(UTF16
)] uint16 comment
[],
320 [in] [string,charset
(UTF16
)] uint16 dfs_config_dn
[],
323 [in,out,unique] dfs_UnknownStruct
**unknown2
327 WERROR dfs_RemoveFtRoot
(
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
[],
333 [in,out,unique] dfs_UnknownStruct
**unknown
337 WERROR dfs_AddStdRoot
(
338 [in] [string,charset
(UTF16
)] uint16 servername
[],
339 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
340 [in] [string,charset
(UTF16
)] uint16 comment
[],
345 WERROR dfs_RemoveStdRoot
(
346 [in] [string,charset
(UTF16
)] uint16 servername
[],
347 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
352 WERROR dfs_ManagerInitialize
(
353 [in] [string,charset
(UTF16
)] uint16
*servername
,
358 WERROR dfs_AddStdRootForced
(
359 [in] [string,charset
(UTF16
)] uint16 servername
[],
360 [in] [string,charset
(UTF16
)] uint16 rootshare
[],
361 [in] [string,charset
(UTF16
)] uint16 comment
[],
362 [in] [string,charset
(UTF16
)] uint16 store
[] /* C:\\whatever */
366 WERROR dfs_GetDcAddress
();
369 WERROR dfs_SetDcAddress
();
372 WERROR dfs_FlushFtTable
(
373 [in] [string,charset
(UTF16
)] uint16 servername
[],
374 [in] [string,charset
(UTF16
)] uint16 rootshare
[]
381 WERROR dfs_Remove2
();
384 [public] WERROR dfs_EnumEx
(
385 [in] [string,charset
(UTF16
)] uint16 dfs_name
[],
388 [in,out,unique] dfs_EnumStruct
*info
,
389 [in,out,unique] uint32
*total
393 WERROR dfs_SetInfo2
();