1 import
"winreg.idl", "misc.idl";
6 uuid("b97db8b2-4c63-11cf-bff6-08002be23f2f"),
8 pointer_default(unique),
9 endpoint("ncacn_ip_tcp:"),
10 authservice
("MSServerClusterMgmtAPI"),
11 helpstring("Failover Cluster Management API (clusapi)")
17 * pidl does not yet have a real [context_handle] implementation, so we
18 * just use some defines here.
21 typedef [context_handle] void *HCLUSTER_RPC
;
22 typedef [context_handle] void *HNODE_RPC
;
23 typedef [context_handle] void *HGROUP_RPC
;
24 typedef [context_handle] void *HRES_RPC
;
25 typedef [context_handle] void *HKEY_RPC
;
26 typedef [context_handle] void *HNOTIFY_RPC
;
27 typedef [context_handle] void *HNETWORK_RPC
;
28 typedef [context_handle] void *HNETINTERFACE_RPC
;
29 typedef [context_handle] void *HBATCH_PORT_RPC
;
31 #define HCLUSTER_RPC policy_handle
32 #define HNODE_RPC policy_handle
33 #define HGROUP_RPC policy_handle
34 #define HRES_RPC policy_handle
35 #define HKEY_RPC policy_handle
36 #define HNOTIFY_RPC policy_handle
37 #define HNETWORK_RPC policy_handle
38 #define HNETINTERFACE_RPC policy_handle
39 #define HBATCH_PORT_RPC policy_handle
43 [ size_is( cbInSecurityDescriptor
), length_is( cbOutSecurityDescriptor
) ] uint8
*lpSecurityDescriptor
;
44 uint32 cbInSecurityDescriptor
;
45 uint32 cbOutSecurityDescriptor
;
46 } RPC_SECURITY_DESCRIPTOR
;
50 RPC_SECURITY_DESCRIPTOR RpcSecurityDescriptor
;
52 } RPC_SECURITY_ATTRIBUTES
;
55 [value
(20)] uint32 dwSize
;
56 uint32 dwClusterHighestVersion
;
57 uint32 dwClusterLowestVersion
;
60 } CLUSTER_OPERATIONAL_VERSION_INFO
;
64 boolean8 SetAttempted
;
66 } IDL_CLUSTER_SET_PASSWORD_STATUS
;
69 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES
= 1
70 } IDL_CLUSTER_SET_PASSWORD_FLAGS
;
75 } CLUSTER_CREATE_GROUP_INFO_RPC
;
82 * pidl cannot generate code for functions that return structures in
83 * IDL, therefore pretend the function is void and add the returned
84 * structure as an out parameter. This is what we do with pretty much
85 * all the Open calls right now in this interface - gd
90 [ out ] WERROR
*Status
95 [ out ] WERROR
*Status
,
96 [ out ] HCLUSTER_RPC
*Cluster
104 clusapi_CloseCluster
(
105 [ in, out ] HCLUSTER_RPC
*Cluster
112 clusapi_SetClusterName
(
113 [ in, string ] [charset
(UTF16
)] uint16
*NewClusterName
,
114 [ out ] WERROR
*rpc_status
121 clusapi_GetClusterName
(
122 [ out, string ] [charset
(UTF16
)] uint16
**ClusterName
,
123 [ out, string ] [charset
(UTF16
)] uint16
**NodeName
130 clusapi_GetClusterVersion
(
131 [ out ] uint16
*lpwMajorVersion
,
132 [ out ] uint16
*lpwMinorVersion
,
133 [ out ] uint16
*lpwBuildNumber
,
134 [ out, string ] [charset
(UTF16
)] uint16
**lpszVendorId
,
135 [ out, string ] [charset
(UTF16
)] uint16
**lpszCSDVersion
142 clusapi_GetQuorumResource
(
143 [ out, string ] [charset
(UTF16
)] uint16
**lpszResourceName
,
144 [ out, string ] [charset
(UTF16
)] uint16
**lpszDeviceName
,
145 [ out ] uint32
*pdwMaxQuorumLogSize
,
146 [ out ] WERROR
*rpc_status
153 clusapi_SetQuorumResource
(
154 [ in ] HRES_RPC hResource
,
155 [ in, string ] [charset
(UTF16
)] uint16
*lpszDeviceName
,
156 [ in ] uint32 dwMaxQuorumLogSize
,
157 [ out ] WERROR
*rpc_status
160 typedef [bitmap32bit
] bitmap
{
161 CLUSTER_ENUM_NODE
= 0x00000001,
162 CLUSTER_ENUM_RESTYPE
= 0x00000002,
163 CLUSTER_ENUM_RESOURCE
= 0x00000004,
164 CLUSTER_ENUM_GROUP
= 0x00000008,
165 CLUSTER_ENUM_NETWORK
= 0x00000010,
166 CLUSTER_ENUM_NETINTERFACE
= 0x00000020,
167 CLUSTER_ENUM_INTERNAL_NETWORK
= 0x80000000,
168 CLUSTER_ENUM_SHARED_VOLUME_RESOURCE
= 0x40000000
172 ClusterEnumType Type
;
173 [string] [charset
(UTF16
)] uint16
*Name
;
178 [size_is(EntryCount
)] ENUM_ENTRY
Entry[*];
182 [string] [charset
(UTF16
)] uint16
*Name
;
183 [string] [charset
(UTF16
)] uint16
*Id;
185 [string] [charset
(UTF16
)] uint16
*Owner
;
188 [size_is(cbProperties
)] uint8
* Properties
;
189 uint32 cbRoProperties
;
190 [size_is(cbRoProperties
)] uint8
* RoProperties
;
194 [string] [charset
(UTF16
)] uint16
*Name
;
195 [string] [charset
(UTF16
)] uint16
*Id;
196 [string] [charset
(UTF16
)] uint16
*OwnerName
;
197 [string] [charset
(UTF16
)] uint16
*OwnerId
;
199 [size_is(cbProperties
)] uint8
* Properties
;
200 uint32 cbRoProperties
;
201 [size_is(cbRoProperties
)] uint8
* RoProperties
;
202 } RESOURCE_ENUM_ENTRY
;
206 [size_is(EntryCount
)] GROUP_ENUM_ENTRY
Entry[*];
211 [size_is(EntryCount
)] RESOURCE_ENUM_ENTRY
Entry[*];
212 } RESOURCE_ENUM_LIST
;
219 [ in ] ClusterEnumType dwType
,
220 [ out ] ENUM_LIST
**ReturnEnum
,
221 [ out ] WERROR
*rpc_status
229 clusapi_OpenResource
(
230 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
231 [ out ] WERROR
*Status
,
232 [ out ] WERROR
*rpc_status
236 clusapi_OpenResource
(
237 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
238 [ out ] WERROR
*Status
,
239 [ out ] WERROR
*rpc_status
,
240 [ out ] HRES_RPC
*hResource
246 typedef [v1_enum] enum {
247 CLUSTER_RESOURCE_DEFAULT_MONITOR
= 0x00000000,
248 CLUSTER_RESOURCE_SEPARATE_MONITOR
= 0x00000001
249 } clusapi_CreateResourceFlags
;
253 clusapi_CreateResource
(
254 [ in ] HGROUP_RPC hGroup
,
255 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
256 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceType
,
257 [ in ] clusapi_CreateResourceFlags dwFlags
,
258 [ out ] WERROR
*Status
,
259 [ out ] WERROR
*rpc_status
263 clusapi_CreateResource
(
264 [ in ] HGROUP_RPC hGroup
,
265 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
266 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceType
,
267 [ in ] clusapi_CreateResourceFlags dwFlags
,
268 [ out ] WERROR
*Status
,
269 [ out ] WERROR
*rpc_status
,
270 [ out ] HRES_RPC
*hResource
277 clusapi_DeleteResource
(
278 [ in ] HRES_RPC hResource
,
279 [ out ] WERROR
*rpc_status
286 clusapi_CloseResource
(
287 [ in, out ] HRES_RPC
*Resource
293 typedef [v1_enum] enum {
294 ClusterResourceInitializing
= 0x00000001,
295 ClusterResourceOnline
= 0x00000002,
296 ClusterResourceOffline
= 0x00000003,
297 ClusterResourceFailed
= 0x00000004,
298 ClusterResourceOnlinePending
= 0x00000081,
299 ClusterResourceOfflinePending
= 0x00000082,
300 ClusterResourceStateUnknown
= 0xFFFFFFFF
301 } clusapi_ClusterResourceState
;
304 clusapi_GetResourceState
(
305 [ in ] HRES_RPC hResource
,
306 [ out ] clusapi_ClusterResourceState
*State
,
307 [ out, string ] [charset
(UTF16
)] uint16
**NodeName
,
308 [ out, string ] [charset
(UTF16
)] uint16
**GroupName
,
309 [ out ] WERROR
*rpc_status
316 clusapi_SetResourceName
(
317 [ in ] HRES_RPC hResource
,
318 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
319 [ out ] WERROR
*rpc_status
326 clusapi_GetResourceId
(
327 [ in ] HRES_RPC hResource
,
328 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
329 [ out ] WERROR
*rpc_status
336 clusapi_GetResourceType
(
337 [ in ] HRES_RPC hResource
,
338 [ out, string ] [charset
(UTF16
)] uint16
**lpszResourceType
,
339 [ out ] WERROR
*rpc_status
346 clusapi_FailResource
(
347 [ in ] HRES_RPC hResource
,
348 [ out ] WERROR
*rpc_status
355 clusapi_OnlineResource
(
356 [ in ] HRES_RPC hResource
,
357 [ out ] WERROR
*rpc_status
364 clusapi_OfflineResource
(
365 [ in ] HRES_RPC hResource
,
366 [ out ] WERROR
*rpc_status
373 clusapi_AddResourceDependency
(
374 [ in ] HRES_RPC hResource
,
375 [ in ] HRES_RPC hDependsOn
,
376 [ out ] WERROR
*rpc_status
383 clusapi_RemoveResourceDependency
(
384 [ in ] HRES_RPC hResource
,
385 [ in ] HRES_RPC hDependsOn
,
386 [ out ] WERROR
*rpc_status
393 clusapi_CanResourceBeDependent
(
394 [ in ] HRES_RPC hResource
,
395 [ in ] HRES_RPC hResourceDependent
,
396 [ out ] WERROR
*rpc_status
403 clusapi_CreateResEnum
(
404 [ in ] HRES_RPC hResource
,
405 [ in ] uint32 dwType
,
406 [ out ] ENUM_LIST
**ReturnEnum
,
407 [ out ] WERROR
*rpc_status
414 clusapi_AddResourceNode
(
415 [ in ] HRES_RPC hResource
,
416 [ in ] HNODE_RPC hNode
,
417 [ out ] WERROR
*rpc_status
424 clusapi_RemoveResourceNode
(
425 [ in ] HRES_RPC hResource
,
426 [ in ] HNODE_RPC hNode
,
427 [ out ] WERROR
*rpc_status
434 clusapi_ChangeResourceGroup
(
435 [ in ] HRES_RPC hResource
,
436 [ in ] HGROUP_RPC hGroup
,
437 [ out ] WERROR
*rpc_status
444 clusapi_CreateResourceType
(
445 [ in, string ] [charset
(UTF16
)] uint16
*lpszTypeName
,
446 [ in, string ] [charset
(UTF16
)] uint16
*lpszDisplayName
,
447 [ in, string ] [charset
(UTF16
)] uint16
*lpszDllName
,
448 [ in ] uint32 dwLooksAlive
,
449 [ in ] uint32 dwIsAlive
,
450 [ out ] WERROR
*rpc_status
457 clusapi_DeleteResourceType
(
458 [ in, string ] [charset
(UTF16
)] uint16
*lpszTypeName
,
459 [ out ] WERROR
*rpc_status
467 [ in ] winreg_AccessMask samDesired
,
468 [ out ] WERROR
*Status
,
469 [ out ] WERROR
*rpc_status
474 [ in ] winreg_AccessMask samDesired
,
475 [ out ] WERROR
*Status
,
476 [ out ] WERROR
*rpc_status
,
477 [ out ] HKEY_RPC
*phKey
485 [ in ] HKEY_RPC hKey
,
486 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
487 [ in ] uint32 dwOptions
,
488 [ in ] winreg_AccessMask samDesired
,
489 [ in, unique ] RPC_SECURITY_ATTRIBUTES
*lpSecurityAttributes
,
490 [ out ] uint32
*lpdwDisposition
,
491 [ out ] WERROR
*Status
,
492 [ out ] WERROR
*rpc_status
497 [ in ] HKEY_RPC hKey
,
498 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
499 [ in ] uint32 dwOptions
,
500 [ in ] winreg_AccessMask samDesired
,
501 [ in, unique ] RPC_SECURITY_ATTRIBUTES
*lpSecurityAttributes
,
502 [ out ] uint32
*lpdwDisposition
,
503 [ out ] WERROR
*Status
,
504 [ out ] WERROR
*rpc_status
,
505 [ out ] HKEY_RPC
*phKey
513 [ in ] HKEY_RPC hKey
,
514 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
515 [ in ] winreg_AccessMask samDesired
,
516 [ out ] WERROR
*Status
,
517 [ out ] WERROR
*rpc_status
522 [ in ] HKEY_RPC hKey
,
523 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
524 [ in ] winreg_AccessMask samDesired
,
525 [ out ] WERROR
*Status
,
526 [ out ] WERROR
*rpc_status
,
527 [ out ] HKEY_RPC
*phKey
535 [ in ] HKEY_RPC hKey
,
536 [ in ] uint32 dwIndex
,
537 [ out, string ] [charset
(UTF16
)] uint16
**KeyName
,
538 [ out ] NTTIME
*lpftLastWriteTime
,
539 [ out ] WERROR
*rpc_status
547 [ in ] HKEY_RPC hKey
,
548 [ in, string ] [charset
(UTF16
)] uint16
*lpValueName
,
549 [ in ] winreg_Type dwType
,
550 [ in, size_is(cbData
) ] uint8
*lpData
,
551 [ in ] uint32 cbData
,
552 [ out ] WERROR
*rpc_status
560 [ in ] HKEY_RPC hKey
,
561 [ in, string ] [charset
(UTF16
)] uint16
*lpValueName
,
562 [ out ] WERROR
*rpc_status
570 [ in ] HKEY_RPC hKey
,
571 [ in, string ] [charset
(UTF16
)] uint16
*lpValueName
,
572 [ out ] winreg_Type
*lpValueType
,
573 [ out, size_is(cbData
) ] uint8
*lpData
,
574 [ in ] uint32 cbData
,
575 [ out ] uint32
*lpcbRequired
,
576 [ out ] WERROR
*rpc_status
584 [ in ] HKEY_RPC hKey
,
585 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
586 [ out ] WERROR
*rpc_status
594 [ in ] HKEY_RPC hKey
,
595 [ in ] uint32 dwIndex
,
596 [ out, string ] [charset
(UTF16
)] uint16
**lpValueName
,
597 [ out ] winreg_Type
*lpType
,
598 [ out, size_is(*lpcbData
) ] uint8
*lpData
,
599 [ in, out ] uint32
*lpcbData
,
600 [ out ] uint32
*TotalSize
,
601 [ out ] WERROR
*rpc_status
609 [ in, out ] HKEY_RPC
*pKey
616 clusapi_QueryInfoKey
(
617 [ in ] HKEY_RPC hKey
,
618 [ out ] uint32
*lpcSubKeys
,
619 [ out ] uint32
*lpcbMaxSubKeyLen
,
620 [ out ] uint32
*lpcValues
,
621 [ out ] uint32
*lpcbMaxValueNameLen
,
622 [ out ] uint32
*lpcbMaxValueLen
,
623 [ out ] uint32
*lpcbSecurityDescriptor
,
624 [ out ] NTTIME
*lpftLastWriteTime
,
625 [ out ] WERROR
*rpc_status
632 clusapi_SetKeySecurity
(
633 [ in ] HKEY_RPC hKey
,
634 [ in ] uint32 SecurityInformation
,
635 [ in ] RPC_SECURITY_DESCRIPTOR
*pRpcSecurityDescriptor
,
636 [ out ] WERROR
*rpc_status
643 clusapi_GetKeySecurity
(
644 [ in ] HKEY_RPC hKey
,
645 [ in ] uint32 SecurityInformation
,
646 [ in, out ] RPC_SECURITY_DESCRIPTOR
*pRpcSecurityDescriptor
,
647 [ out ] WERROR
*rpc_status
655 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
656 [ out ] WERROR
*Status
,
657 [ out ] WERROR
*rpc_status
662 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
663 [ out ] WERROR
*Status
,
664 [ out ] WERROR
*rpc_status
,
665 [ out ] HGROUP_RPC
*hGroup
673 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
674 [ out ] WERROR
*Status
,
675 [ out ] WERROR
*rpc_status
680 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
681 [ out ] WERROR
*Status
,
682 [ out ] WERROR
*rpc_status
,
683 [ out ] HGROUP_RPC
*hGroup
691 [ in ] HGROUP_RPC Group
,
692 [ in ] boolean8 force
,
693 [ out ] WERROR
*rpc_status
701 [ in, out ] HGROUP_RPC
*Group
707 typedef [v1_enum] enum {
708 ClusterGroupOnline
= 0x00000000,
709 ClusterGroupOffline
= 0x00000001,
710 ClusterGroupFailed
= 0x00000002,
711 ClusterGroupPartialOnline
= 0x00000003,
712 ClusterGroupPending
= 0x00000004,
713 ClusterGroupStateUnknown
= 0xFFFFFFFF
714 } clusapi_ClusterGroupState
;
717 clusapi_GetGroupState
(
718 [ in ] HGROUP_RPC hGroup
,
719 [ out ] clusapi_ClusterGroupState
*State
,
720 [ out, string ] [charset
(UTF16
)] uint16
**NodeName
,
721 [ out ] WERROR
*rpc_status
728 clusapi_SetGroupName
(
729 [ in ] HGROUP_RPC hGroup
,
730 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
731 [ out ] WERROR
*rpc_status
739 [ in ] HGROUP_RPC hGroup
,
740 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
741 [ out ] WERROR
*rpc_status
749 [ in ] HNODE_RPC hNode
,
750 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
751 [ out ] WERROR
*rpc_status
759 [ in ] HGROUP_RPC hGroup
,
760 [ out ] WERROR
*rpc_status
767 clusapi_OfflineGroup
(
768 [ in ] HGROUP_RPC hGroup
,
769 [ out ] WERROR
*rpc_status
777 [ in ] HGROUP_RPC hGroup
,
778 [ out ] WERROR
*rpc_status
785 clusapi_MoveGroupToNode
(
786 [ in ] HGROUP_RPC hGroup
,
787 [ in ] HNODE_RPC hNode
,
788 [ out ] WERROR
*rpc_status
794 typedef [bitmap32bit
] bitmap
{
795 CLUSTER_GROUP_ENUM_CONTAINS
= 0x00000001,
796 CLUSTER_GROUP_ENUM_NODES
= 0x00000002
797 } ClusterGroupEnumType
;
800 clusapi_CreateGroupResourceEnum
(
801 [ in ] HGROUP_RPC hGroup
,
802 [ in ] ClusterGroupEnumType dwType
,
803 [ out ] ENUM_LIST
**ReturnEnum
,
804 [ out ] WERROR
*rpc_status
811 clusapi_SetGroupNodeList
(
812 [ in ] HGROUP_RPC hGroup
,
813 [ in, unique, size_is(cchListSize
) ] uint16
*multiSzNodeList
,
814 [ in ] uint32 cchListSize
,
815 [ out ] WERROR
*rpc_status
822 clusapi_CreateNotify
(
823 [ out ] WERROR
*Status
,
824 [ out ] WERROR
*rpc_status
828 clusapi_CreateNotify
(
829 [ out ] WERROR
*Status
,
830 [ out ] WERROR
*rpc_status
,
831 [ out ] HNOTIFY_RPC
*hNotify
839 [ in, out ] HNOTIFY_RPC
*Notify
846 clusapi_AddNotifyCluster
(
847 [ in ] HNOTIFY_RPC hNotify
,
848 [ in ] HCLUSTER_RPC hCluster
,
849 [ in ] uint32 dwFilter
,
850 [ in ] uint32 dwNotifyKey
,
851 [ out ] WERROR
*rpc_status
858 clusapi_AddNotifyNode
(
859 [ in ] HNOTIFY_RPC hNotify
,
860 [ in ] HNODE_RPC hNode
,
861 [ in ] uint32 dwFilter
,
862 [ in ] uint32 dwNotifyKey
,
863 [ out ] uint32
*dwStateSequence
,
864 [ out ] WERROR
*rpc_status
871 clusapi_AddNotifyGroup
(
872 [ in ] HNOTIFY_RPC hNotify
,
873 [ in ] HGROUP_RPC hGroup
,
874 [ in ] uint32 dwFilter
,
875 [ in ] uint32 dwNotifyKey
,
876 [ out ] uint32
*dwStateSequence
,
877 [ out ] WERROR
*rpc_status
884 clusapi_AddNotifyResource
(
885 [ in ] HNOTIFY_RPC hNotify
,
886 [ in ] HRES_RPC hResource
,
887 [ in ] uint32 dwFilter
,
888 [ in ] uint32 dwNotifyKey
,
889 [ out ] uint32
*dwStateSequence
,
890 [ out ] WERROR
*rpc_status
897 clusapi_AddNotifyKey
(
898 [ in ] HNOTIFY_RPC hNotify
,
899 [ in ] HKEY_RPC hKey
,
900 [ in ] uint32 dwNotifyKey
,
901 [ in ] uint32 Filter
,
902 [ in ] boolean8 WatchSubTree
,
903 [ out ] WERROR
*rpc_status
910 clusapi_ReAddNotifyNode
(
911 [ in ] HNOTIFY_RPC hNotify
,
912 [ in ] HNODE_RPC hNode
,
913 [ in ] uint32 dwFilter
,
914 [ in ] uint32 dwNotifyKey
,
915 [ in ] uint32 StateSequence
,
916 [ out ] WERROR
*rpc_status
923 clusapi_ReAddNotifyGroup
(
924 [ in ] HNOTIFY_RPC hNotify
,
925 [ in ] HGROUP_RPC hGroup
,
926 [ in ] uint32 dwFilter
,
927 [ in ] uint32 dwNotifyKey
,
928 [ in ] uint32 StateSequence
,
929 [ out ] WERROR
*rpc_status
936 clusapi_ReAddNotifyResource
(
937 [ in ] HNOTIFY_RPC hNotify
,
938 [ in ] HRES_RPC hResource
,
939 [ in ] uint32 dwFilter
,
940 [ in ] uint32 dwNotifyKey
,
941 [ in ] uint32 StateSequence
,
942 [ out ] WERROR
*rpc_status
950 [ in ] HNOTIFY_RPC hNotify
,
951 [ out ] uint32
*dwNotifyKey
,
952 [ out ] uint32
*dwFilter
,
953 [ out ] uint32
*dwStateSequence
,
954 [ out, string ] [charset
(UTF16
)] uint16
**Name
,
955 [ out ] WERROR
*rpc_status
963 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
964 [ out ] WERROR
*Status
,
965 [ out ] WERROR
*rpc_status
970 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
971 [ out ] WERROR
*Status
,
972 [ out ] WERROR
*rpc_status
,
973 [ out ] HNODE_RPC
*hNode
981 [ in, out ] HNODE_RPC
*Node
987 typedef [v1_enum] enum {
988 ClusterNodeUp
= 0x00000000,
989 ClusterNodeDown
= 0x00000001,
990 ClusterNodePaused
= 0x00000002,
991 ClusterNodeJoining
= 0x00000003,
992 ClusterNodeStateUnknown
= 0xFFFFFFFF
993 } clusapi_ClusterNodeState
;
996 clusapi_GetNodeState
(
997 [ in ] HNODE_RPC hNode
,
998 [ out ] clusapi_ClusterNodeState
*State
,
999 [ out ] WERROR
*rpc_status
1007 [ in ] HNODE_RPC hNode
,
1008 [ out ] WERROR
*rpc_status
1016 [ in ] HNODE_RPC hNode
,
1017 [ out ] WERROR
*rpc_status
1025 [ in ] HNODE_RPC hNode
,
1026 [ out ] WERROR
*rpc_status
1033 clusapi_NodeResourceControl
(
1034 [ in ] HRES_RPC hResource
,
1035 [ in ] HNODE_RPC hNode
,
1036 [ in ] uint32 dwControlCode
,
1037 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1038 [ in ] uint32 nInBufferSize
,
1039 [ out, size_is(nOutBufferSize
),
1040 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1041 [ in ] uint32 nOutBufferSize
,
1042 [ out ] uint32
*lpBytesReturned
,
1043 [ out ] uint32
*lpcbRequired
,
1044 [ out ] WERROR
*rpc_status
1050 typedef [v1_enum] enum {
1051 CLUS_RESCLASS_UNKNOWN
= 0x00000000,
1052 CLUS_RESCLASS_STORAGE
= 0x00000001,
1053 CLUS_RESCLASS_NETWORK
= 0x00000002
1054 } clusapi_ResourceClass
;
1056 typedef [public] struct {
1057 clusapi_ResourceClass Class
;
1059 } CLUS_RESOURCE_CLASS_INFO
;
1061 typedef [v1_enum] enum {
1062 CLUSCTL_RESOURCE_UNKNOWN
= 0x01000000,
1063 CLUSCTL_RESOURCE_GET_CHARACTERISTICS
= 0x01000005,
1064 CLUSCTL_RESOURCE_GET_FLAGS
= 0x01000009,
1065 CLUSCTL_RESOURCE_GET_CLASS_INFO
= 0x0100000D,
1066 CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES
= 0x01000011,
1067 CLUSCTL_RESOURCE_GET_NAME
= 0x01000029,
1068 CLUSCTL_RESOURCE_GET_RESOURCE_TYPE
= 0x0100002D,
1069 CLUSCTL_RESOURCE_GET_ID
= 0x01000039,
1070 CLUSCTL_RESOURCE_ENUM_COMMON_PROPERTIES
= 0x01000051,
1071 CLUSCTL_RESOURCE_GET_RO_COMMON_PROPERTIES
= 0x01000055,
1072 CLUSCTL_RESOURCE_GET_COMMON_PROPERTIES
= 0x01000059,
1073 CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES
= 0x0140005E,
1074 CLUSCTL_RESOURCE_VALIDATE_COMMON_PROPERTIES
= 0x01000061,
1075 CLUSCTL_RESOURCE_GET_COMMON_PROPERTY_FMTS
= 0x01000065,
1076 CLUSCTL_RESOURCE_ENUM_PRIVATE_PROPERTIES
= 0x01000079,
1077 CLUSCTL_RESOURCE_GET_RO_PRIVATE_PROPERTIES
= 0x0100007D,
1078 CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES
= 0x01000081,
1079 CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES
= 0x01400086,
1080 CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES
= 0x01000089,
1081 CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTY_FMTS
= 0x0100008D,
1082 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT
= 0x014000A2,
1083 CLUSCTL_RESOURCE_DELETE_REGISTRY_CHECKPOINT
= 0x014000A6,
1084 CLUSCTL_RESOURCE_GET_REGISTRY_CHECKPOINTS
= 0x010000A9,
1085 CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT
= 0x014000AE,
1086 CLUSCTL_RESOURCE_DELETE_CRYPTO_CHECKPOINT
= 0x014000B2,
1087 CLUSCTL_RESOURCE_GET_CRYPTO_CHECKPOINTS
= 0x010000B5,
1088 CLUSCTL_RESOURCE_UPGRADE_DLL
= 0x014000BA,
1089 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_64BIT
= 0x014000BE,
1090 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_32BIT
= 0x014000C2,
1091 CLUSCTL_RESOURCE_GET_NETWORK_NAME
= 0x01000169,
1092 CLUSCTL_RESOURCE_NETNAME_REGISTER_DNS_RECORDS
= 0x01000172,
1093 CLUSCTL_RESOURCE_GET_DNS_NAME
= 0x01000175,
1094 CLUSCTL_RESOURCE_NETNAME_SET_PWD_INFO
= 0x0100017A,
1095 CLUSCTL_RESOURCE_NETNAME_DELETE_CO
= 0x0100017E,
1096 CLUSCTL_RESOURCE_NETNAME_VALIDATE_VCO
= 0x01000181,
1097 CLUSCTL_RESOURCE_NETNAME_RESET_VCO
= 0x01000185,
1098 CLUSCTL_RESOURCE_NETNAME_CREDS_UPDATED
= 0x01c0018a,
1099 CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO
= 0x01000191,
1100 CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID
= 0x01000199,
1101 CLUSCTL_RESOURCE_IPADDRESS_RENEW_LEASE
= 0x014001BE,
1102 CLUSCTL_RESOURCE_IPADDRESS_RELEASE_LEASE
= 0x014001C2,
1103 CLUSCTL_RESOURCE_QUERY_MAINTENANCE_MODE
= 0x010001E1,
1104 CLUSCTL_RESOURCE_SET_MAINTENANCE_MODE
= 0x014001E6,
1105 CLUSCTL_RESOURCE_STORAGE_SET_DRIVELETTER
= 0x014001EA,
1106 CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO_EX
= 0x010001F1,
1107 CLUSCTL_RESOURCE_STORAGE_GET_DIRTY
= 0x01000219,
1108 CLUSCTL_RESOURCE_STORAGE_GET_MOUNTPOINTS
= 0x01000211,
1109 CLUSCTL_RESOURCE_STORAGE_GET_SHARED_VOLUME_INFO
= 0x01000225,
1110 CLUSCTL_RESOURCE_VM_START_MIGRATION
= 0x01600004,
1111 CLUSCTL_RESOURCE_VM_CANCEL_MIGRATION
= 0x01600008,
1112 CLUSCTL_RESOURCE_SET_CSV_MAINTENANCE_MODE
= 0x01400296,
1113 CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO
= 0x0140028a,
1114 CLUSCTL_RESOURCE_DISABLE_SHARED_VOLUME_DIRECTIO
= 0x0140028e,
1115 CLUSCTL_RESOURCE_SET_SHARED_VOLUME_BACKUP_MODE
= 0x0140029a,
1116 CLUSCTL_RESOURCE_GET_RELATED_RESOURCE_NAMES
= 0x01001fad,
1117 CLUSCTL_RESOURCE_POOL_GET_DRIVE_INFO
= 0x010002b5,
1118 CLUSCTL_RESOURCE_CLOUD_WITNESS_UPDATE_TOKEN
= 0x014020e6,
1119 CLUSCTL_RESOURCE_NETNAME_CHECK_OU_PERMISSIONS
= 0x07002121,
1120 CLUSCTL_RESOURCE_NETNAME_CHECK_AD_STATE
= 0x07002125
1121 } clusapi_ResourceControlCode
;
1124 clusapi_ResourceControl
(
1125 [ in ] HRES_RPC hResource
,
1126 [ in ] clusapi_ResourceControlCode dwControlCode
,
1127 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1128 [ in ] uint32 nInBufferSize
,
1129 [ out, size_is(nOutBufferSize
),
1130 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1131 [ in ] uint32 nOutBufferSize
,
1132 [ out ] uint32
*lpBytesReturned
,
1133 [ out ] uint32
*lpcbRequired
,
1134 [ out ] WERROR
*rpc_status
1141 clusapi_NodeResourceTypeControl
(
1142 [ in ] HCLUSTER_RPC hCluster
,
1143 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceTypeName
,
1144 [ in ] HNODE_RPC hNode
,
1145 [ in ] uint32 dwControlCode
,
1146 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1147 [ in ] uint32 nInBufferSize
,
1148 [ out, size_is(nOutBufferSize
),
1149 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1150 [ in ] uint32 nOutBufferSize
,
1151 [ out ] uint32
*lpBytesReturned
,
1152 [ out ] uint32
*lpcbRequired
,
1153 [ out ] WERROR
*rpc_status
1159 typedef [v1_enum] enum {
1160 CLUSCTL_RESOURCE_TYPE_UNKNOWN
= 0x02000000,
1161 CLUSCTL_RESOURCE_TYPE_GET_CHARACTERISTICS
= 0x02000005,
1162 CLUSCTL_RESOURCE_TYPE_GET_FLAGS
= 0x02000009,
1163 CLUSCTL_RESOURCE_TYPE_GET_CLASS_INFO
= 0x0200000D,
1164 CLUSCTL_RESOURCE_TYPE_GET_REQUIRED_DEPENDENCIES
= 0x02000011,
1165 CLUSCTL_RESOURCE_TYPE_GET_ARB_TIMEOUT
= 0x02000015,
1166 CLUSCTL_RESOURCE_TYPE_ENUM_COMMON_PROPERTIES
= 0x02000051,
1167 CLUSCTL_RESOURCE_TYPE_GET_RO_COMMON_PROPERTIES
= 0x02000055,
1168 CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTIES
= 0x02000059,
1169 CLUSCTL_RESOURCE_TYPE_SET_COMMON_PROPERTIES
= 0x0240005E,
1170 CLUSCTL_RESOURCE_TYPE_VALIDATE_COMMON_PROPERTIES
= 0x02000061,
1171 CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTY_FMTS
= 0x02000065,
1172 CLUSCTL_RESOURCE_TYPE_GET_COMMON_RESOURCE_PROPERTY_FMTS
= 0x02000069,
1173 CLUSCTL_RESOURCE_TYPE_ENUM_PRIVATE_PROPERTIES
= 0x02000079,
1174 CLUSCTL_RESOURCE_TYPE_GET_RO_PRIVATE_PROPERTIES
= 0x0200007D,
1175 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTIES
= 0x02000081,
1176 CLUSCTL_RESOURCE_TYPE_SET_PRIVATE_PROPERTIES
= 0x02400086,
1177 CLUSCTL_RESOURCE_TYPE_VALIDATE_PRIVATE_PROPERTIES
= 0x02000089,
1178 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTY_FMTS
= 0x0200008D,
1179 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_RESOURCE_PROPERTY_FMTS
= 0x02000091,
1180 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS
= 0x02000195,
1181 CLUSCTL_RESOURCE_TYPE_NETNAME_VALIDATE_NETNAME
= 0x02000235,
1182 CLUSCTL_RESOURCE_TYPE_VALIDATE_PATH
= 0x02000231,
1183 CLUSCTL_RESOURCE_TYPE_GEN_APP_VALIDATE_DIRECTORY
= 0x02000239,
1184 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DRIVELETTERS
= 0x020001ED,
1185 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX
= 0x020001F5,
1186 CLUSCTL_RESOURCE_TYPE_STORAGE_REMAP_DRIVELETTER
= 0x02000201,
1187 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DISKID
= 0x02000205,
1188 CLUSCTL_RESOURCE_TYPE_STORAGE_IS_CLUSTERABLE
= 0x02000209,
1189 CLUSCTL_RESOURCE_TYPE_STORAGE_RELEASE_OWNERSHIP
= 0x0240020E,
1190 CLUSCTL_RESOURCE_TYPE_STORAGE_IS_CSV_FILE
= 0x1000229,
1191 CLUSCTL_RESOURCE_TYPE_CLOUD_WITNESS_VALIDATE_CREDENTIALS
= 0x020020e1,
1192 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_LOGDISKS
= 0x02002149,
1193 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_TARGET_DATADISKS
= 0x0200214D,
1194 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_SOURCE_DATADISKS
= 0x02002151,
1195 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_REPLICA_VOLUMES
= 0x02002159,
1196 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_LOG_VOLUME
= 0x0200215D,
1197 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_REPLICATED_DISKS
= 0x02002155,
1198 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_RESOURCE_GROUP
= 0x02002161
1199 } clusapi_ResourceTypeControlCode
;
1202 clusapi_ResourceTypeControl
(
1203 [ in ] HCLUSTER_RPC hCluster
,
1204 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceTypeName
,
1205 [ in ] clusapi_ResourceTypeControlCode dwControlCode
,
1206 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1207 [ in ] uint32 nInBufferSize
,
1208 [ out, size_is(nOutBufferSize
),
1209 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1210 [ in ] uint32 nOutBufferSize
,
1211 [ out ] uint32
*lpBytesReturned
,
1212 [ out ] uint32
*lpcbRequired
,
1213 [ out ] WERROR
*rpc_status
1220 clusapi_NodeGroupControl
(
1221 [ in ] HGROUP_RPC hGroup
,
1222 [ in ] HNODE_RPC hNode
,
1223 [ in ] uint32 dwControlCode
,
1224 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1225 [ in ] uint32 nInBufferSize
,
1226 [ out, size_is(nOutBufferSize
),
1227 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1228 [ in ] uint32 nOutBufferSize
,
1229 [ out ] uint32
*lpBytesReturned
,
1230 [ out ] uint32
*lpcbRequired
,
1231 [ out ] WERROR
*rpc_status
1237 typedef [v1_enum] enum {
1238 CLUSCTL_GROUP_UNKNOWN
= 0x03000000,
1239 CLUSCTL_GROUP_GET_CHARACTERISTICS
= 0x03000005,
1240 CLUSCTL_GROUP_GET_FLAGS
= 0x03000009,
1241 CLUSCTL_GROUP_GET_NAME
= 0x03000029,
1242 CLUSCTL_GROUP_GET_ID
= 0x03000039,
1243 CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES
= 0x03000051,
1244 CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES
= 0x03000055,
1245 CLUSCTL_GROUP_GET_COMMON_PROPERTIES
= 0x03000059,
1246 CLUSCTL_GROUP_SET_COMMON_PROPERTIES
= 0x0340005E,
1247 CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES
= 0x03000061,
1248 CLUSCTL_GROUP_GET_COMMON_PROPERTY_FMTS
= 0x03000065,
1249 CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES
= 0x03000079,
1250 CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES
= 0x0300007D,
1251 CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES
= 0x03000081,
1252 CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES
= 0x03400086,
1253 CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES
= 0x03000089
1254 } clusapi_GroupControlCode
;
1257 clusapi_GroupControl
(
1258 [ in ] HGROUP_RPC hGroup
,
1259 [ in ] clusapi_GroupControlCode dwControlCode
,
1260 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1261 [ in ] uint32 nInBufferSize
,
1262 [ out, size_is(nOutBufferSize
),
1263 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1264 [ in ] uint32 nOutBufferSize
,
1265 [ out ] uint32
*lpBytesReturned
,
1266 [ out ] uint32
*lpcbRequired
,
1267 [ out ] WERROR
*rpc_status
1274 clusapi_NodeNodeControl
(
1275 [ in ] HNODE_RPC hNode
,
1276 [ in ] HNODE_RPC hHostNode
,
1277 [ in ] uint32 dwControlCode
,
1278 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1279 [ in ] uint32 nInBufferSize
,
1280 [ out, size_is(nOutBufferSize
),
1281 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1282 [ in ] uint32 nOutBufferSize
,
1283 [ out ] uint32
*lpBytesReturned
,
1284 [ out ] uint32
*lpcbRequired
,
1285 [ out ] WERROR
*rpc_status
1291 typedef [v1_enum] enum {
1292 CLUSCTL_NODE_UNKNOWN
= 0x04000000,
1293 CLUSCTL_NODE_GET_CHARACTERISTICS
= 0x04000005,
1294 CLUSCTL_NODE_GET_FLAGS
= 0x04000009,
1295 CLUSCTL_NODE_GET_NAME
= 0x04000029,
1296 CLUSCTL_NODE_GET_ID
= 0x04000039,
1297 CLUSCTL_NODE_GET_CLUSTER_SERVICE_ACCOUNT_NAME
= 0x04000041,
1298 CLUSCTL_NODE_ENUM_COMMON_PROPERTIES
= 0x04000051,
1299 CLUSCTL_NODE_GET_RO_COMMON_PROPERTIES
= 0x04000055,
1300 CLUSCTL_NODE_GET_COMMON_PROPERTIES
= 0x04000059,
1301 CLUSCTL_NODE_SET_COMMON_PROPERTIES
= 0x0440005E,
1302 CLUSCTL_NODE_VALIDATE_COMMON_PROPERTIES
= 0x04000061,
1303 CLUSCTL_NODE_ENUM_PRIVATE_PROPERTIES
= 0x04000079,
1304 CLUSCTL_NODE_GET_RO_PRIVATE_PROPERTIES
= 0x0400007D,
1305 CLUSCTL_NODE_GET_PRIVATE_PROPERTIES
= 0x04000081,
1306 CLUSCTL_NODE_SET_PRIVATE_PROPERTIES
= 0x04400086,
1307 CLUSCTL_NODE_VALIDATE_PRIVATE_PROPERTIES
= 0x04000089
1308 } clusapi_NodeControlCode
;
1311 clusapi_NodeControl
(
1312 [ in ] HNODE_RPC hNode
,
1313 [ in ] clusapi_NodeControlCode dwControlCode
,
1314 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1315 [ in ] uint32 nInBufferSize
,
1316 [ out, size_is(nOutBufferSize
),
1317 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1318 [ in ] uint32 nOutBufferSize
,
1319 [ out ] uint32
*lpBytesReturned
,
1320 [ out ] uint32
*lpcbRequired
,
1321 [ out ] WERROR
*rpc_status
1328 Opnum80NotUsedOnWire
(void);
1334 clusapi_OpenNetwork
(
1335 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1336 [ out ] WERROR
*Status
,
1337 [ out ] WERROR
*rpc_status
1341 clusapi_OpenNetwork
(
1342 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1343 [ out ] WERROR
*Status
,
1344 [ out ] WERROR
*rpc_status
,
1345 [ out ] HNETWORK_RPC
*hNetwork
1352 clusapi_CloseNetwork
(
1353 [ in, out ] HNETWORK_RPC
*Network
1359 typedef [v1_enum] enum {
1360 ClusterNetworkUnavailable
= 0x00000000,
1361 ClusterNetworkDown
= 0x00000001,
1362 ClusterNetworkPartitioned
= 0x00000002,
1363 ClusterNetworkUp
= 0x00000003,
1364 ClusterNetworkStateUnknown
= 0xFFFFFFFF
1365 } clusapi_ClusterNetworkState
;
1368 clusapi_GetNetworkState
(
1369 [ in ] HNETWORK_RPC hNetwork
,
1370 [ out ] clusapi_ClusterNetworkState
*State
,
1371 [ out ] WERROR
*rpc_status
1378 clusapi_SetNetworkName
(
1379 [ in ] HNETWORK_RPC hNetwork
,
1380 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1381 [ out ] WERROR
*rpc_status
1388 clusapi_CreateNetworkEnum
(
1389 [ in ] HNETWORK_RPC hNetwork
,
1390 [ in ] uint32 dwType
,
1391 [ out ] ENUM_LIST
**ReturnEnum
,
1392 [ out ] WERROR
*rpc_status
1399 clusapi_GetNetworkId
(
1400 [ in ] HNETWORK_RPC hNetwork
,
1401 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
1402 [ out ] WERROR
*rpc_status
1409 clusapi_SetNetworkPriorityOrder
(
1410 [ in, range(0, 1000)] uint32 NetworkCount
,
1411 [ in, string, size_is(NetworkCount
) ] [charset
(UTF16
)] uint16 NetworkIdList
[*],
1412 [ out ] WERROR
*rpc_status
1419 clusapi_NodeNetworkControl
(
1420 [ in ] HNETWORK_RPC hNetwork
,
1421 [ in ] HNODE_RPC hNode
,
1422 [ in ] uint32 dwControlCode
,
1423 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1424 [ in ] uint32 nInBufferSize
,
1425 [ out, size_is(nOutBufferSize
),
1426 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1427 [ in ] uint32 nOutBufferSize
,
1428 [ out ] uint32
*lpBytesReturned
,
1429 [ out ] uint32
*lpcbRequired
,
1430 [ out ] WERROR
*rpc_status
1437 clusapi_NetworkControl
(
1438 [ in ] HNETWORK_RPC hNetwork
,
1439 [ in ] uint32 dwControlCode
,
1440 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1441 [ in ] uint32 nInBufferSize
,
1442 [ out, size_is(nOutBufferSize
),
1443 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1444 [ in ] uint32 nOutBufferSize
,
1445 [ out ] uint32
*lpBytesReturned
,
1446 [ out ] uint32
*lpcbRequired
,
1447 [ out ] WERROR
*rpc_status
1454 clusapi_AddNotifyNetwork
(
1455 [ in ] HNOTIFY_RPC hNotify
,
1456 [ in ] HNETWORK_RPC hNetwork
,
1457 [ in ] uint32 dwFilter
,
1458 [ in ] uint32 dwNotifyKey
,
1459 [ out ] uint32
*dwStateSequence
,
1460 [ out ] WERROR
*rpc_status
1467 clusapi_ReAddNotifyNetwork
(
1468 [ in ] HNOTIFY_RPC hNotify
,
1469 [ in ] HNETWORK_RPC hNetwork
,
1470 [ in ] uint32 dwFilter
,
1471 [ in ] uint32 dwNotifyKey
,
1472 [ in ] uint32 StateSequence
,
1473 [ out ] WERROR
*rpc_status
1480 clusapi_OpenNetInterface
(
1481 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1482 [ out ] WERROR
*Status
,
1483 [ out ] WERROR
*rpc_status
1487 clusapi_OpenNetInterface
(
1488 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1489 [ out ] WERROR
*Status
,
1490 [ out ] WERROR
*rpc_status
,
1491 [ out ] HNETINTERFACE_RPC
*hNetInterface
1498 clusapi_CloseNetInterface
(
1499 [ in, out ] HNETINTERFACE_RPC
*NetInterface
1505 typedef [v1_enum] enum {
1506 ClusterNetInterfaceFailed
= 0x00000000,
1507 ClusterNetInterfaceUnreachable
= 0x00000001,
1508 ClusterNetInterfaceUnavailable
= 0x00000002,
1509 ClusterNetInterfaceUp
= 0x00000003,
1510 ClusterNetInterfaceStateUnknown
= 0xFFFFFFFF
1511 } clusapi_ClusterNetInterfaceState
;
1514 clusapi_GetNetInterfaceState
(
1515 [ in ] HNETINTERFACE_RPC hNetInterface
,
1516 [ out ] clusapi_ClusterNetInterfaceState
*State
,
1517 [ out ] WERROR
*rpc_status
1524 clusapi_GetNetInterface
(
1525 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
1526 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1527 [ out, string ] [charset
(UTF16
)] uint16
**lppszInterfaceName
,
1528 [ out ] WERROR
*rpc_status
1535 clusapi_GetNetInterfaceId
(
1536 [ in ] HNETINTERFACE_RPC hNetInterface
,
1537 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
1538 [ out ] WERROR
*rpc_status
1545 clusapi_NodeNetInterfaceControl
(
1546 [ in ] HNETINTERFACE_RPC hNetInterface
,
1547 [ in ] HNODE_RPC hNode
,
1548 [ in ] uint32 dwControlCode
,
1549 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1550 [ in ] uint32 nInBufferSize
,
1551 [ out, size_is(nOutBufferSize
),
1552 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1553 [ in ] uint32 nOutBufferSize
,
1554 [ out ] uint32
*lpBytesReturned
,
1555 [ out ] uint32
*lpcbRequired
,
1556 [ out ] WERROR
*rpc_status
1563 clusapi_NetInterfaceControl
(
1564 [ in ] HNETINTERFACE_RPC hNetInterface
,
1565 [ in ] uint32 dwControlCode
,
1566 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1567 [ in ] uint32 nInBufferSize
,
1568 [ out, size_is(nOutBufferSize
),
1569 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1570 [ in ] uint32 nOutBufferSize
,
1571 [ out ] uint32
*lpBytesReturned
,
1572 [ out ] uint32
*lpcbRequired
,
1573 [ out ] WERROR
*rpc_status
1580 clusapi_AddNotifyNetInterface
(
1581 [ in ] HNOTIFY_RPC hNotify
,
1582 [ in ] HNETINTERFACE_RPC hNetInterface
,
1583 [ in ] uint32 dwFilter
,
1584 [ in ] uint32 dwNotifyKey
,
1585 [ out ] uint32
*dwStateSequence
,
1586 [ out ] WERROR
*rpc_status
1593 clusapi_ReAddNotifyNetInterface
(
1594 [ in ] HNOTIFY_RPC hNotify
,
1595 [ in ] HNETINTERFACE_RPC hNetInterface
,
1596 [ in ] uint32 dwFilter
,
1597 [ in ] uint32 dwNotifyKey
,
1598 [ in ] uint32 StateSequence
,
1599 [ out ] WERROR
*rpc_status
1606 clusapi_CreateNodeEnum
(
1607 [ in ] HNODE_RPC hNode
,
1608 [ in ] uint32 dwType
,
1609 [ out ] ENUM_LIST
**ReturnEnum
,
1610 [ out ] WERROR
*rpc_status
1617 clusapi_GetClusterVersion2
(
1618 [ out ] uint16
*lpwMajorVersion
,
1619 [ out ] uint16
*lpwMinorVersion
,
1620 [ out ] uint16
*lpwBuildNumber
,
1621 [ out, string ] [charset
(UTF16
)] uint16
**lpszVendorId
,
1622 [ out, string ] [charset
(UTF16
)] uint16
**lpszCSDVersion
,
1623 [ out ] CLUSTER_OPERATIONAL_VERSION_INFO
**ppClusterOpVerInfo
,
1624 [ out ] WERROR
*rpc_status
1630 typedef [bitmap32bit
] bitmap
{
1631 CLUSTER_RESOURCE_TYPE_ENUM_NODES
= 0x00000001,
1632 CLUSTER_RESOURCE_TYPE_ENUM_RESOURCES
= 0x00000002
1633 } ClusterResTypeEnumType
;
1636 clusapi_CreateResTypeEnum
(
1637 [ in, string ] [charset
(UTF16
)] uint16
*lpszTypeName
,
1638 [ in ] ClusterResTypeEnumType dwType
,
1639 [ out ] ENUM_LIST
**ReturnEnum
,
1640 [ out ] WERROR
*rpc_status
1647 clusapi_BackupClusterDatabase
(
1648 [ in, string ] [charset
(UTF16
)] uint16
*lpszPathName
,
1649 [ out ] WERROR
*rpc_status
1656 clusapi_NodeClusterControl
(
1657 [ in ] HCLUSTER_RPC hCluster
,
1658 [ in ] HNODE_RPC hHostNode
,
1659 [ in ] uint32 dwControlCode
,
1660 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1661 [ in ] uint32 nInBufferSize
,
1662 [ out, size_is(nOutBufferSize
),
1663 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1664 [ in ] uint32 nOutBufferSize
,
1665 [ out ] uint32
*lpBytesReturned
,
1666 [ out ] uint32
*lpcbRequired
,
1667 [ out ] WERROR
*rpc_status
1673 typedef [v1_enum] enum {
1674 CLUSCTL_CLUSTER_UNKNOWN
= 0x07000000,
1675 CLUSCTL_CLUSTER_GET_FQDN
= 0x0700003D,
1676 CLUSCTL_CLUSTER_CHECK_VOTER_EVICT
= 0x07000045,
1677 CLUSCTL_CLUSTER_CHECK_VOTER_DOWN
= 0x07000049,
1678 CLUSCTL_CLUSTER_SHUTDOWN
= 0x0700004D,
1679 CLUSCTL_CLUSTER_ENUM_COMMON_PROPERTIES
= 0x07000051,
1680 CLUSCTL_CLUSTER_GET_RO_COMMON_PROPERTIES
= 0x07000055,
1681 CLUSCTL_CLUSTER_GET_COMMON_PROPERTIES
= 0x07000059,
1682 CLUSCTL_CLUSTER_SET_COMMON_PROPERTIES
= 0x0740005E,
1683 CLUSCTL_CLUSTER_VALIDATE_COMMON_PROPERTIES
= 0x07000061,
1684 CLUSCTL_CLUSTER_GET_COMMON_PROPERTY_FMTS
= 0x07000065,
1685 CLUSCTL_CLUSTER_ENUM_PRIVATE_PROPERTIES
= 0x07000079,
1686 CLUSCTL_CLUSTER_GET_RO_PRIVATE_PROPERTIES
= 0x0700007D,
1687 CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTIES
= 0x07000081,
1688 CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES
= 0x07400086,
1689 CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES
= 0x07000089,
1690 CLUSCTL_CLUSTER_GET_SHARED_VOLUME_ID
= 0x07000291,
1691 CLUSCTL_CLUSTER_UPGRADE_CLUSTER_VERSION
= 0x074000ce,
1692 CLUSCTL_CLUSTER_CLEAR_UPGRADE_IN_PROGRESS
= 0x074000d2,
1693 CLUSCTL_CLUSTER_IS_READY_FOR_UPGRADE
= 0x070000d5
1694 } clusapi_ClusterControlCode
;
1696 typedef [v1_enum] enum {
1697 CLUSPROP_SYNTAX_ENDMARK
= 0x00000000,
1698 CLUSPROP_SYNTAX_NAME
= 0x00040003,
1699 CLUSPROP_SYNTAX_RESCLASS
= 0x00020002,
1700 CLUSPROP_SYNTAX_LIST_VALUE_SZ
= 0x00010003,
1701 CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ
= 0x00010004,
1702 CLUSPROP_SYNTAX_LIST_VALUE_DWORD
= 0x00010002,
1703 CLUSPROP_SYNTAX_LIST_VALUE_BINARY
= 0x00010001,
1704 CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ
= 0x00010005,
1705 CLUSPROP_SYNTAX_LIST_VALUE_LONG
= 0x00010007,
1706 CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ
= 0x00010008,
1707 CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR
= 0x00010009,
1708 CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER
= 0x0001000a,
1709 CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER
= 0x00010006,
1710 CLUSPROP_SYNTAX_LIST_VALUE_WORD
= 0x0001000b,
1711 CLUSPROP_SYNTAX_LIST_VALUE_FILETIME
= 0x0001000c,
1712 CLUSPROP_SYNTAX_DISK_SIGNATURE
= 0x00050002,
1713 CLUSPROP_SYNTAX_SCSI_ADDRESS
= 0x00060002,
1714 CLUSPROP_SYNTAX_DISK_NUMBER
= 0x00070002,
1715 CLUSPROP_SYNTAX_PARTITION_INFO
= 0x00080001,
1716 CLUSPROP_SYNTAX_DISK_SERIALNUMBER
= 0x000a0003,
1717 CLUSPROP_SYNTAX_DISK_GUID
= 0x000b0003,
1718 CLUSPROP_SYNTAX_DISK_SIZE
= 0x000c0006,
1719 CLUSPROP_SYNTAX_PARTITION_INFO_EX
= 0x000d0001
1720 } CLUSTER_PROPERTY_SYNTAX
;
1723 CLUSTER_PROPERTY_SYNTAX Syntax
;
1725 [subcontext
(0),subcontext_size
(Size
)] [flag
(NDR_REMAINING
)] DATA_BLOB Buffer
;
1726 [flag
(NDR_ALIGN4
)] DATA_BLOB Padding
;
1727 } clusapi_propertyValues
;
1730 [value
(CLUSPROP_SYNTAX_NAME
)] CLUSTER_PROPERTY_SYNTAX syntax_name
;
1731 [value
(strlen_m_term
(buffer
)*2)] uint32 size
;
1733 [flag
(NDR_ALIGN2
)] DATA_BLOB padding
;
1734 clusapi_propertyValues PropertyValues
;
1735 [value
(CLUSPROP_SYNTAX_ENDMARK
)] CLUSTER_PROPERTY_SYNTAX end_mark
;
1736 } clusapi_propertyValue
;
1738 typedef [public] struct {
1739 uint32 propertyCount
;
1740 clusapi_propertyValue propertyValues
[propertyCount
];
1741 [value
(CLUSPROP_SYNTAX_ENDMARK
)] CLUSTER_PROPERTY_SYNTAX end_mark
;
1742 } clusapi_PROPERTY_LIST
;
1745 clusapi_ClusterControl
(
1746 [ in ] HCLUSTER_RPC hCluster
,
1747 [ in ] clusapi_ClusterControlCode dwControlCode
,
1748 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1749 [ in ] uint32 nInBufferSize
,
1750 [ out, size_is(nOutBufferSize
),
1751 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1752 [ in ] uint32 nOutBufferSize
,
1753 [ out ] uint32
*lpBytesReturned
,
1754 [ out ] uint32
*lpcbRequired
,
1755 [ out ] WERROR
*rpc_status
1762 clusapi_UnblockGetNotifyCall
(
1763 [ in ] HNOTIFY_RPC hNotify
1770 clusapi_SetServiceAccountPassword
(
1771 [ in, string ] [charset
(UTF16
)] uint16
*lpszNewPassword
,
1772 [ in ] IDL_CLUSTER_SET_PASSWORD_FLAGS dwFlags
,
1773 [ out, size_is(ReturnStatusBufferSize
), length_is(*SizeReturned
) ]
1774 IDL_CLUSTER_SET_PASSWORD_STATUS ReturnStatusBufferPtr
[*],
1775 [ in, range(0, (64 * 1024)) ] uint32 ReturnStatusBufferSize
,
1776 [ out ] uint32
*SizeReturned
,
1777 [ out ] uint32
*ExpectedBufferSize
1784 clusapi_SetResourceDependencyExpression
(
1785 [ in ] HRES_RPC hResource
,
1786 [ in, string, unique ] [charset
(UTF16
)] uint16
*lpszDependencyExpression
,
1787 [ out ] WERROR
*rpc_status
1794 clusapi_GetResourceDependencyExpression
(
1795 [ in ] HRES_RPC hResource
,
1796 [ out, string ] [charset
(UTF16
)] uint16
**lpszDependencyExpression
,
1797 [ out ] WERROR
*rpc_status
1804 Opnum111NotUsedOnWire
(void);
1810 clusapi_GetResourceNetworkName
(
1811 [ in ] HRES_RPC hResource
,
1812 [ out, string ] [charset
(UTF16
)] uint16
**lpszName
,
1813 [ out ] WERROR
*rpc_status
1820 clusapi_ExecuteBatch
(
1821 [ in ] HKEY_RPC hKey
,
1822 [ in ] uint32 cbData
,
1823 [ in, size_is(cbData
)] uint8
*lpData
,
1824 [ out ] int *pdwFailedCommand
,
1825 [ out ] WERROR
*rpc_status
1832 clusapi_CreateBatchPort
(
1833 [ in ] HKEY_RPC hKey
,
1834 [ out ] HBATCH_PORT_RPC
*phBatchPort
,
1835 [ out ] WERROR
*rpc_status
1842 clusapi_GetBatchNotification
(
1843 [ in ] HBATCH_PORT_RPC hBatchNotify
,
1844 [ out ] uint32
*cbData
,
1845 [ out, size_is(,*cbData
) ] uint8
** lpData
1852 clusapi_CloseBatchPort
(
1853 [ in, out ] HBATCH_PORT_RPC
*phBatchPort
1859 typedef [bitmap32bit
] bitmap
{
1860 CLUSAPI_READ_ACCESS
= 0x00000001,
1861 CLUSAPI_CHANGE_ACCESS
= 0x00000002,
1862 CLUSAPI_GENERIC_READ
= 0x80000000,
1863 CLUSAPI_GENERIC_WRITE
= 0x40000000,
1864 CLUSAPI_GENERIC_EXECUTE
= 0x20000000,
1865 CLUSAPI_GENERIC_ALL
= 0x10000000,
1866 CLUSAPI_MAXIMUM_ALLOWED
= 0x02000000
1867 } clusapi_DesiredAccessMask
;
1871 clusapi_OpenClusterEx
(
1872 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1873 [ out ] uint32
*lpdwGrantedAccess
,
1874 [ out ] WERROR
*Status
1878 clusapi_OpenClusterEx
(
1879 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1880 [ out ] uint32
*lpdwGrantedAccess
,
1881 [ out ] WERROR
*Status
,
1882 [ out ] HCLUSTER_RPC
*hCluster
1891 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
1892 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1893 [ out ] uint32
*lpdwGrantedAccess
,
1894 [ out ] WERROR
*Status
,
1895 [ out ] WERROR
*rpc_status
1900 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
1901 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1902 [ out ] uint32
*lpdwGrantedAccess
,
1903 [ out ] WERROR
*Status
,
1904 [ out ] WERROR
*rpc_status
,
1905 [ out ] HNODE_RPC
*hNode
1912 clusapi_OpenGroupEx
(
1913 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
1914 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1915 [ out ] uint32
*lpdwGrantedAccess
,
1916 [ out ] WERROR
*Status
,
1917 [ out ] WERROR
*rpc_status
1921 clusapi_OpenGroupEx
(
1922 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
1923 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1924 [ out ] uint32
*lpdwGrantedAccess
,
1925 [ out ] WERROR
*Status
,
1926 [ out ] WERROR
*rpc_status
,
1927 [ out ] HGROUP_RPC
*hGroup
1934 clusapi_OpenResourceEx
(
1935 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
1936 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1937 [ out ] uint32
*lpdwGrantedAccess
,
1938 [ out ] WERROR
*Status
,
1939 [ out ] WERROR
*rpc_status
1943 clusapi_OpenResourceEx
(
1944 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
1945 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1946 [ out ] uint32
*lpdwGrantedAccess
,
1947 [ out ] WERROR
*Status
,
1948 [ out ] WERROR
*rpc_status
,
1949 [ out ] HRES_RPC
*hResource
1956 clusapi_OpenNetworkEx
(
1957 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1958 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1959 [ out ] uint32
*lpdwGrantedAccess
,
1960 [ out ] WERROR
*Status
,
1961 [ out ] WERROR
*rpc_status
1965 clusapi_OpenNetworkEx
(
1966 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1967 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1968 [ out ] uint32
*lpdwGrantedAccess
,
1969 [ out ] WERROR
*Status
,
1970 [ out ] WERROR
*rpc_status
,
1971 [ out ] HNETWORK_RPC
*hNetwork
1978 clusapi_OpenNetInterfaceEx
(
1979 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1980 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1981 [ out ] uint32
*lpdwGrantedAccess
,
1982 [ out ] WERROR
*Status
,
1983 [ out ] WERROR
*rpc_status
1987 clusapi_OpenNetInterfaceEx
(
1988 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1989 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1990 [ out ] uint32
*lpdwGrantedAccess
,
1991 [ out ] WERROR
*Status
,
1992 [ out ] WERROR
*rpc_status
,
1993 [ out ] HNETINTERFACE_RPC
*hNetInterface
2000 clusapi_ChangeCsvState
(
2001 [ in ] HRES_RPC hResource
,
2002 [ in ] uint32 dwState
,
2003 [ out ] WERROR
*rpc_status
2010 clusapi_CreateNodeEnumEx
(
2011 [in] HNODE_RPC hNode
,
2013 [in] uint32 dwOptions
,
2014 [out] ENUM_LIST
**ReturnIdEnum
,
2015 [out] ENUM_LIST
**ReturnNameEnum
,
2016 [out] WERROR
* rpc_status
2023 clusapi_CreateEnumEx
(
2024 [in] HCLUSTER_RPC hCluster
,
2025 [in] ClusterEnumType dwType
,
2026 [in] uint32 dwOptions
,
2027 [out] ENUM_LIST
**ReturnIdEnum
,
2028 [out] ENUM_LIST
**ReturnNameEnum
,
2029 [out] WERROR
* rpc_status
2036 clusapi_PauseNodeEx
(
2037 [ in ] HNODE_RPC hNode
,
2038 [ in ] boolean8 bDrainNode
,
2039 [ in ] uint32 dwPauseFlags
,
2040 [ out ] WERROR
*rpc_status
2047 clusapi_PauseNodeWithDrainTarget
(
2048 [ in ] HNODE_RPC hNode
,
2049 [ in ] uint32 dwPauseFlags
,
2050 [ in ] HNODE_RPC hNodeDrainTarget
,
2051 [ out ] WERROR
*rpc_status
2058 clusapi_ResumeNodeEx
(
2059 [ in ] HNODE_RPC hNode
,
2060 [ in ] uint32 dwResumeFailbackType
,
2061 [ in ] uint32 dwResumeFlagsReserved
,
2062 [ out ] WERROR
*rpc_status
2069 clusapi_CreateGroupEx
(
2070 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
2071 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC
*pGroupInfo
,
2072 [ out ] WERROR
*Status
,
2073 [ out ] WERROR
*rpc_status
2077 clusapi_CreateGroupEx
(
2078 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
2079 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC
*pGroupInfo
,
2080 [ out ] WERROR
*Status
,
2081 [ out ] WERROR
*rpc_status
,
2082 [ out ] HGROUP_RPC
*hGroup
2089 clusapi_OnlineGroupEx
(
2090 [ in ] HGROUP_RPC hGroup
,
2091 [ in ] uint32 dwOnlineFlags
,
2092 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2093 [ in ] uint32 cbInBufferSize
,
2094 [ out ] WERROR
*rpc_status
2101 clusapi_OfflineGroupEx
(
2102 [ in ] HGROUP_RPC hGroup
,
2103 [ in ] uint32 dwOfflineFlags
,
2104 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2105 [ in ] uint32 cbInBufferSize
,
2106 [ out ] WERROR
*rpc_status
2113 clusapi_MoveGroupEx
(
2114 [ in ] HGROUP_RPC hGroup
,
2115 [ in ] uint32 dwMoveFlags
,
2116 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2117 [ in ] uint32 cbInBufferSize
,
2118 [ out ] WERROR
*rpc_status
2125 clusapi_MoveGroupToNodeEx
(
2126 [ in ] HGROUP_RPC hGroup
,
2127 [ in ] HNODE_RPC hNode
,
2128 [ in ] uint32 dwMoveFlags
,
2129 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2130 [ in ] uint32 cbInBufferSize
,
2131 [ out ] WERROR
*rpc_status
2138 clusapi_CancelClusterGroupOperation
(
2139 [ in ] HGROUP_RPC hGroup
,
2140 [ in ] uint32 dwCancelFlags
,
2141 [ out ] WERROR
*rpc_status
2148 clusapi_OnlineResourceEx
(
2149 [ in ] HRES_RPC hResource
,
2150 [ in ] uint32 dwOnlineFlags
,
2151 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2152 [ in ] uint32 cbInBufferSize
,
2153 [ out ] WERROR
*rpc_status
2160 clusapi_OfflineResourceEx
(
2161 [ in ] HRES_RPC hResource
,
2162 [ in ] uint32 dwOfflineFlags
,
2163 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2164 [ in ] uint32 cbInBufferSize
,
2165 [ out ] WERROR
*rpc_status
2168 #define HGENERIC_RPC policy_handle
2170 typedef [context_handle] void *HGENERIC_RPC
;
2174 uint32 dwObjectType
; /* really of type CLUSTER_OBJECT_TYPE_RPC */
2176 } NOTIFY_FILTER_AND_TYPE_RPC
;
2179 NOTIFY_FILTER_AND_TYPE_RPC FilterAndType
;
2180 [ size_is(dwBufferSize
) ] uint8
* buffer
;
2181 uint32 dwBufferSize
;
2182 [string] [charset
(UTF16
)] uint16
*ObjectId
;
2183 [string] [charset
(UTF16
)] uint16
*ParentId
;
2184 [string] [charset
(UTF16
)] uint16
*Name
;
2185 [string] [charset
(UTF16
)] uint16
*Type
;
2186 } NOTIFICATION_DATA_RPC
;
2189 uint32
*dwNotifyKey
;
2190 NOTIFICATION_DATA_RPC NotificationData
;
2197 * Notify interface V2 functions
2201 clusapi_CreateNotifyV2
(
2202 [ out ] WERROR
*rpc_error
,
2203 [ out ] WERROR
*rpc_status
2207 clusapi_CreateNotifyV2
(
2208 [ out ] WERROR
*rpc_error
,
2209 [ out ] WERROR
*rpc_status
,
2210 [ out ] HNOTIFY_RPC
*hNotify
2218 clusapi_AddNotifyV2
(
2219 [ in ] HNOTIFY_RPC hNotify
,
2220 [ in ] HGENERIC_RPC hObject
,
2221 [ in ] NOTIFY_FILTER_AND_TYPE_RPC filter
,
2222 [ in ] uint32 dwNotifyKey
,
2223 [ in ] uint32 dwVersion
,
2224 [ in ] boolean8 isTargetedAtObject
,
2225 [ out ] WERROR
*rpc_status
2232 clusapi_GetNotifyV2
(
2233 [ in ] HNOTIFY_RPC hNotify
,
2234 [ out, size_is(,*dwNumNotifications
) ] NOTIFICATION_RPC
**Notifications
,
2235 [ out ] uint32
*dwNumNotifications
2242 clusapi_QueryAllValues
(
2243 [ in ] HKEY_RPC hKey
,
2244 [ out ] uint32
*pcbData
,
2245 [ out, size_is(1, *pcbData
) ] uint8
** ppData
,
2246 [ out ] WERROR
*rpc_status
2251 uint8 DiskIdBlob
[16];
2258 clusapi_StmFindDisk
(
2259 [ in ] HCLUSTER_RPC hCluster
,
2260 [ in ] uint32 dwFlags
,
2261 [ in, out, unique ] CLUSTER_DISKID
*pDiskId
,
2262 [ in, size_is(uniqueIdSize
), unique ] uint8
*pUniqueId
,
2263 [ in ] uint32 uniqueIdSize
,
2264 [ out, ref, string ] [charset
(UTF16
)] uint16
**ppszDeviceName
,
2265 [ out ] WERROR
*rpc_status
2269 [string] [charset
(UTF16
)] uint16
*pszNodeName
;
2272 [unique, size_is(ResultSize
)] uint8
*pResultData
;
2273 } CLUSTER_MRR_NODE_RESPONSE
;
2277 [size_is(NodeCount
)] CLUSTER_MRR_NODE_RESPONSE
*pNodes
;
2278 } CLUSTER_MRR_RESPONSE
;
2285 [ in ] HCLUSTER_RPC hCluster
,
2286 [ in ] boolean8 fExcludeSelf
,
2287 [ in ] hyper nodeSet
,
2288 [ in ] uint32 dwTimeout
,
2289 [ in ] uint32 dwComponent
,
2290 [ in ] uint32 dwControlCode
,
2291 [ in ] uint32 inSize
,
2292 [ in, unique, size_is(inSize
) ] uint8
*pInData
,
2293 [ out, ref, size_is(1, 1) ] CLUSTER_MRR_RESPONSE
**ppInfo
,
2294 [ out ] WERROR
*rpc_status
2301 clusapi_CreateGroupEnum
(
2302 [ in ] HCLUSTER_RPC hCluster
,
2303 [ in, unique, size_is(cbProperties
)] uint8
* pProperties
,
2304 [ in ] uint32 cbProperties
,
2305 [ in, unique, size_is(cbRoProperties
)] uint8
* pRoProperties
,
2306 [ in ] uint32 cbRoProperties
,
2307 [ out ] GROUP_ENUM_LIST
**ppResultList
,
2308 [ out ] WERROR
*rpc_status
2315 clusapi_CreateResourceEnum
(
2316 [ in ] HCLUSTER_RPC hCluster
,
2317 [ in, unique, size_is(cbProperties
)] uint8
* pProperties
,
2318 [ in ] uint32 cbProperties
,
2319 [ in, unique, size_is(cbRoProperties
)] uint8
* pRoProperties
,
2320 [ in ] uint32 cbRoProperties
,
2321 [ out ] RESOURCE_ENUM_LIST
**ppResultList
,
2322 [ out ] WERROR
*rpc_status
2329 clusapi_ExecuteReadBatch
(
2330 [ in ] HKEY_RPC hKey
,
2331 [ in ] uint32 cbInData
,
2332 [ in, size_is(cbInData
)] uint8
*lpInData
,
2333 [ out ] uint32
*cbOutData
,
2334 [ out, size_is(,*cbOutData
) ] uint8
** lpOutData
,
2335 [ out ] WERROR
*rpc_status
2342 clusapi_RestartResource
(
2343 [ in ] HRES_RPC hResource
,
2344 [ in ] uint32 dwFlags
,
2345 [ out ] WERROR
*rpc_status
2351 [string] [charset
(UTF16
)] uint16
*Name
;
2352 } NOTIFICATION_DATA_ASYNC_RPC
;
2358 clusapi_GetNotifyAsync
(
2359 [ in ] HNOTIFY_RPC hNotify
,
2360 [ out, size_is(,*dwNumNotifications
) ] NOTIFICATION_DATA_ASYNC_RPC
**Notifications
,
2361 [ out ] uint32
*dwNumNotifications
2365 DiskIdSignature
= 0x00000001,
2366 DiskIdGuid
= 0x00000002,
2367 DiskIdUnKnown
= 0x00001388
2368 } CLUSDSK_DISKID_ENUM
;
2372 CLUSDSK_DISKID_ENUM DiskIdType
;
2373 [switch_is(DiskIdType
)] union {
2374 [case(DiskIdSignature
)] uint32 DiskSignature
;
2375 [case(DiskIdGuid
)] GUID DiskGuid
;
2380 CLUSPROP_TYPE_ENDMARK
= 0x0000,
2381 CLUSPROP_TYPE_LIST_VALUE
= 0x0001,
2382 CLUSPROP_TYPE_RESCLASS
= 0x0002,
2383 CLUSPROP_TYPE_NAME
= 0x0004,
2384 CLUSPROP_TYPE_SIGNATURE
= 0x0005,
2385 CLUSPROP_TYPE_SCSIADDRESS
= 0x0006,
2386 CLUSPROP_TYPE_DISK_NUMBER
= 0x0007,
2387 CLUSPROP_TYPE_PARTITION_INFO
= 0x0008,
2388 CLUSPROP_TYPE_DISK_SERIALNUMBER
= 0x000a,
2389 CLUSPROP_TYPE_DISK_GUID
= 0x000b,
2390 CLUSPROP_TYPE_DISK_SIZE
= 0x000c,
2391 CLUSPROP_TYPE_PARTITION_INFO_EX
= 0x000d
2392 } CLUSTER_PROPERTY_TYPE
;
2395 CLUSPROP_FORMAT_UNKNOWN
= 0x0000,
2396 CLUSPROP_FORMAT_BINARY
= 0x0001,
2397 CLUSPROP_FORMAT_DWORD
= 0x0002,
2398 CLUSPROP_FORMAT_SZ
= 0x0003,
2399 CLUSPROP_FORMAT_EXPAND_SZ
= 0x0004,
2400 CLUSPROP_FORMAT_MULTI_SZ
= 0x0005,
2401 CLUSPROP_FORMAT_ULARGE_INTEGER
= 0x0006,
2402 CLUSPROP_FORMAT_LONG
= 0x0007,
2403 CLUSPROP_FORMAT_EXPANDED_SZ
= 0x0008,
2404 CLUSPROP_FORMAT_SECURITY_DESCRIPTOR
= 0x0009,
2405 CLUSPROP_FORMAT_LARGE_INTEGER
= 0x000a,
2406 CLUSPROP_FORMAT_WORD
= 0x000b,
2407 CLUSPROP_FORMAT_FILETIME
= 0x000c
2408 } CLUSTER_PROPERTY_FORMAT
;
2411 CLUS_CHAR_UNKNOWN
= 0x00000000,
2412 CLUS_CHAR_QUORUM
= 0x00000001,
2413 CLUS_CHAR_DELETE_REQUIRES_ALL_NODES
= 0x00000002,
2414 CLUS_CHAR_LOCAL_QUORUM
= 0x00000004,
2415 CLUS_CHAR_BROADCAST_DELETE
= 0x00000020,
2416 CLUS_CHAR_SINGLE_CLUSTER_INSTANCE
= 0x00000040,
2417 CLUS_CHAR_SINGLE_GROUP_INSTANCE
= 0x00000080,
2418 CLUS_CHAR_COEXIST_IN_SHARED_VOLUME_GROUP
= 0x00000100,
2419 CLUS_CHAR_RESERVED1
= 0x00000200,
2420 CLUS_CHAR_MONITOR_DETACH
= 0x00000400,
2421 CLUS_CHAR_RESERVED2
= 0x00000800,
2422 CLUS_CHAR_RESERVED3
= 0x00001000,
2423 CLUS_CHAR_RESERVED4
= 0x00002000
2424 } CLUS_CHARACTERISTICS
;
2427 CLUS_FLAG_CORE
= 0x00000001
2431 MaintenanceModeTypeDisableIsAliveCheck
= 1,
2432 MaintenanceModeTypeOfflineResource
= 2,
2433 MaintenanceModeTypeUnclusterResource
= 3
2434 } MAINTENANCE_MODE_TYPE
;
2437 CLUSTER_CHANGE_NODE_STATE
= 0x00000001,
2438 CLUSTER_CHANGE_NODE_DELETED
= 0x00000002,
2439 CLUSTER_CHANGE_NODE_ADDED
= 0x00000004,
2440 CLUSTER_CHANGE_NODE_PROPERTY
= 0x00000008,
2441 CLUSTER_CHANGE_REGISTRY_NAME
= 0x00000010,
2442 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES
= 0x00000020,
2443 CLUSTER_CHANGE_REGISTRY_VALUE
= 0x00000040,
2444 CLUSTER_CHANGE_REGISTRY_SUBTREE
= 0x00000080,
2445 CLUSTER_CHANGE_RESOURCE_STATE
= 0x00000100,
2446 CLUSTER_CHANGE_RESOURCE_DELETED
= 0x00000200,
2447 CLUSTER_CHANGE_RESOURCE_ADDED
= 0x00000400,
2448 CLUSTER_CHANGE_RESOURCE_PROPERTY
= 0x00000800,
2449 CLUSTER_CHANGE_GROUP_STATE
= 0x00001000,
2450 CLUSTER_CHANGE_GROUP_DELETED
= 0x00002000,
2451 CLUSTER_CHANGE_GROUP_ADDED
= 0x00004000,
2452 CLUSTER_CHANGE_GROUP_PROPERTY
= 0x00008000,
2453 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED
= 0x00010000,
2454 CLUSTER_CHANGE_RESOURCE_TYPE_ADDED
= 0x00020000,
2455 CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY
= 0x00040000,
2456 CLUSTER_CHANGE_CLUSTER_RECONNECT
= 0x00080000,
2457 CLUSTER_CHANGE_NETWORK_STATE
= 0x00100000,
2458 CLUSTER_CHANGE_NETWORK_DELETED
= 0x00200000,
2459 CLUSTER_CHANGE_NETWORK_ADDED
= 0x00400000,
2460 CLUSTER_CHANGE_NETWORK_PROPERTY
= 0x00800000,
2461 CLUSTER_CHANGE_NETINTERFACE_STATE
= 0x01000000,
2462 CLUSTER_CHANGE_NETINTERFACE_DELETED
= 0x02000000,
2463 CLUSTER_CHANGE_NETINTERFACE_ADDED
= 0x04000000,
2464 CLUSTER_CHANGE_NETINTERFACE_PROPERTY
= 0x08000000,
2465 CLUSTER_CHANGE_QUORUM_STATE
= 0x10000000,
2466 CLUSTER_CHANGE_CLUSTER_STATE
= 0x20000000,
2467 CLUSTER_CHANGE_CLUSTER_PROPERTY
= 0x40000000,
2468 CLUSTER_CHANGE_HANDLE_CLOSE
= 0x80000000
2472 CLUSREG_SET_VALUE
= 1,
2473 CLUSREG_CREATE_KEY
= 2,
2474 CLUSREG_DELETE_KEY
= 3,
2475 CLUSREG_DELETE_VALUE
= 4,
2476 CLUSREG_VALUE_DELETED
= 6,
2477 CLUSREG_READ_KEY
= 7,
2478 CLUSREG_READ_VALUE
= 8,
2479 CLUSREG_READ_ERROR
= 9
2480 } CLUSTER_REG_BATCH_COMMAND
;
2483 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES
= 1
2484 } IDL_CLUSTER_SET_PASSWORD_FLAGS
;
2487 CLUSTER_QUORUM_MAINTAINED
= 0,
2488 CLUSTER_QUORUM_LOST
= 1
2489 } CLUSTER_QUORUM_VALUE
;
2492 CLUSTER_OBJECT_TYPE_CLUSTER
= 0x00000001,
2493 CLUSTER_OBJECT_TYPE_GROUP
= 0x00000002,
2494 CLUSTER_OBJECT_TYPE_RESOURCE
= 0x00000003,
2495 CLUSTER_OBJECT_TYPE_RESOURCE_TYPE
= 0x00000004,
2496 CLUSTER_OBJECT_TYPE_NETWORK_INTERFACE
= 0x00000005,
2497 CLUSTER_OBJECT_TYPE_NETWORK
= 0x00000006,
2498 CLUSTER_OBJECT_TYPE_NODE
= 0x00000007,
2499 CLUSTER_OBJECT_TYPE_REGISTRY
= 0x00000008,
2500 CLUSTER_OBJECT_TYPE_QUORUM
= 0x00000009,
2501 CLUSTER_OBJECT_TYPE_SHARED_VOLUME
= 0x0000000a
2502 } CLUSTER_OBJECT_TYPE
;
2505 CLUSTER_CHANGE_CLUSTER_RECONNECT_V2
= 0x00000001,
2506 CLUSTER_CHANGE_CLUSTER_STATE_V2
= 0x00000002,
2507 CLUSTER_CHANGE_CLUSTER_GROUP_ADDED_V2
= 0x00000004,
2508 CLUSTER_CHANGE_CLUSTER_HANDLE_CLOSE_V2
= 0x00000008,
2509 CLUSTER_CHANGE_CLUSTER_NETWORK_ADDED_V2
= 0x00000010,
2510 CLUSTER_CHANGE_CLUSTER_NODE_ADDED_V2
= 0x00000020,
2511 CLUSTER_CHANGE_CLUSTER_RESOURCE_TYPE_ADDED_V2
= 0x00000040,
2512 CLUSTER_CHANGE_CLUSTER_COMMON_PROPERTY_V2
= 0x00000080,
2513 CLUSTER_CHANGE_CLUSTER_PRIVATE_PROPERTY_V2
= 0x00000100,
2514 CLUSTER_CHANGE_CLUSTER_LOST_NOTIFICATIONS_V2
= 0x00000200,
2515 CLUSTER_CHANGE_CLUSTER_RENAME_V2
= 0x00000400
2516 } CLUSTER_CHANGE_CLUSTER_V2
;
2519 CLUSTER_CHANGE_GROUP_DELETED_V2
= 0x00000001,
2520 CLUSTER_CHANGE_GROUP_COMMON_PROPERTY_V2
= 0x00000002,
2521 CLUSTER_CHANGE_GROUP_PRIVATE_PROPERTY_V2
= 0x00000004,
2522 CLUSTER_CHANGE_GROUP_STATE_V2
= 0x00000008,
2523 CLUSTER_CHANGE_GROUP_OWNER_NODE_V2
= 0x00000010,
2524 CLUSTER_CHANGE_GROUP_PREFERRED_OWNERS_V2
= 0x00000020,
2525 CLUSTER_CHANGE_GROUP_RESOURCE_ADDED_V2
= 0x00000040,
2526 CLUSTER_CHANGE_GROUP_RESOURCE_GAINED_V2
= 0x00000080,
2527 CLUSTER_CHANGE_GROUP_RESOURCE_LOST_V2
= 0x00000100,
2528 CLUSTER_CHANGE_GROUP_HANDLE_CLOSE_V2
= 0x00000200
2529 } CLUSTER_CHANGE_GROUP_V2
;
2532 CLUSTER_CHANGE_RESOURCE_COMMON_PROPERTY_V2
= 0x00000001,
2533 CLUSTER_CHANGE_RESOURCE_PRIVATE_PROPERTY_V2
= 0x00000002,
2534 CLUSTER_CHANGE_RESOURCE_STATE_V2
= 0x00000004,
2535 CLUSTER_CHANGE_RESOURCE_OWNER_GROUP_V2
= 0x00000008,
2536 CLUSTER_CHANGE_RESOURCE_DEPENDENCIES_V2
= 0x00000010,
2537 CLUSTER_CHANGE_RESOURCE_DEPENDENTS_V2
= 0x00000020,
2538 CLUSTER_CHANGE_RESOURCE_POSSIBLE_OWNERS_V2
= 0x00000040,
2539 CLUSTER_CHANGE_RESOURCE_DELETED_V2
= 0x00000080,
2540 CLUSTER_CHANGE_RESOURCE_DLL_UPGRADED_V2
= 0x00000100,
2541 CLUSTER_CHANGE_RESOURCE_HANDLE_CLOSE_V2
= 0x00000200
2542 } CLUSTER_CHANGE_RESOURCE_V2
;
2545 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED_V2
= 0x00000001,
2546 CLUSTER_CHANGE_RESOURCE_TYPE_COMMON_PROPERTY_V2
= 0x00000002,
2547 CLUSTER_CHANGE_RESOURCE_TYPE_PRIVATE_PROPERTY_V2
= 0x00000004,
2548 CLUSTER_CHANGE_RESOURCE_TYPE_POSSIBLE_OWNERS_V2
= 0x00000008,
2549 CLUSTER_CHANGE_RESOURCE_TYPE_DLL_UPGRADED_V2
= 0x00000010
2550 } CHANGE_RESOURCE_TYPE_V2
;
2553 CLUSTER_CHANGE_NETINTERFACE_DELETED_V2
= 0x00000001,
2554 CLUSTER_CHANGE_NETINTERFACE_COMMON_PROPERTY_V2
= 0x00000002,
2555 CLUSTER_CHANGE_NETINTERFACE_PRIVATE_PROPERTY_V2
= 0x00000004,
2556 CLUSTER_CHANGE_NETINTERFACE_STATE_V2
= 0x00000008,
2557 CLUSTER_CHANGE_NETINTERFACE_HANDLE_CLOSE_V2
= 0x00000010
2558 } CLUSTER_CHANGE_NETINTERFACE_V2
;
2561 CLUSTER_CHANGE_NETWORK_DELETED_V2
= 0x00000001,
2562 CLUSTER_CHANGE_NETWORK_COMMON_PROPERTY_V2
= 0x00000002,
2563 CLUSTER_CHANGE_NETWORK_PRIVATE_PROPERTY_V2
= 0x00000004,
2564 CLUSTER_CHANGE_NETWORK_STATE_V2
= 0x00000008,
2565 CLUSTER_CHANGE_NETWORK_HANDLE_CLOSE_V2
= 0x00000010
2566 } CLUSTER_CHANGE_NETWORK_V2
;
2569 CLUSTER_CHANGE_NODE_NETINTERFACE_ADDED_V2
= 0x00000001,
2570 CLUSTER_CHANGE_NODE_DELETED_V2
= 0x00000002,
2571 CLUSTER_CHANGE_NODE_COMMON_PROPERTY_V2
= 0x00000004,
2572 CLUSTER_CHANGE_NODE_PRIVATE_PROPERTY_V2
= 0x00000008,
2573 CLUSTER_CHANGE_NODE_STATE_V2
= 0x00000010,
2574 CLUSTER_CHANGE_NODE_GROUP_GAINED_V2
= 0x00000020,
2575 CLUSTER_CHANGE_NODE_GROUP_LOST_V2
= 0x00000040,
2576 CLUSTER_CHANGE_NODE_HANDLE_CLOSE_V2
= 0x00000080
2577 } CLUSTER_CHANGE_NODE_V2
;
2580 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES_V2
= 0x00000001,
2581 CLUSTER_CHANGE_REGISTRY_NAME_V2
= 0x00000002,
2582 CLUSTER_CHANGE_REGISTRY_SUBTREE_V2
= 0x00000004,
2583 CLUSTER_CHANGE_REGISTRY_VALUE_V2
= 0x00000008,
2584 CLUSTER_CHANGE_REGISTRY_HANDLE_CLOSE_V2
= 0x00000010
2585 } CLUSTER_CHANGE_REGISTRY_V2
;
2588 CLUSTER_CHANGE_QUORUM_STATE_V2
= 0x00000001
2589 } CLUSTER_CHANGE_QUORUM_V2
;
2592 CLUSTER_CHANGE_SHARED_VOLUME_STATE_V2
= 0x00000001
2593 } CLUSTER_CHANGE_SHARED_VOLUME_V2
;
2596 DiskIdSignature
= 0x00000001,
2597 DiskIdGuid
= 0x00000002,
2598 DiskIdUnKnown
= 0x00001388
2599 } CLUSDSK_DISKID_ENUM
;