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)")
13 #define MAX_CLUSTER_CONTROL_CODE_BUFFER_SIZE
0x7FFFFFFF
18 * pidl does not yet have a real [context_handle] implementation, so we
19 * just use some defines here.
22 typedef [context_handle] void *HCLUSTER_RPC
;
23 typedef [context_handle] void *HNODE_RPC
;
24 typedef [context_handle] void *HGROUP_RPC
;
25 typedef [context_handle] void *HRES_RPC
;
26 typedef [context_handle] void *HKEY_RPC
;
27 typedef [context_handle] void *HNOTIFY_RPC
;
28 typedef [context_handle] void *HNETWORK_RPC
;
29 typedef [context_handle] void *HNETINTERFACE_RPC
;
30 typedef [context_handle] void *HBATCH_PORT_RPC
;
32 #define HCLUSTER_RPC policy_handle
33 #define HNODE_RPC policy_handle
34 #define HGROUP_RPC policy_handle
35 #define HRES_RPC policy_handle
36 #define HKEY_RPC policy_handle
37 #define HNOTIFY_RPC policy_handle
38 #define HNETWORK_RPC policy_handle
39 #define HNETINTERFACE_RPC policy_handle
40 #define HBATCH_PORT_RPC policy_handle
44 [ size_is( cbInSecurityDescriptor
), length_is( cbOutSecurityDescriptor
) ] uint8
*lpSecurityDescriptor
;
45 uint32 cbInSecurityDescriptor
;
46 uint32 cbOutSecurityDescriptor
;
47 } RPC_SECURITY_DESCRIPTOR
;
51 RPC_SECURITY_DESCRIPTOR RpcSecurityDescriptor
;
53 } RPC_SECURITY_ATTRIBUTES
;
56 [value
(20)] uint32 dwSize
;
57 uint32 dwClusterHighestVersion
;
58 uint32 dwClusterLowestVersion
;
61 } CLUSTER_OPERATIONAL_VERSION_INFO
;
65 boolean8 SetAttempted
;
67 } IDL_CLUSTER_SET_PASSWORD_STATUS
;
70 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES
= 1
71 } IDL_CLUSTER_SET_PASSWORD_FLAGS
;
76 } CLUSTER_CREATE_GROUP_INFO_RPC
;
83 * pidl cannot generate code for functions that return structures in
84 * IDL, therefore pretend the function is void and add the returned
85 * structure as an out parameter. This is what we do with pretty much
86 * all the Open calls right now in this interface - gd
91 [ out ] WERROR
*Status
96 [ out ] WERROR
*Status
,
97 [ out ] HCLUSTER_RPC
*Cluster
105 clusapi_CloseCluster
(
106 [ in, out ] HCLUSTER_RPC
*Cluster
113 clusapi_SetClusterName
(
114 [ in, string ] [charset
(UTF16
)] uint16
*NewClusterName
,
115 [ out ] WERROR
*rpc_status
122 clusapi_GetClusterName
(
123 [ out, string ] [charset
(UTF16
)] uint16
**ClusterName
,
124 [ out, string ] [charset
(UTF16
)] uint16
**NodeName
131 clusapi_GetClusterVersion
(
132 [ out ] uint16
*lpwMajorVersion
,
133 [ out ] uint16
*lpwMinorVersion
,
134 [ out ] uint16
*lpwBuildNumber
,
135 [ out, string ] [charset
(UTF16
)] uint16
**lpszVendorId
,
136 [ out, string ] [charset
(UTF16
)] uint16
**lpszCSDVersion
143 clusapi_GetQuorumResource
(
144 [ out, string ] [charset
(UTF16
)] uint16
**lpszResourceName
,
145 [ out, string ] [charset
(UTF16
)] uint16
**lpszDeviceName
,
146 [ out ] uint32
*pdwMaxQuorumLogSize
,
147 [ out ] WERROR
*rpc_status
154 clusapi_SetQuorumResource
(
155 [ in ] HRES_RPC hResource
,
156 [ in, string ] [charset
(UTF16
)] uint16
*lpszDeviceName
,
157 [ in ] uint32 dwMaxQuorumLogSize
,
158 [ out ] WERROR
*rpc_status
161 typedef [bitmap32bit
] bitmap
{
162 CLUSTER_ENUM_NODE
= 0x00000001,
163 CLUSTER_ENUM_RESTYPE
= 0x00000002,
164 CLUSTER_ENUM_RESOURCE
= 0x00000004,
165 CLUSTER_ENUM_GROUP
= 0x00000008,
166 CLUSTER_ENUM_NETWORK
= 0x00000010,
167 CLUSTER_ENUM_NETINTERFACE
= 0x00000020,
168 CLUSTER_ENUM_INTERNAL_NETWORK
= 0x80000000,
169 CLUSTER_ENUM_SHARED_VOLUME_RESOURCE
= 0x40000000
173 ClusterEnumType Type
;
174 [string] [charset
(UTF16
)] uint16
*Name
;
179 [size_is(EntryCount
)] ENUM_ENTRY
Entry[*];
183 [string] [charset
(UTF16
)] uint16
*Name
;
184 [string] [charset
(UTF16
)] uint16
*Id;
186 [string] [charset
(UTF16
)] uint16
*Owner
;
189 [size_is(cbProperties
)] uint8
* Properties
;
190 uint32 cbRoProperties
;
191 [size_is(cbRoProperties
)] uint8
* RoProperties
;
195 [string] [charset
(UTF16
)] uint16
*Name
;
196 [string] [charset
(UTF16
)] uint16
*Id;
197 [string] [charset
(UTF16
)] uint16
*OwnerName
;
198 [string] [charset
(UTF16
)] uint16
*OwnerId
;
200 [size_is(cbProperties
)] uint8
* Properties
;
201 uint32 cbRoProperties
;
202 [size_is(cbRoProperties
)] uint8
* RoProperties
;
203 } RESOURCE_ENUM_ENTRY
;
207 [size_is(EntryCount
)] GROUP_ENUM_ENTRY
Entry[*];
212 [size_is(EntryCount
)] RESOURCE_ENUM_ENTRY
Entry[*];
213 } RESOURCE_ENUM_LIST
;
220 [ in ] ClusterEnumType dwType
,
221 [ out ] ENUM_LIST
**ReturnEnum
,
222 [ out ] WERROR
*rpc_status
230 clusapi_OpenResource
(
231 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
232 [ out ] WERROR
*Status
,
233 [ out ] WERROR
*rpc_status
237 clusapi_OpenResource
(
238 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
239 [ out ] WERROR
*Status
,
240 [ out ] WERROR
*rpc_status
,
241 [ out ] HRES_RPC
*hResource
247 typedef [v1_enum] enum {
248 CLUSTER_RESOURCE_DEFAULT_MONITOR
= 0x00000000,
249 CLUSTER_RESOURCE_SEPARATE_MONITOR
= 0x00000001
250 } clusapi_CreateResourceFlags
;
254 clusapi_CreateResource
(
255 [ in ] HGROUP_RPC hGroup
,
256 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
257 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceType
,
258 [ in ] clusapi_CreateResourceFlags dwFlags
,
259 [ out ] WERROR
*Status
,
260 [ out ] WERROR
*rpc_status
264 clusapi_CreateResource
(
265 [ in ] HGROUP_RPC hGroup
,
266 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
267 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceType
,
268 [ in ] clusapi_CreateResourceFlags dwFlags
,
269 [ out ] WERROR
*Status
,
270 [ out ] WERROR
*rpc_status
,
271 [ out ] HRES_RPC
*hResource
278 clusapi_DeleteResource
(
279 [ in ] HRES_RPC hResource
,
280 [ out ] WERROR
*rpc_status
287 clusapi_CloseResource
(
288 [ in, out ] HRES_RPC
*Resource
294 typedef [v1_enum] enum {
295 ClusterResourceInitializing
= 0x00000001,
296 ClusterResourceOnline
= 0x00000002,
297 ClusterResourceOffline
= 0x00000003,
298 ClusterResourceFailed
= 0x00000004,
299 ClusterResourceOnlinePending
= 0x00000081,
300 ClusterResourceOfflinePending
= 0x00000082,
301 ClusterResourceStateUnknown
= 0xFFFFFFFF
302 } clusapi_ClusterResourceState
;
305 clusapi_GetResourceState
(
306 [ in ] HRES_RPC hResource
,
307 [ out ] clusapi_ClusterResourceState
*State
,
308 [ out, string ] [charset
(UTF16
)] uint16
**NodeName
,
309 [ out, string ] [charset
(UTF16
)] uint16
**GroupName
,
310 [ out ] WERROR
*rpc_status
317 clusapi_SetResourceName
(
318 [ in ] HRES_RPC hResource
,
319 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
320 [ out ] WERROR
*rpc_status
327 clusapi_GetResourceId
(
328 [ in ] HRES_RPC hResource
,
329 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
330 [ out ] WERROR
*rpc_status
337 clusapi_GetResourceType
(
338 [ in ] HRES_RPC hResource
,
339 [ out, string ] [charset
(UTF16
)] uint16
**lpszResourceType
,
340 [ out ] WERROR
*rpc_status
347 clusapi_FailResource
(
348 [ in ] HRES_RPC hResource
,
349 [ out ] WERROR
*rpc_status
356 clusapi_OnlineResource
(
357 [ in ] HRES_RPC hResource
,
358 [ out ] WERROR
*rpc_status
365 clusapi_OfflineResource
(
366 [ in ] HRES_RPC hResource
,
367 [ out ] WERROR
*rpc_status
374 clusapi_AddResourceDependency
(
375 [ in ] HRES_RPC hResource
,
376 [ in ] HRES_RPC hDependsOn
,
377 [ out ] WERROR
*rpc_status
384 clusapi_RemoveResourceDependency
(
385 [ in ] HRES_RPC hResource
,
386 [ in ] HRES_RPC hDependsOn
,
387 [ out ] WERROR
*rpc_status
394 clusapi_CanResourceBeDependent
(
395 [ in ] HRES_RPC hResource
,
396 [ in ] HRES_RPC hResourceDependent
,
397 [ out ] WERROR
*rpc_status
404 clusapi_CreateResEnum
(
405 [ in ] HRES_RPC hResource
,
406 [ in ] uint32 dwType
,
407 [ out ] ENUM_LIST
**ReturnEnum
,
408 [ out ] WERROR
*rpc_status
415 clusapi_AddResourceNode
(
416 [ in ] HRES_RPC hResource
,
417 [ in ] HNODE_RPC hNode
,
418 [ out ] WERROR
*rpc_status
425 clusapi_RemoveResourceNode
(
426 [ in ] HRES_RPC hResource
,
427 [ in ] HNODE_RPC hNode
,
428 [ out ] WERROR
*rpc_status
435 clusapi_ChangeResourceGroup
(
436 [ in ] HRES_RPC hResource
,
437 [ in ] HGROUP_RPC hGroup
,
438 [ out ] WERROR
*rpc_status
445 clusapi_CreateResourceType
(
446 [ in, string ] [charset
(UTF16
)] uint16
*lpszTypeName
,
447 [ in, string ] [charset
(UTF16
)] uint16
*lpszDisplayName
,
448 [ in, string ] [charset
(UTF16
)] uint16
*lpszDllName
,
449 [ in ] uint32 dwLooksAlive
,
450 [ in ] uint32 dwIsAlive
,
451 [ out ] WERROR
*rpc_status
458 clusapi_DeleteResourceType
(
459 [ in, string ] [charset
(UTF16
)] uint16
*lpszTypeName
,
460 [ out ] WERROR
*rpc_status
468 [ in ] winreg_AccessMask samDesired
,
469 [ out ] WERROR
*Status
,
470 [ out ] WERROR
*rpc_status
475 [ in ] winreg_AccessMask samDesired
,
476 [ out ] WERROR
*Status
,
477 [ out ] WERROR
*rpc_status
,
478 [ out ] HKEY_RPC
*phKey
486 [ in ] HKEY_RPC hKey
,
487 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
488 [ in ] uint32 dwOptions
,
489 [ in ] winreg_AccessMask samDesired
,
490 [ in, unique ] RPC_SECURITY_ATTRIBUTES
*lpSecurityAttributes
,
491 [ out ] uint32
*lpdwDisposition
,
492 [ out ] WERROR
*Status
,
493 [ out ] WERROR
*rpc_status
498 [ in ] HKEY_RPC hKey
,
499 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
500 [ in ] uint32 dwOptions
,
501 [ in ] winreg_AccessMask samDesired
,
502 [ in, unique ] RPC_SECURITY_ATTRIBUTES
*lpSecurityAttributes
,
503 [ out ] uint32
*lpdwDisposition
,
504 [ out ] WERROR
*Status
,
505 [ out ] WERROR
*rpc_status
,
506 [ out ] HKEY_RPC
*phKey
514 [ in ] HKEY_RPC hKey
,
515 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
516 [ in ] winreg_AccessMask samDesired
,
517 [ out ] WERROR
*Status
,
518 [ out ] WERROR
*rpc_status
523 [ in ] HKEY_RPC hKey
,
524 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
525 [ in ] winreg_AccessMask samDesired
,
526 [ out ] WERROR
*Status
,
527 [ out ] WERROR
*rpc_status
,
528 [ out ] HKEY_RPC
*phKey
536 [ in ] HKEY_RPC hKey
,
537 [ in ] uint32 dwIndex
,
538 [ out, string ] [charset
(UTF16
)] uint16
**KeyName
,
539 [ out ] NTTIME
*lpftLastWriteTime
,
540 [ out ] WERROR
*rpc_status
548 [ in ] HKEY_RPC hKey
,
549 [ in, string ] [charset
(UTF16
)] uint16
*lpValueName
,
550 [ in ] winreg_Type dwType
,
551 [ in, size_is(cbData
) ] uint8
*lpData
,
552 [ in ] uint32 cbData
,
553 [ out ] WERROR
*rpc_status
561 [ in ] HKEY_RPC hKey
,
562 [ in, string ] [charset
(UTF16
)] uint16
*lpValueName
,
563 [ out ] WERROR
*rpc_status
571 [ in ] HKEY_RPC hKey
,
572 [ in, string ] [charset
(UTF16
)] uint16
*lpValueName
,
573 [ out ] winreg_Type
*lpValueType
,
574 [ out, size_is(cbData
) ] uint8
*lpData
,
575 [ in ] uint32 cbData
,
576 [ out ] uint32
*lpcbRequired
,
577 [ out ] WERROR
*rpc_status
585 [ in ] HKEY_RPC hKey
,
586 [ in, string ] [charset
(UTF16
)] uint16
*lpSubKey
,
587 [ out ] WERROR
*rpc_status
595 [ in ] HKEY_RPC hKey
,
596 [ in ] uint32 dwIndex
,
597 [ out, string ] [charset
(UTF16
)] uint16
**lpValueName
,
598 [ out ] winreg_Type
*lpType
,
599 [ out, size_is(*lpcbData
) ] uint8
*lpData
,
600 [ in, out ] uint32
*lpcbData
,
601 [ out ] uint32
*TotalSize
,
602 [ out ] WERROR
*rpc_status
610 [ in, out ] HKEY_RPC
*pKey
617 clusapi_QueryInfoKey
(
618 [ in ] HKEY_RPC hKey
,
619 [ out ] uint32
*lpcSubKeys
,
620 [ out ] uint32
*lpcbMaxSubKeyLen
,
621 [ out ] uint32
*lpcValues
,
622 [ out ] uint32
*lpcbMaxValueNameLen
,
623 [ out ] uint32
*lpcbMaxValueLen
,
624 [ out ] uint32
*lpcbSecurityDescriptor
,
625 [ out ] NTTIME
*lpftLastWriteTime
,
626 [ out ] WERROR
*rpc_status
633 clusapi_SetKeySecurity
(
634 [ in ] HKEY_RPC hKey
,
635 [ in ] uint32 SecurityInformation
,
636 [ in ] RPC_SECURITY_DESCRIPTOR
*pRpcSecurityDescriptor
,
637 [ out ] WERROR
*rpc_status
644 clusapi_GetKeySecurity
(
645 [ in ] HKEY_RPC hKey
,
646 [ in ] uint32 SecurityInformation
,
647 [ in, out ] RPC_SECURITY_DESCRIPTOR
*pRpcSecurityDescriptor
,
648 [ out ] WERROR
*rpc_status
656 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
657 [ out ] WERROR
*Status
,
658 [ out ] WERROR
*rpc_status
663 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
664 [ out ] WERROR
*Status
,
665 [ out ] WERROR
*rpc_status
,
666 [ out ] HGROUP_RPC
*hGroup
674 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
675 [ out ] WERROR
*Status
,
676 [ out ] WERROR
*rpc_status
681 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
682 [ out ] WERROR
*Status
,
683 [ out ] WERROR
*rpc_status
,
684 [ out ] HGROUP_RPC
*hGroup
692 [ in ] HGROUP_RPC Group
,
693 [ in ] boolean8 force
,
694 [ out ] WERROR
*rpc_status
702 [ in, out ] HGROUP_RPC
*Group
708 typedef [v1_enum] enum {
709 ClusterGroupOnline
= 0x00000000,
710 ClusterGroupOffline
= 0x00000001,
711 ClusterGroupFailed
= 0x00000002,
712 ClusterGroupPartialOnline
= 0x00000003,
713 ClusterGroupPending
= 0x00000004,
714 ClusterGroupStateUnknown
= 0xFFFFFFFF
715 } clusapi_ClusterGroupState
;
718 clusapi_GetGroupState
(
719 [ in ] HGROUP_RPC hGroup
,
720 [ out ] clusapi_ClusterGroupState
*State
,
721 [ out, string ] [charset
(UTF16
)] uint16
**NodeName
,
722 [ out ] WERROR
*rpc_status
729 clusapi_SetGroupName
(
730 [ in ] HGROUP_RPC hGroup
,
731 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
732 [ out ] WERROR
*rpc_status
740 [ in ] HGROUP_RPC hGroup
,
741 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
742 [ out ] WERROR
*rpc_status
750 [ in ] HNODE_RPC hNode
,
751 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
752 [ out ] WERROR
*rpc_status
760 [ in ] HGROUP_RPC hGroup
,
761 [ out ] WERROR
*rpc_status
768 clusapi_OfflineGroup
(
769 [ in ] HGROUP_RPC hGroup
,
770 [ out ] WERROR
*rpc_status
778 [ in ] HGROUP_RPC hGroup
,
779 [ out ] WERROR
*rpc_status
786 clusapi_MoveGroupToNode
(
787 [ in ] HGROUP_RPC hGroup
,
788 [ in ] HNODE_RPC hNode
,
789 [ out ] WERROR
*rpc_status
795 typedef [bitmap32bit
] bitmap
{
796 CLUSTER_GROUP_ENUM_CONTAINS
= 0x00000001,
797 CLUSTER_GROUP_ENUM_NODES
= 0x00000002
798 } ClusterGroupEnumType
;
801 clusapi_CreateGroupResourceEnum
(
802 [ in ] HGROUP_RPC hGroup
,
803 [ in ] ClusterGroupEnumType dwType
,
804 [ out ] ENUM_LIST
**ReturnEnum
,
805 [ out ] WERROR
*rpc_status
812 clusapi_SetGroupNodeList
(
813 [ in ] HGROUP_RPC hGroup
,
814 [ in, unique, size_is(cchListSize
) ] uint16
*multiSzNodeList
,
815 [ in ] uint32 cchListSize
,
816 [ out ] WERROR
*rpc_status
823 clusapi_CreateNotify
(
824 [ out ] WERROR
*Status
,
825 [ out ] WERROR
*rpc_status
829 clusapi_CreateNotify
(
830 [ out ] WERROR
*Status
,
831 [ out ] WERROR
*rpc_status
,
832 [ out ] HNOTIFY_RPC
*hNotify
840 [ in, out ] HNOTIFY_RPC
*Notify
847 clusapi_AddNotifyCluster
(
848 [ in ] HNOTIFY_RPC hNotify
,
849 [ in ] HCLUSTER_RPC hCluster
,
850 [ in ] uint32 dwFilter
,
851 [ in ] uint32 dwNotifyKey
,
852 [ out ] WERROR
*rpc_status
859 clusapi_AddNotifyNode
(
860 [ in ] HNOTIFY_RPC hNotify
,
861 [ in ] HNODE_RPC hNode
,
862 [ in ] uint32 dwFilter
,
863 [ in ] uint32 dwNotifyKey
,
864 [ out ] uint32
*dwStateSequence
,
865 [ out ] WERROR
*rpc_status
872 clusapi_AddNotifyGroup
(
873 [ in ] HNOTIFY_RPC hNotify
,
874 [ in ] HGROUP_RPC hGroup
,
875 [ in ] uint32 dwFilter
,
876 [ in ] uint32 dwNotifyKey
,
877 [ out ] uint32
*dwStateSequence
,
878 [ out ] WERROR
*rpc_status
885 clusapi_AddNotifyResource
(
886 [ in ] HNOTIFY_RPC hNotify
,
887 [ in ] HRES_RPC hResource
,
888 [ in ] uint32 dwFilter
,
889 [ in ] uint32 dwNotifyKey
,
890 [ out ] uint32
*dwStateSequence
,
891 [ out ] WERROR
*rpc_status
898 clusapi_AddNotifyKey
(
899 [ in ] HNOTIFY_RPC hNotify
,
900 [ in ] HKEY_RPC hKey
,
901 [ in ] uint32 dwNotifyKey
,
902 [ in ] uint32 Filter
,
903 [ in ] boolean8 WatchSubTree
,
904 [ out ] WERROR
*rpc_status
911 clusapi_ReAddNotifyNode
(
912 [ in ] HNOTIFY_RPC hNotify
,
913 [ in ] HNODE_RPC hNode
,
914 [ in ] uint32 dwFilter
,
915 [ in ] uint32 dwNotifyKey
,
916 [ in ] uint32 StateSequence
,
917 [ out ] WERROR
*rpc_status
924 clusapi_ReAddNotifyGroup
(
925 [ in ] HNOTIFY_RPC hNotify
,
926 [ in ] HGROUP_RPC hGroup
,
927 [ in ] uint32 dwFilter
,
928 [ in ] uint32 dwNotifyKey
,
929 [ in ] uint32 StateSequence
,
930 [ out ] WERROR
*rpc_status
937 clusapi_ReAddNotifyResource
(
938 [ in ] HNOTIFY_RPC hNotify
,
939 [ in ] HRES_RPC hResource
,
940 [ in ] uint32 dwFilter
,
941 [ in ] uint32 dwNotifyKey
,
942 [ in ] uint32 StateSequence
,
943 [ out ] WERROR
*rpc_status
951 [ in ] HNOTIFY_RPC hNotify
,
952 [ out ] uint32
*dwNotifyKey
,
953 [ out ] uint32
*dwFilter
,
954 [ out ] uint32
*dwStateSequence
,
955 [ out, string ] [charset
(UTF16
)] uint16
**Name
,
956 [ out ] WERROR
*rpc_status
964 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
965 [ out ] WERROR
*Status
,
966 [ out ] WERROR
*rpc_status
971 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
972 [ out ] WERROR
*Status
,
973 [ out ] WERROR
*rpc_status
,
974 [ out ] HNODE_RPC
*hNode
982 [ in, out ] HNODE_RPC
*Node
988 typedef [v1_enum] enum {
989 ClusterNodeUp
= 0x00000000,
990 ClusterNodeDown
= 0x00000001,
991 ClusterNodePaused
= 0x00000002,
992 ClusterNodeJoining
= 0x00000003,
993 ClusterNodeStateUnknown
= 0xFFFFFFFF
994 } clusapi_ClusterNodeState
;
997 clusapi_GetNodeState
(
998 [ in ] HNODE_RPC hNode
,
999 [ out ] clusapi_ClusterNodeState
*State
,
1000 [ out ] WERROR
*rpc_status
1008 [ in ] HNODE_RPC hNode
,
1009 [ out ] WERROR
*rpc_status
1017 [ in ] HNODE_RPC hNode
,
1018 [ out ] WERROR
*rpc_status
1026 [ in ] HNODE_RPC hNode
,
1027 [ out ] WERROR
*rpc_status
1034 clusapi_NodeResourceControl
(
1035 [ in ] HRES_RPC hResource
,
1036 [ in ] HNODE_RPC hNode
,
1037 [ in ] uint32 dwControlCode
,
1038 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1039 [ in ] uint32 nInBufferSize
,
1040 [ out, size_is(nOutBufferSize
),
1041 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1042 [ in ] uint32 nOutBufferSize
,
1043 [ out ] uint32
*lpBytesReturned
,
1044 [ out ] uint32
*lpcbRequired
,
1045 [ out ] WERROR
*rpc_status
1051 typedef [v1_enum] enum {
1052 CLUS_RESCLASS_UNKNOWN
= 0x00000000,
1053 CLUS_RESCLASS_STORAGE
= 0x00000001,
1054 CLUS_RESCLASS_NETWORK
= 0x00000002
1055 } clusapi_ResourceClass
;
1057 typedef [public] struct {
1058 clusapi_ResourceClass Class
;
1060 } CLUS_RESOURCE_CLASS_INFO
;
1062 typedef [v1_enum] enum {
1063 CLUSCTL_RESOURCE_UNKNOWN
= 0x01000000,
1064 CLUSCTL_RESOURCE_GET_CHARACTERISTICS
= 0x01000005,
1065 CLUSCTL_RESOURCE_GET_FLAGS
= 0x01000009,
1066 CLUSCTL_RESOURCE_GET_CLASS_INFO
= 0x0100000D,
1067 CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES
= 0x01000011,
1068 CLUSCTL_RESOURCE_GET_NAME
= 0x01000029,
1069 CLUSCTL_RESOURCE_GET_RESOURCE_TYPE
= 0x0100002D,
1070 CLUSCTL_RESOURCE_GET_ID
= 0x01000039,
1071 CLUSCTL_RESOURCE_ENUM_COMMON_PROPERTIES
= 0x01000051,
1072 CLUSCTL_RESOURCE_GET_RO_COMMON_PROPERTIES
= 0x01000055,
1073 CLUSCTL_RESOURCE_GET_COMMON_PROPERTIES
= 0x01000059,
1074 CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES
= 0x0140005E,
1075 CLUSCTL_RESOURCE_VALIDATE_COMMON_PROPERTIES
= 0x01000061,
1076 CLUSCTL_RESOURCE_GET_COMMON_PROPERTY_FMTS
= 0x01000065,
1077 CLUSCTL_RESOURCE_ENUM_PRIVATE_PROPERTIES
= 0x01000079,
1078 CLUSCTL_RESOURCE_GET_RO_PRIVATE_PROPERTIES
= 0x0100007D,
1079 CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES
= 0x01000081,
1080 CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES
= 0x01400086,
1081 CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES
= 0x01000089,
1082 CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTY_FMTS
= 0x0100008D,
1083 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT
= 0x014000A2,
1084 CLUSCTL_RESOURCE_DELETE_REGISTRY_CHECKPOINT
= 0x014000A6,
1085 CLUSCTL_RESOURCE_GET_REGISTRY_CHECKPOINTS
= 0x010000A9,
1086 CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT
= 0x014000AE,
1087 CLUSCTL_RESOURCE_DELETE_CRYPTO_CHECKPOINT
= 0x014000B2,
1088 CLUSCTL_RESOURCE_GET_CRYPTO_CHECKPOINTS
= 0x010000B5,
1089 CLUSCTL_RESOURCE_UPGRADE_DLL
= 0x014000BA,
1090 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_64BIT
= 0x014000BE,
1091 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_32BIT
= 0x014000C2,
1092 CLUSCTL_RESOURCE_GET_NETWORK_NAME
= 0x01000169,
1093 CLUSCTL_RESOURCE_NETNAME_REGISTER_DNS_RECORDS
= 0x01000172,
1094 CLUSCTL_RESOURCE_GET_DNS_NAME
= 0x01000175,
1095 CLUSCTL_RESOURCE_NETNAME_SET_PWD_INFO
= 0x0100017A,
1096 CLUSCTL_RESOURCE_NETNAME_DELETE_CO
= 0x0100017E,
1097 CLUSCTL_RESOURCE_NETNAME_VALIDATE_VCO
= 0x01000181,
1098 CLUSCTL_RESOURCE_NETNAME_RESET_VCO
= 0x01000185,
1099 CLUSCTL_RESOURCE_NETNAME_CREDS_UPDATED
= 0x01c0018a,
1100 CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO
= 0x01000191,
1101 CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID
= 0x01000199,
1102 CLUSCTL_RESOURCE_IPADDRESS_RENEW_LEASE
= 0x014001BE,
1103 CLUSCTL_RESOURCE_IPADDRESS_RELEASE_LEASE
= 0x014001C2,
1104 CLUSCTL_RESOURCE_QUERY_MAINTENANCE_MODE
= 0x010001E1,
1105 CLUSCTL_RESOURCE_SET_MAINTENANCE_MODE
= 0x014001E6,
1106 CLUSCTL_RESOURCE_STORAGE_SET_DRIVELETTER
= 0x014001EA,
1107 CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO_EX
= 0x010001F1,
1108 CLUSCTL_RESOURCE_STORAGE_GET_DIRTY
= 0x01000219,
1109 CLUSCTL_RESOURCE_STORAGE_GET_MOUNTPOINTS
= 0x01000211,
1110 CLUSCTL_RESOURCE_STORAGE_GET_SHARED_VOLUME_INFO
= 0x01000225,
1111 CLUSCTL_RESOURCE_VM_START_MIGRATION
= 0x01600004,
1112 CLUSCTL_RESOURCE_VM_CANCEL_MIGRATION
= 0x01600008,
1113 CLUSCTL_RESOURCE_SET_CSV_MAINTENANCE_MODE
= 0x01400296,
1114 CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO
= 0x0140028a,
1115 CLUSCTL_RESOURCE_DISABLE_SHARED_VOLUME_DIRECTIO
= 0x0140028e,
1116 CLUSCTL_RESOURCE_SET_SHARED_VOLUME_BACKUP_MODE
= 0x0140029a,
1117 CLUSCTL_RESOURCE_GET_RELATED_RESOURCE_NAMES
= 0x01001fad,
1118 CLUSCTL_RESOURCE_POOL_GET_DRIVE_INFO
= 0x010002b5,
1119 CLUSCTL_RESOURCE_CLOUD_WITNESS_UPDATE_TOKEN
= 0x014020e6,
1120 CLUSCTL_RESOURCE_NETNAME_CHECK_OU_PERMISSIONS
= 0x07002121,
1121 CLUSCTL_RESOURCE_NETNAME_CHECK_AD_STATE
= 0x07002125
1122 } clusapi_ResourceControlCode
;
1125 clusapi_ResourceControl
(
1126 [ in ] HRES_RPC hResource
,
1127 [ in ] clusapi_ResourceControlCode dwControlCode
,
1128 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1129 [ in ] uint32 nInBufferSize
,
1130 [ out, size_is(nOutBufferSize
),
1131 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1132 [ in ] uint32 nOutBufferSize
,
1133 [ out ] uint32
*lpBytesReturned
,
1134 [ out ] uint32
*lpcbRequired
,
1135 [ out ] WERROR
*rpc_status
1142 clusapi_NodeResourceTypeControl
(
1143 [ in ] HCLUSTER_RPC hCluster
,
1144 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceTypeName
,
1145 [ in ] HNODE_RPC hNode
,
1146 [ in ] uint32 dwControlCode
,
1147 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1148 [ in ] uint32 nInBufferSize
,
1149 [ out, size_is(nOutBufferSize
),
1150 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1151 [ in ] uint32 nOutBufferSize
,
1152 [ out ] uint32
*lpBytesReturned
,
1153 [ out ] uint32
*lpcbRequired
,
1154 [ out ] WERROR
*rpc_status
1160 typedef [v1_enum] enum {
1161 CLUSCTL_RESOURCE_TYPE_UNKNOWN
= 0x02000000,
1162 CLUSCTL_RESOURCE_TYPE_GET_CHARACTERISTICS
= 0x02000005,
1163 CLUSCTL_RESOURCE_TYPE_GET_FLAGS
= 0x02000009,
1164 CLUSCTL_RESOURCE_TYPE_GET_CLASS_INFO
= 0x0200000D,
1165 CLUSCTL_RESOURCE_TYPE_GET_REQUIRED_DEPENDENCIES
= 0x02000011,
1166 CLUSCTL_RESOURCE_TYPE_GET_ARB_TIMEOUT
= 0x02000015,
1167 CLUSCTL_RESOURCE_TYPE_ENUM_COMMON_PROPERTIES
= 0x02000051,
1168 CLUSCTL_RESOURCE_TYPE_GET_RO_COMMON_PROPERTIES
= 0x02000055,
1169 CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTIES
= 0x02000059,
1170 CLUSCTL_RESOURCE_TYPE_SET_COMMON_PROPERTIES
= 0x0240005E,
1171 CLUSCTL_RESOURCE_TYPE_VALIDATE_COMMON_PROPERTIES
= 0x02000061,
1172 CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTY_FMTS
= 0x02000065,
1173 CLUSCTL_RESOURCE_TYPE_GET_COMMON_RESOURCE_PROPERTY_FMTS
= 0x02000069,
1174 CLUSCTL_RESOURCE_TYPE_ENUM_PRIVATE_PROPERTIES
= 0x02000079,
1175 CLUSCTL_RESOURCE_TYPE_GET_RO_PRIVATE_PROPERTIES
= 0x0200007D,
1176 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTIES
= 0x02000081,
1177 CLUSCTL_RESOURCE_TYPE_SET_PRIVATE_PROPERTIES
= 0x02400086,
1178 CLUSCTL_RESOURCE_TYPE_VALIDATE_PRIVATE_PROPERTIES
= 0x02000089,
1179 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTY_FMTS
= 0x0200008D,
1180 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_RESOURCE_PROPERTY_FMTS
= 0x02000091,
1181 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS
= 0x02000195,
1182 CLUSCTL_RESOURCE_TYPE_NETNAME_VALIDATE_NETNAME
= 0x02000235,
1183 CLUSCTL_RESOURCE_TYPE_VALIDATE_PATH
= 0x02000231,
1184 CLUSCTL_RESOURCE_TYPE_GEN_APP_VALIDATE_DIRECTORY
= 0x02000239,
1185 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DRIVELETTERS
= 0x020001ED,
1186 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX
= 0x020001F5,
1187 CLUSCTL_RESOURCE_TYPE_STORAGE_REMAP_DRIVELETTER
= 0x02000201,
1188 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DISKID
= 0x02000205,
1189 CLUSCTL_RESOURCE_TYPE_STORAGE_IS_CLUSTERABLE
= 0x02000209,
1190 CLUSCTL_RESOURCE_TYPE_STORAGE_RELEASE_OWNERSHIP
= 0x0240020E,
1191 CLUSCTL_RESOURCE_TYPE_STORAGE_IS_CSV_FILE
= 0x1000229,
1192 CLUSCTL_RESOURCE_TYPE_CLOUD_WITNESS_VALIDATE_CREDENTIALS
= 0x020020e1,
1193 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_LOGDISKS
= 0x02002149,
1194 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_TARGET_DATADISKS
= 0x0200214D,
1195 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_ELIGIBLE_SOURCE_DATADISKS
= 0x02002151,
1196 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_REPLICA_VOLUMES
= 0x02002159,
1197 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_LOG_VOLUME
= 0x0200215D,
1198 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_REPLICATED_DISKS
= 0x02002155,
1199 CLUSCTL_RESOURCE_TYPE_REPLICATION_GET_RESOURCE_GROUP
= 0x02002161
1200 } clusapi_ResourceTypeControlCode
;
1203 clusapi_ResourceTypeControl
(
1204 [ in ] HCLUSTER_RPC hCluster
,
1205 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceTypeName
,
1206 [ in ] clusapi_ResourceTypeControlCode dwControlCode
,
1207 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1208 [ in ] uint32 nInBufferSize
,
1209 [ out, size_is(nOutBufferSize
),
1210 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1211 [ in ] uint32 nOutBufferSize
,
1212 [ out ] uint32
*lpBytesReturned
,
1213 [ out ] uint32
*lpcbRequired
,
1214 [ out ] WERROR
*rpc_status
1221 clusapi_NodeGroupControl
(
1222 [ in ] HGROUP_RPC hGroup
,
1223 [ in ] HNODE_RPC hNode
,
1224 [ in ] uint32 dwControlCode
,
1225 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1226 [ in ] uint32 nInBufferSize
,
1227 [ out, size_is(nOutBufferSize
),
1228 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1229 [ in ] uint32 nOutBufferSize
,
1230 [ out ] uint32
*lpBytesReturned
,
1231 [ out ] uint32
*lpcbRequired
,
1232 [ out ] WERROR
*rpc_status
1238 typedef [v1_enum] enum {
1239 CLUSCTL_GROUP_UNKNOWN
= 0x03000000,
1240 CLUSCTL_GROUP_GET_CHARACTERISTICS
= 0x03000005,
1241 CLUSCTL_GROUP_GET_FLAGS
= 0x03000009,
1242 CLUSCTL_GROUP_GET_NAME
= 0x03000029,
1243 CLUSCTL_GROUP_GET_ID
= 0x03000039,
1244 CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES
= 0x03000051,
1245 CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES
= 0x03000055,
1246 CLUSCTL_GROUP_GET_COMMON_PROPERTIES
= 0x03000059,
1247 CLUSCTL_GROUP_SET_COMMON_PROPERTIES
= 0x0340005E,
1248 CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES
= 0x03000061,
1249 CLUSCTL_GROUP_GET_COMMON_PROPERTY_FMTS
= 0x03000065,
1250 CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES
= 0x03000079,
1251 CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES
= 0x0300007D,
1252 CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES
= 0x03000081,
1253 CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES
= 0x03400086,
1254 CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES
= 0x03000089
1255 } clusapi_GroupControlCode
;
1258 clusapi_GroupControl
(
1259 [ in ] HGROUP_RPC hGroup
,
1260 [ in ] clusapi_GroupControlCode dwControlCode
,
1261 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1262 [ in ] uint32 nInBufferSize
,
1263 [ out, size_is(nOutBufferSize
),
1264 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1265 [ in ] uint32 nOutBufferSize
,
1266 [ out ] uint32
*lpBytesReturned
,
1267 [ out ] uint32
*lpcbRequired
,
1268 [ out ] WERROR
*rpc_status
1275 clusapi_NodeNodeControl
(
1276 [ in ] HNODE_RPC hNode
,
1277 [ in ] HNODE_RPC hHostNode
,
1278 [ in ] uint32 dwControlCode
,
1279 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1280 [ in ] uint32 nInBufferSize
,
1281 [ out, size_is(nOutBufferSize
),
1282 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1283 [ in ] uint32 nOutBufferSize
,
1284 [ out ] uint32
*lpBytesReturned
,
1285 [ out ] uint32
*lpcbRequired
,
1286 [ out ] WERROR
*rpc_status
1292 typedef [v1_enum] enum {
1293 CLUSCTL_NODE_UNKNOWN
= 0x04000000,
1294 CLUSCTL_NODE_GET_CHARACTERISTICS
= 0x04000005,
1295 CLUSCTL_NODE_GET_FLAGS
= 0x04000009,
1296 CLUSCTL_NODE_GET_NAME
= 0x04000029,
1297 CLUSCTL_NODE_GET_ID
= 0x04000039,
1298 CLUSCTL_NODE_GET_CLUSTER_SERVICE_ACCOUNT_NAME
= 0x04000041,
1299 CLUSCTL_NODE_ENUM_COMMON_PROPERTIES
= 0x04000051,
1300 CLUSCTL_NODE_GET_RO_COMMON_PROPERTIES
= 0x04000055,
1301 CLUSCTL_NODE_GET_COMMON_PROPERTIES
= 0x04000059,
1302 CLUSCTL_NODE_SET_COMMON_PROPERTIES
= 0x0440005E,
1303 CLUSCTL_NODE_VALIDATE_COMMON_PROPERTIES
= 0x04000061,
1304 CLUSCTL_NODE_ENUM_PRIVATE_PROPERTIES
= 0x04000079,
1305 CLUSCTL_NODE_GET_RO_PRIVATE_PROPERTIES
= 0x0400007D,
1306 CLUSCTL_NODE_GET_PRIVATE_PROPERTIES
= 0x04000081,
1307 CLUSCTL_NODE_SET_PRIVATE_PROPERTIES
= 0x04400086,
1308 CLUSCTL_NODE_VALIDATE_PRIVATE_PROPERTIES
= 0x04000089
1309 } clusapi_NodeControlCode
;
1312 clusapi_NodeControl
(
1313 [ in ] HNODE_RPC hNode
,
1314 [ in ] clusapi_NodeControlCode dwControlCode
,
1315 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1316 [ in ] uint32 nInBufferSize
,
1317 [ out, size_is(nOutBufferSize
),
1318 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1319 [ in ] uint32 nOutBufferSize
,
1320 [ out ] uint32
*lpBytesReturned
,
1321 [ out ] uint32
*lpcbRequired
,
1322 [ out ] WERROR
*rpc_status
1329 Opnum80NotUsedOnWire
(void);
1335 clusapi_OpenNetwork
(
1336 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1337 [ out ] WERROR
*Status
,
1338 [ out ] WERROR
*rpc_status
1342 clusapi_OpenNetwork
(
1343 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1344 [ out ] WERROR
*Status
,
1345 [ out ] WERROR
*rpc_status
,
1346 [ out ] HNETWORK_RPC
*hNetwork
1353 clusapi_CloseNetwork
(
1354 [ in, out ] HNETWORK_RPC
*Network
1360 typedef [v1_enum] enum {
1361 ClusterNetworkUnavailable
= 0x00000000,
1362 ClusterNetworkDown
= 0x00000001,
1363 ClusterNetworkPartitioned
= 0x00000002,
1364 ClusterNetworkUp
= 0x00000003,
1365 ClusterNetworkStateUnknown
= 0xFFFFFFFF
1366 } clusapi_ClusterNetworkState
;
1369 clusapi_GetNetworkState
(
1370 [ in ] HNETWORK_RPC hNetwork
,
1371 [ out ] clusapi_ClusterNetworkState
*State
,
1372 [ out ] WERROR
*rpc_status
1379 clusapi_SetNetworkName
(
1380 [ in ] HNETWORK_RPC hNetwork
,
1381 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1382 [ out ] WERROR
*rpc_status
1389 clusapi_CreateNetworkEnum
(
1390 [ in ] HNETWORK_RPC hNetwork
,
1391 [ in ] uint32 dwType
,
1392 [ out ] ENUM_LIST
**ReturnEnum
,
1393 [ out ] WERROR
*rpc_status
1400 clusapi_GetNetworkId
(
1401 [ in ] HNETWORK_RPC hNetwork
,
1402 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
1403 [ out ] WERROR
*rpc_status
1410 clusapi_SetNetworkPriorityOrder
(
1411 [ in, range(0, 1000)] uint32 NetworkCount
,
1412 [ in, string, size_is(NetworkCount
) ] [charset
(UTF16
)] uint16 NetworkIdList
[*],
1413 [ out ] WERROR
*rpc_status
1420 clusapi_NodeNetworkControl
(
1421 [ in ] HNETWORK_RPC hNetwork
,
1422 [ in ] HNODE_RPC hNode
,
1423 [ in ] uint32 dwControlCode
,
1424 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1425 [ in ] uint32 nInBufferSize
,
1426 [ out, size_is(nOutBufferSize
),
1427 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1428 [ in ] uint32 nOutBufferSize
,
1429 [ out ] uint32
*lpBytesReturned
,
1430 [ out ] uint32
*lpcbRequired
,
1431 [ out ] WERROR
*rpc_status
1438 clusapi_NetworkControl
(
1439 [ in ] HNETWORK_RPC hNetwork
,
1440 [ in ] uint32 dwControlCode
,
1441 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1442 [ in ] uint32 nInBufferSize
,
1443 [ out, size_is(nOutBufferSize
),
1444 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1445 [ in ] uint32 nOutBufferSize
,
1446 [ out ] uint32
*lpBytesReturned
,
1447 [ out ] uint32
*lpcbRequired
,
1448 [ out ] WERROR
*rpc_status
1455 clusapi_AddNotifyNetwork
(
1456 [ in ] HNOTIFY_RPC hNotify
,
1457 [ in ] HNETWORK_RPC hNetwork
,
1458 [ in ] uint32 dwFilter
,
1459 [ in ] uint32 dwNotifyKey
,
1460 [ out ] uint32
*dwStateSequence
,
1461 [ out ] WERROR
*rpc_status
1468 clusapi_ReAddNotifyNetwork
(
1469 [ in ] HNOTIFY_RPC hNotify
,
1470 [ in ] HNETWORK_RPC hNetwork
,
1471 [ in ] uint32 dwFilter
,
1472 [ in ] uint32 dwNotifyKey
,
1473 [ in ] uint32 StateSequence
,
1474 [ out ] WERROR
*rpc_status
1481 clusapi_OpenNetInterface
(
1482 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1483 [ out ] WERROR
*Status
,
1484 [ out ] WERROR
*rpc_status
1488 clusapi_OpenNetInterface
(
1489 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1490 [ out ] WERROR
*Status
,
1491 [ out ] WERROR
*rpc_status
,
1492 [ out ] HNETINTERFACE_RPC
*hNetInterface
1499 clusapi_CloseNetInterface
(
1500 [ in, out ] HNETINTERFACE_RPC
*NetInterface
1506 typedef [v1_enum] enum {
1507 ClusterNetInterfaceFailed
= 0x00000000,
1508 ClusterNetInterfaceUnreachable
= 0x00000001,
1509 ClusterNetInterfaceUnavailable
= 0x00000002,
1510 ClusterNetInterfaceUp
= 0x00000003,
1511 ClusterNetInterfaceStateUnknown
= 0xFFFFFFFF
1512 } clusapi_ClusterNetInterfaceState
;
1515 clusapi_GetNetInterfaceState
(
1516 [ in ] HNETINTERFACE_RPC hNetInterface
,
1517 [ out ] clusapi_ClusterNetInterfaceState
*State
,
1518 [ out ] WERROR
*rpc_status
1525 clusapi_GetNetInterface
(
1526 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
1527 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1528 [ out, string ] [charset
(UTF16
)] uint16
**lppszInterfaceName
,
1529 [ out ] WERROR
*rpc_status
1536 clusapi_GetNetInterfaceId
(
1537 [ in ] HNETINTERFACE_RPC hNetInterface
,
1538 [ out, string ] [charset
(UTF16
)] uint16
**pGuid
,
1539 [ out ] WERROR
*rpc_status
1546 clusapi_NodeNetInterfaceControl
(
1547 [ in ] HNETINTERFACE_RPC hNetInterface
,
1548 [ in ] HNODE_RPC hNode
,
1549 [ in ] uint32 dwControlCode
,
1550 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1551 [ in ] uint32 nInBufferSize
,
1552 [ out, size_is(nOutBufferSize
),
1553 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1554 [ in ] uint32 nOutBufferSize
,
1555 [ out ] uint32
*lpBytesReturned
,
1556 [ out ] uint32
*lpcbRequired
,
1557 [ out ] WERROR
*rpc_status
1564 clusapi_NetInterfaceControl
(
1565 [ in ] HNETINTERFACE_RPC hNetInterface
,
1566 [ in ] uint32 dwControlCode
,
1567 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1568 [ in ] uint32 nInBufferSize
,
1569 [ out, size_is(nOutBufferSize
),
1570 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1571 [ in ] uint32 nOutBufferSize
,
1572 [ out ] uint32
*lpBytesReturned
,
1573 [ out ] uint32
*lpcbRequired
,
1574 [ out ] WERROR
*rpc_status
1581 clusapi_AddNotifyNetInterface
(
1582 [ in ] HNOTIFY_RPC hNotify
,
1583 [ in ] HNETINTERFACE_RPC hNetInterface
,
1584 [ in ] uint32 dwFilter
,
1585 [ in ] uint32 dwNotifyKey
,
1586 [ out ] uint32
*dwStateSequence
,
1587 [ out ] WERROR
*rpc_status
1594 clusapi_ReAddNotifyNetInterface
(
1595 [ in ] HNOTIFY_RPC hNotify
,
1596 [ in ] HNETINTERFACE_RPC hNetInterface
,
1597 [ in ] uint32 dwFilter
,
1598 [ in ] uint32 dwNotifyKey
,
1599 [ in ] uint32 StateSequence
,
1600 [ out ] WERROR
*rpc_status
1607 clusapi_CreateNodeEnum
(
1608 [ in ] HNODE_RPC hNode
,
1609 [ in ] uint32 dwType
,
1610 [ out ] ENUM_LIST
**ReturnEnum
,
1611 [ out ] WERROR
*rpc_status
1618 clusapi_GetClusterVersion2
(
1619 [ out ] uint16
*lpwMajorVersion
,
1620 [ out ] uint16
*lpwMinorVersion
,
1621 [ out ] uint16
*lpwBuildNumber
,
1622 [ out, string ] [charset
(UTF16
)] uint16
**lpszVendorId
,
1623 [ out, string ] [charset
(UTF16
)] uint16
**lpszCSDVersion
,
1624 [ out ] CLUSTER_OPERATIONAL_VERSION_INFO
**ppClusterOpVerInfo
,
1625 [ out ] WERROR
*rpc_status
1631 typedef [bitmap32bit
] bitmap
{
1632 CLUSTER_RESOURCE_TYPE_ENUM_NODES
= 0x00000001,
1633 CLUSTER_RESOURCE_TYPE_ENUM_RESOURCES
= 0x00000002
1634 } ClusterResTypeEnumType
;
1637 clusapi_CreateResTypeEnum
(
1638 [ in, string ] [charset
(UTF16
)] uint16
*lpszTypeName
,
1639 [ in ] ClusterResTypeEnumType dwType
,
1640 [ out ] ENUM_LIST
**ReturnEnum
,
1641 [ out ] WERROR
*rpc_status
1648 clusapi_BackupClusterDatabase
(
1649 [ in, string ] [charset
(UTF16
)] uint16
*lpszPathName
,
1650 [ out ] WERROR
*rpc_status
1657 clusapi_NodeClusterControl
(
1658 [ in ] HCLUSTER_RPC hCluster
,
1659 [ in ] HNODE_RPC hHostNode
,
1660 [ in ] uint32 dwControlCode
,
1661 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1662 [ in ] uint32 nInBufferSize
,
1663 [ out, size_is(nOutBufferSize
),
1664 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1665 [ in ] uint32 nOutBufferSize
,
1666 [ out ] uint32
*lpBytesReturned
,
1667 [ out ] uint32
*lpcbRequired
,
1668 [ out ] WERROR
*rpc_status
1674 typedef [v1_enum] enum {
1675 CLUSCTL_CLUSTER_UNKNOWN
= 0x07000000,
1676 CLUSCTL_CLUSTER_GET_FQDN
= 0x0700003D,
1677 CLUSCTL_CLUSTER_CHECK_VOTER_EVICT
= 0x07000045,
1678 CLUSCTL_CLUSTER_CHECK_VOTER_DOWN
= 0x07000049,
1679 CLUSCTL_CLUSTER_SHUTDOWN
= 0x0700004D,
1680 CLUSCTL_CLUSTER_ENUM_COMMON_PROPERTIES
= 0x07000051,
1681 CLUSCTL_CLUSTER_GET_RO_COMMON_PROPERTIES
= 0x07000055,
1682 CLUSCTL_CLUSTER_GET_COMMON_PROPERTIES
= 0x07000059,
1683 CLUSCTL_CLUSTER_SET_COMMON_PROPERTIES
= 0x0740005E,
1684 CLUSCTL_CLUSTER_VALIDATE_COMMON_PROPERTIES
= 0x07000061,
1685 CLUSCTL_CLUSTER_GET_COMMON_PROPERTY_FMTS
= 0x07000065,
1686 CLUSCTL_CLUSTER_ENUM_PRIVATE_PROPERTIES
= 0x07000079,
1687 CLUSCTL_CLUSTER_GET_RO_PRIVATE_PROPERTIES
= 0x0700007D,
1688 CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTIES
= 0x07000081,
1689 CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES
= 0x07400086,
1690 CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES
= 0x07000089,
1691 CLUSCTL_CLUSTER_GET_SHARED_VOLUME_ID
= 0x07000291,
1692 CLUSCTL_CLUSTER_UPGRADE_CLUSTER_VERSION
= 0x074000ce,
1693 CLUSCTL_CLUSTER_CLEAR_UPGRADE_IN_PROGRESS
= 0x074000d2,
1694 CLUSCTL_CLUSTER_IS_READY_FOR_UPGRADE
= 0x070000d5
1695 } clusapi_ClusterControlCode
;
1697 typedef [v1_enum] enum {
1698 CLUSPROP_SYNTAX_ENDMARK
= 0x00000000,
1699 CLUSPROP_SYNTAX_NAME
= 0x00040003,
1700 CLUSPROP_SYNTAX_RESCLASS
= 0x00020002,
1701 CLUSPROP_SYNTAX_LIST_VALUE_SZ
= 0x00010003,
1702 CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ
= 0x00010004,
1703 CLUSPROP_SYNTAX_LIST_VALUE_DWORD
= 0x00010002,
1704 CLUSPROP_SYNTAX_LIST_VALUE_BINARY
= 0x00010001,
1705 CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ
= 0x00010005,
1706 CLUSPROP_SYNTAX_LIST_VALUE_LONG
= 0x00010007,
1707 CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ
= 0x00010008,
1708 CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR
= 0x00010009,
1709 CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER
= 0x0001000a,
1710 CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER
= 0x00010006,
1711 CLUSPROP_SYNTAX_LIST_VALUE_WORD
= 0x0001000b,
1712 CLUSPROP_SYNTAX_LIST_VALUE_FILETIME
= 0x0001000c,
1713 CLUSPROP_SYNTAX_DISK_SIGNATURE
= 0x00050002,
1714 CLUSPROP_SYNTAX_SCSI_ADDRESS
= 0x00060002,
1715 CLUSPROP_SYNTAX_DISK_NUMBER
= 0x00070002,
1716 CLUSPROP_SYNTAX_PARTITION_INFO
= 0x00080001,
1717 CLUSPROP_SYNTAX_DISK_SERIALNUMBER
= 0x000a0003,
1718 CLUSPROP_SYNTAX_DISK_GUID
= 0x000b0003,
1719 CLUSPROP_SYNTAX_DISK_SIZE
= 0x000c0006,
1720 CLUSPROP_SYNTAX_PARTITION_INFO_EX
= 0x000d0001
1721 } CLUSTER_PROPERTY_SYNTAX
;
1724 CLUSTER_PROPERTY_SYNTAX Syntax
;
1726 [subcontext
(0),subcontext_size
(Size
)] [flag
(NDR_REMAINING
)] DATA_BLOB Buffer
;
1727 [flag
(NDR_ALIGN4
)] DATA_BLOB Padding
;
1728 } clusapi_propertyValues
;
1731 [value
(CLUSPROP_SYNTAX_NAME
)] CLUSTER_PROPERTY_SYNTAX syntax_name
;
1732 [value
(strlen_m_term
(buffer
)*2)] uint32 size
;
1734 [flag
(NDR_ALIGN2
)] DATA_BLOB padding
;
1735 clusapi_propertyValues PropertyValues
;
1736 [value
(CLUSPROP_SYNTAX_ENDMARK
)] CLUSTER_PROPERTY_SYNTAX end_mark
;
1737 } clusapi_propertyValue
;
1739 typedef [public] struct {
1740 uint32 propertyCount
;
1741 clusapi_propertyValue propertyValues
[propertyCount
];
1742 [value
(CLUSPROP_SYNTAX_ENDMARK
)] CLUSTER_PROPERTY_SYNTAX end_mark
;
1743 } clusapi_PROPERTY_LIST
;
1746 clusapi_ClusterControl
(
1747 [ in ] HCLUSTER_RPC hCluster
,
1748 [ in ] clusapi_ClusterControlCode dwControlCode
,
1749 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
1750 [ in ] uint32 nInBufferSize
,
1751 [ out, size_is(nOutBufferSize
),
1752 length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
1753 [ in ] uint32 nOutBufferSize
,
1754 [ out ] uint32
*lpBytesReturned
,
1755 [ out ] uint32
*lpcbRequired
,
1756 [ out ] WERROR
*rpc_status
1763 clusapi_UnblockGetNotifyCall
(
1764 [ in ] HNOTIFY_RPC hNotify
1771 clusapi_SetServiceAccountPassword
(
1772 [ in, string ] [charset
(UTF16
)] uint16
*lpszNewPassword
,
1773 [ in ] IDL_CLUSTER_SET_PASSWORD_FLAGS dwFlags
,
1774 [ out, size_is(ReturnStatusBufferSize
), length_is(*SizeReturned
) ]
1775 IDL_CLUSTER_SET_PASSWORD_STATUS ReturnStatusBufferPtr
[*],
1776 [ in, range(0, (64 * 1024)) ] uint32 ReturnStatusBufferSize
,
1777 [ out ] uint32
*SizeReturned
,
1778 [ out ] uint32
*ExpectedBufferSize
1785 clusapi_SetResourceDependencyExpression
(
1786 [ in ] HRES_RPC hResource
,
1787 [ in, string, unique ] [charset
(UTF16
)] uint16
*lpszDependencyExpression
,
1788 [ out ] WERROR
*rpc_status
1795 clusapi_GetResourceDependencyExpression
(
1796 [ in ] HRES_RPC hResource
,
1797 [ out, string ] [charset
(UTF16
)] uint16
**lpszDependencyExpression
,
1798 [ out ] WERROR
*rpc_status
1805 Opnum111NotUsedOnWire
(void);
1811 clusapi_GetResourceNetworkName
(
1812 [ in ] HRES_RPC hResource
,
1813 [ out, string ] [charset
(UTF16
)] uint16
**lpszName
,
1814 [ out ] WERROR
*rpc_status
1821 clusapi_ExecuteBatch
(
1822 [ in ] HKEY_RPC hKey
,
1823 [ in ] uint32 cbData
,
1824 [ in, size_is(cbData
)] uint8
*lpData
,
1825 [ out ] int *pdwFailedCommand
,
1826 [ out ] WERROR
*rpc_status
1833 clusapi_CreateBatchPort
(
1834 [ in ] HKEY_RPC hKey
,
1835 [ out ] HBATCH_PORT_RPC
*phBatchPort
,
1836 [ out ] WERROR
*rpc_status
1843 clusapi_GetBatchNotification
(
1844 [ in ] HBATCH_PORT_RPC hBatchNotify
,
1845 [ out ] uint32
*cbData
,
1846 [ out, size_is(,*cbData
) ] uint8
** lpData
1853 clusapi_CloseBatchPort
(
1854 [ in, out ] HBATCH_PORT_RPC
*phBatchPort
1860 typedef [bitmap32bit
] bitmap
{
1861 CLUSAPI_READ_ACCESS
= 0x00000001,
1862 CLUSAPI_CHANGE_ACCESS
= 0x00000002,
1863 CLUSAPI_GENERIC_READ
= 0x80000000,
1864 CLUSAPI_GENERIC_WRITE
= 0x40000000,
1865 CLUSAPI_GENERIC_EXECUTE
= 0x20000000,
1866 CLUSAPI_GENERIC_ALL
= 0x10000000,
1867 CLUSAPI_MAXIMUM_ALLOWED
= 0x02000000
1868 } clusapi_DesiredAccessMask
;
1872 clusapi_OpenClusterEx
(
1873 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1874 [ out ] uint32
*lpdwGrantedAccess
,
1875 [ out ] WERROR
*Status
1879 clusapi_OpenClusterEx
(
1880 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1881 [ out ] uint32
*lpdwGrantedAccess
,
1882 [ out ] WERROR
*Status
,
1883 [ out ] HCLUSTER_RPC
*hCluster
1892 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
1893 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1894 [ out ] uint32
*lpdwGrantedAccess
,
1895 [ out ] WERROR
*Status
,
1896 [ out ] WERROR
*rpc_status
1901 [ in, string ] [charset
(UTF16
)] uint16
*lpszNodeName
,
1902 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1903 [ out ] uint32
*lpdwGrantedAccess
,
1904 [ out ] WERROR
*Status
,
1905 [ out ] WERROR
*rpc_status
,
1906 [ out ] HNODE_RPC
*hNode
1913 clusapi_OpenGroupEx
(
1914 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
1915 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1916 [ out ] uint32
*lpdwGrantedAccess
,
1917 [ out ] WERROR
*Status
,
1918 [ out ] WERROR
*rpc_status
1922 clusapi_OpenGroupEx
(
1923 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
1924 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1925 [ out ] uint32
*lpdwGrantedAccess
,
1926 [ out ] WERROR
*Status
,
1927 [ out ] WERROR
*rpc_status
,
1928 [ out ] HGROUP_RPC
*hGroup
1935 clusapi_OpenResourceEx
(
1936 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
1937 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1938 [ out ] uint32
*lpdwGrantedAccess
,
1939 [ out ] WERROR
*Status
,
1940 [ out ] WERROR
*rpc_status
1944 clusapi_OpenResourceEx
(
1945 [ in, string ] [charset
(UTF16
)] uint16
*lpszResourceName
,
1946 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1947 [ out ] uint32
*lpdwGrantedAccess
,
1948 [ out ] WERROR
*Status
,
1949 [ out ] WERROR
*rpc_status
,
1950 [ out ] HRES_RPC
*hResource
1957 clusapi_OpenNetworkEx
(
1958 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1959 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1960 [ out ] uint32
*lpdwGrantedAccess
,
1961 [ out ] WERROR
*Status
,
1962 [ out ] WERROR
*rpc_status
1966 clusapi_OpenNetworkEx
(
1967 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetworkName
,
1968 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1969 [ out ] uint32
*lpdwGrantedAccess
,
1970 [ out ] WERROR
*Status
,
1971 [ out ] WERROR
*rpc_status
,
1972 [ out ] HNETWORK_RPC
*hNetwork
1979 clusapi_OpenNetInterfaceEx
(
1980 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1981 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1982 [ out ] uint32
*lpdwGrantedAccess
,
1983 [ out ] WERROR
*Status
,
1984 [ out ] WERROR
*rpc_status
1988 clusapi_OpenNetInterfaceEx
(
1989 [ in, string ] [charset
(UTF16
)] uint16
*lpszNetInterfaceName
,
1990 [ in ] clusapi_DesiredAccessMask dwDesiredAccess
,
1991 [ out ] uint32
*lpdwGrantedAccess
,
1992 [ out ] WERROR
*Status
,
1993 [ out ] WERROR
*rpc_status
,
1994 [ out ] HNETINTERFACE_RPC
*hNetInterface
2001 clusapi_ChangeCsvState
(
2002 [ in ] HRES_RPC hResource
,
2003 [ in ] uint32 dwState
,
2004 [ out ] WERROR
*rpc_status
2011 clusapi_CreateNodeEnumEx
(
2012 [in] HNODE_RPC hNode
,
2014 [in] uint32 dwOptions
,
2015 [out] ENUM_LIST
**ReturnIdEnum
,
2016 [out] ENUM_LIST
**ReturnNameEnum
,
2017 [out] WERROR
* rpc_status
2024 clusapi_CreateEnumEx
(
2025 [in] HCLUSTER_RPC hCluster
,
2026 [in] ClusterEnumType dwType
,
2027 [in] uint32 dwOptions
,
2028 [out] ENUM_LIST
**ReturnIdEnum
,
2029 [out] ENUM_LIST
**ReturnNameEnum
,
2030 [out] WERROR
* rpc_status
2037 clusapi_PauseNodeEx
(
2038 [ in ] HNODE_RPC hNode
,
2039 [ in ] boolean8 bDrainNode
,
2040 [ in ] uint32 dwPauseFlags
,
2041 [ out ] WERROR
*rpc_status
2048 clusapi_PauseNodeWithDrainTarget
(
2049 [ in ] HNODE_RPC hNode
,
2050 [ in ] uint32 dwPauseFlags
,
2051 [ in ] HNODE_RPC hNodeDrainTarget
,
2052 [ out ] WERROR
*rpc_status
2059 clusapi_ResumeNodeEx
(
2060 [ in ] HNODE_RPC hNode
,
2061 [ in ] uint32 dwResumeFailbackType
,
2062 [ in ] uint32 dwResumeFlagsReserved
,
2063 [ out ] WERROR
*rpc_status
2070 clusapi_CreateGroupEx
(
2071 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
2072 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC
*pGroupInfo
,
2073 [ out ] WERROR
*Status
,
2074 [ out ] WERROR
*rpc_status
2078 clusapi_CreateGroupEx
(
2079 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupName
,
2080 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC
*pGroupInfo
,
2081 [ out ] WERROR
*Status
,
2082 [ out ] WERROR
*rpc_status
,
2083 [ out ] HGROUP_RPC
*hGroup
2090 clusapi_OnlineGroupEx
(
2091 [ in ] HGROUP_RPC hGroup
,
2092 [ in ] uint32 dwOnlineFlags
,
2093 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2094 [ in ] uint32 cbInBufferSize
,
2095 [ out ] WERROR
*rpc_status
2102 clusapi_OfflineGroupEx
(
2103 [ in ] HGROUP_RPC hGroup
,
2104 [ in ] uint32 dwOfflineFlags
,
2105 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2106 [ in ] uint32 cbInBufferSize
,
2107 [ out ] WERROR
*rpc_status
2114 clusapi_MoveGroupEx
(
2115 [ in ] HGROUP_RPC hGroup
,
2116 [ in ] uint32 dwMoveFlags
,
2117 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2118 [ in ] uint32 cbInBufferSize
,
2119 [ out ] WERROR
*rpc_status
2126 clusapi_MoveGroupToNodeEx
(
2127 [ in ] HGROUP_RPC hGroup
,
2128 [ in ] HNODE_RPC hNode
,
2129 [ in ] uint32 dwMoveFlags
,
2130 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2131 [ in ] uint32 cbInBufferSize
,
2132 [ out ] WERROR
*rpc_status
2139 clusapi_CancelClusterGroupOperation
(
2140 [ in ] HGROUP_RPC hGroup
,
2141 [ in ] uint32 dwCancelFlags
,
2142 [ out ] WERROR
*rpc_status
2149 clusapi_OnlineResourceEx
(
2150 [ in ] HRES_RPC hResource
,
2151 [ in ] uint32 dwOnlineFlags
,
2152 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2153 [ in ] uint32 cbInBufferSize
,
2154 [ out ] WERROR
*rpc_status
2161 clusapi_OfflineResourceEx
(
2162 [ in ] HRES_RPC hResource
,
2163 [ in ] uint32 dwOfflineFlags
,
2164 [ in, size_is(cbInBufferSize
) ] uint8
* lpInBuffer
,
2165 [ in ] uint32 cbInBufferSize
,
2166 [ out ] WERROR
*rpc_status
2169 #define HGENERIC_RPC policy_handle
2171 typedef [context_handle] void *HGENERIC_RPC
;
2175 uint32 dwObjectType
; /* really of type CLUSTER_OBJECT_TYPE_RPC */
2177 } NOTIFY_FILTER_AND_TYPE_RPC
;
2180 NOTIFY_FILTER_AND_TYPE_RPC FilterAndType
;
2181 [ size_is(dwBufferSize
) ] uint8
* buffer
;
2182 uint32 dwBufferSize
;
2183 [string] [charset
(UTF16
)] uint16
*ObjectId
;
2184 [string] [charset
(UTF16
)] uint16
*ParentId
;
2185 [string] [charset
(UTF16
)] uint16
*Name
;
2186 [string] [charset
(UTF16
)] uint16
*Type
;
2187 } NOTIFICATION_DATA_RPC
;
2190 uint32
*dwNotifyKey
;
2191 NOTIFICATION_DATA_RPC NotificationData
;
2198 * Notify interface V2 functions
2202 clusapi_CreateNotifyV2
(
2203 [ out ] WERROR
*rpc_error
,
2204 [ out ] WERROR
*rpc_status
2208 clusapi_CreateNotifyV2
(
2209 [ out ] WERROR
*rpc_error
,
2210 [ out ] WERROR
*rpc_status
,
2211 [ out ] HNOTIFY_RPC
*hNotify
2219 clusapi_AddNotifyV2
(
2220 [ in ] HNOTIFY_RPC hNotify
,
2221 [ in ] HGENERIC_RPC hObject
,
2222 [ in ] NOTIFY_FILTER_AND_TYPE_RPC filter
,
2223 [ in ] uint32 dwNotifyKey
,
2224 [ in ] uint32 dwVersion
,
2225 [ in ] boolean8 isTargetedAtObject
,
2226 [ out ] WERROR
*rpc_status
2233 clusapi_GetNotifyV2
(
2234 [ in ] HNOTIFY_RPC hNotify
,
2235 [ out, size_is(,*dwNumNotifications
) ] NOTIFICATION_RPC
**Notifications
,
2236 [ out ] uint32
*dwNumNotifications
2243 clusapi_QueryAllValues
(
2244 [ in ] HKEY_RPC hKey
,
2245 [ out ] uint32
*pcbData
,
2246 [ out, size_is(1, *pcbData
) ] uint8
** ppData
,
2247 [ out ] WERROR
*rpc_status
2252 uint8 DiskIdBlob
[16];
2259 clusapi_StmFindDisk
(
2260 [ in ] HCLUSTER_RPC hCluster
,
2261 [ in ] uint32 dwFlags
,
2262 [ in, out, unique ] CLUSTER_DISKID
*pDiskId
,
2263 [ in, size_is(uniqueIdSize
), unique ] uint8
*pUniqueId
,
2264 [ in ] uint32 uniqueIdSize
,
2265 [ out, ref, string ] [charset
(UTF16
)] uint16
**ppszDeviceName
,
2266 [ out ] WERROR
*rpc_status
2270 [string] [charset
(UTF16
)] uint16
*pszNodeName
;
2273 [unique, size_is(ResultSize
)] uint8
*pResultData
;
2274 } CLUSTER_MRR_NODE_RESPONSE
;
2278 [size_is(NodeCount
)] CLUSTER_MRR_NODE_RESPONSE
*pNodes
;
2279 } CLUSTER_MRR_RESPONSE
;
2286 [ in ] HCLUSTER_RPC hCluster
,
2287 [ in ] boolean8 fExcludeSelf
,
2288 [ in ] hyper nodeSet
,
2289 [ in ] uint32 dwTimeout
,
2290 [ in ] uint32 dwComponent
,
2291 [ in ] uint32 dwControlCode
,
2292 [ in ] uint32 inSize
,
2293 [ in, unique, size_is(inSize
) ] uint8
*pInData
,
2294 [ out, ref, size_is(1, 1) ] CLUSTER_MRR_RESPONSE
**ppInfo
,
2295 [ out ] WERROR
*rpc_status
2302 clusapi_CreateGroupEnum
(
2303 [ in ] HCLUSTER_RPC hCluster
,
2304 [ in, unique, size_is(cbProperties
)] uint8
* pProperties
,
2305 [ in ] uint32 cbProperties
,
2306 [ in, unique, size_is(cbRoProperties
)] uint8
* pRoProperties
,
2307 [ in ] uint32 cbRoProperties
,
2308 [ out ] GROUP_ENUM_LIST
**ppResultList
,
2309 [ out ] WERROR
*rpc_status
2316 clusapi_CreateResourceEnum
(
2317 [ in ] HCLUSTER_RPC hCluster
,
2318 [ in, unique, size_is(cbProperties
)] uint8
* pProperties
,
2319 [ in ] uint32 cbProperties
,
2320 [ in, unique, size_is(cbRoProperties
)] uint8
* pRoProperties
,
2321 [ in ] uint32 cbRoProperties
,
2322 [ out ] RESOURCE_ENUM_LIST
**ppResultList
,
2323 [ out ] WERROR
*rpc_status
2330 clusapi_ExecuteReadBatch
(
2331 [ in ] HKEY_RPC hKey
,
2332 [ in ] uint32 cbInData
,
2333 [ in, size_is(cbInData
)] uint8
*lpInData
,
2334 [ out ] uint32
*cbOutData
,
2335 [ out, size_is(,*cbOutData
) ] uint8
** lpOutData
,
2336 [ out ] WERROR
*rpc_status
2343 clusapi_RestartResource
(
2344 [ in ] HRES_RPC hResource
,
2345 [ in ] uint32 dwFlags
,
2346 [ out ] WERROR
*rpc_status
2352 [string] [charset
(UTF16
)] uint16
*Name
;
2353 } NOTIFICATION_DATA_ASYNC_RPC
;
2359 clusapi_GetNotifyAsync
(
2360 [ in ] HNOTIFY_RPC hNotify
,
2361 [ out, size_is(,*dwNumNotifications
) ] NOTIFICATION_DATA_ASYNC_RPC
**Notifications
,
2362 [ out ] uint32
*dwNumNotifications
2366 DiskIdSignature
= 0x00000001,
2367 DiskIdGuid
= 0x00000002,
2368 DiskIdUnKnown
= 0x00001388
2369 } CLUSDSK_DISKID_ENUM
;
2373 CLUSDSK_DISKID_ENUM DiskIdType
;
2374 [switch_is(DiskIdType
)] union {
2375 [case(DiskIdSignature
)] uint32 DiskSignature
;
2376 [case(DiskIdGuid
)] GUID DiskGuid
;
2381 CLUSPROP_TYPE_ENDMARK
= 0x0000,
2382 CLUSPROP_TYPE_LIST_VALUE
= 0x0001,
2383 CLUSPROP_TYPE_RESCLASS
= 0x0002,
2384 CLUSPROP_TYPE_NAME
= 0x0004,
2385 CLUSPROP_TYPE_SIGNATURE
= 0x0005,
2386 CLUSPROP_TYPE_SCSIADDRESS
= 0x0006,
2387 CLUSPROP_TYPE_DISK_NUMBER
= 0x0007,
2388 CLUSPROP_TYPE_PARTITION_INFO
= 0x0008,
2389 CLUSPROP_TYPE_DISK_SERIALNUMBER
= 0x000a,
2390 CLUSPROP_TYPE_DISK_GUID
= 0x000b,
2391 CLUSPROP_TYPE_DISK_SIZE
= 0x000c,
2392 CLUSPROP_TYPE_PARTITION_INFO_EX
= 0x000d
2393 } CLUSTER_PROPERTY_TYPE
;
2396 CLUSPROP_FORMAT_UNKNOWN
= 0x0000,
2397 CLUSPROP_FORMAT_BINARY
= 0x0001,
2398 CLUSPROP_FORMAT_DWORD
= 0x0002,
2399 CLUSPROP_FORMAT_SZ
= 0x0003,
2400 CLUSPROP_FORMAT_EXPAND_SZ
= 0x0004,
2401 CLUSPROP_FORMAT_MULTI_SZ
= 0x0005,
2402 CLUSPROP_FORMAT_ULARGE_INTEGER
= 0x0006,
2403 CLUSPROP_FORMAT_LONG
= 0x0007,
2404 CLUSPROP_FORMAT_EXPANDED_SZ
= 0x0008,
2405 CLUSPROP_FORMAT_SECURITY_DESCRIPTOR
= 0x0009,
2406 CLUSPROP_FORMAT_LARGE_INTEGER
= 0x000a,
2407 CLUSPROP_FORMAT_WORD
= 0x000b,
2408 CLUSPROP_FORMAT_FILETIME
= 0x000c
2409 } CLUSTER_PROPERTY_FORMAT
;
2412 CLUS_CHAR_UNKNOWN
= 0x00000000,
2413 CLUS_CHAR_QUORUM
= 0x00000001,
2414 CLUS_CHAR_DELETE_REQUIRES_ALL_NODES
= 0x00000002,
2415 CLUS_CHAR_LOCAL_QUORUM
= 0x00000004,
2416 CLUS_CHAR_BROADCAST_DELETE
= 0x00000020,
2417 CLUS_CHAR_SINGLE_CLUSTER_INSTANCE
= 0x00000040,
2418 CLUS_CHAR_SINGLE_GROUP_INSTANCE
= 0x00000080,
2419 CLUS_CHAR_COEXIST_IN_SHARED_VOLUME_GROUP
= 0x00000100,
2420 CLUS_CHAR_RESERVED1
= 0x00000200,
2421 CLUS_CHAR_MONITOR_DETACH
= 0x00000400,
2422 CLUS_CHAR_RESERVED2
= 0x00000800,
2423 CLUS_CHAR_RESERVED3
= 0x00001000,
2424 CLUS_CHAR_RESERVED4
= 0x00002000
2425 } CLUS_CHARACTERISTICS
;
2428 CLUS_FLAG_CORE
= 0x00000001
2432 MaintenanceModeTypeDisableIsAliveCheck
= 1,
2433 MaintenanceModeTypeOfflineResource
= 2,
2434 MaintenanceModeTypeUnclusterResource
= 3
2435 } MAINTENANCE_MODE_TYPE
;
2438 CLUSTER_CHANGE_NODE_STATE
= 0x00000001,
2439 CLUSTER_CHANGE_NODE_DELETED
= 0x00000002,
2440 CLUSTER_CHANGE_NODE_ADDED
= 0x00000004,
2441 CLUSTER_CHANGE_NODE_PROPERTY
= 0x00000008,
2442 CLUSTER_CHANGE_REGISTRY_NAME
= 0x00000010,
2443 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES
= 0x00000020,
2444 CLUSTER_CHANGE_REGISTRY_VALUE
= 0x00000040,
2445 CLUSTER_CHANGE_REGISTRY_SUBTREE
= 0x00000080,
2446 CLUSTER_CHANGE_RESOURCE_STATE
= 0x00000100,
2447 CLUSTER_CHANGE_RESOURCE_DELETED
= 0x00000200,
2448 CLUSTER_CHANGE_RESOURCE_ADDED
= 0x00000400,
2449 CLUSTER_CHANGE_RESOURCE_PROPERTY
= 0x00000800,
2450 CLUSTER_CHANGE_GROUP_STATE
= 0x00001000,
2451 CLUSTER_CHANGE_GROUP_DELETED
= 0x00002000,
2452 CLUSTER_CHANGE_GROUP_ADDED
= 0x00004000,
2453 CLUSTER_CHANGE_GROUP_PROPERTY
= 0x00008000,
2454 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED
= 0x00010000,
2455 CLUSTER_CHANGE_RESOURCE_TYPE_ADDED
= 0x00020000,
2456 CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY
= 0x00040000,
2457 CLUSTER_CHANGE_CLUSTER_RECONNECT
= 0x00080000,
2458 CLUSTER_CHANGE_NETWORK_STATE
= 0x00100000,
2459 CLUSTER_CHANGE_NETWORK_DELETED
= 0x00200000,
2460 CLUSTER_CHANGE_NETWORK_ADDED
= 0x00400000,
2461 CLUSTER_CHANGE_NETWORK_PROPERTY
= 0x00800000,
2462 CLUSTER_CHANGE_NETINTERFACE_STATE
= 0x01000000,
2463 CLUSTER_CHANGE_NETINTERFACE_DELETED
= 0x02000000,
2464 CLUSTER_CHANGE_NETINTERFACE_ADDED
= 0x04000000,
2465 CLUSTER_CHANGE_NETINTERFACE_PROPERTY
= 0x08000000,
2466 CLUSTER_CHANGE_QUORUM_STATE
= 0x10000000,
2467 CLUSTER_CHANGE_CLUSTER_STATE
= 0x20000000,
2468 CLUSTER_CHANGE_CLUSTER_PROPERTY
= 0x40000000,
2469 CLUSTER_CHANGE_HANDLE_CLOSE
= 0x80000000
2473 CLUSREG_SET_VALUE
= 1,
2474 CLUSREG_CREATE_KEY
= 2,
2475 CLUSREG_DELETE_KEY
= 3,
2476 CLUSREG_DELETE_VALUE
= 4,
2477 CLUSREG_VALUE_DELETED
= 6,
2478 CLUSREG_READ_KEY
= 7,
2479 CLUSREG_READ_VALUE
= 8,
2480 CLUSREG_READ_ERROR
= 9
2481 } CLUSTER_REG_BATCH_COMMAND
;
2484 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES
= 1
2485 } IDL_CLUSTER_SET_PASSWORD_FLAGS
;
2488 CLUSTER_QUORUM_MAINTAINED
= 0,
2489 CLUSTER_QUORUM_LOST
= 1
2490 } CLUSTER_QUORUM_VALUE
;
2493 CLUSTER_OBJECT_TYPE_CLUSTER
= 0x00000001,
2494 CLUSTER_OBJECT_TYPE_GROUP
= 0x00000002,
2495 CLUSTER_OBJECT_TYPE_RESOURCE
= 0x00000003,
2496 CLUSTER_OBJECT_TYPE_RESOURCE_TYPE
= 0x00000004,
2497 CLUSTER_OBJECT_TYPE_NETWORK_INTERFACE
= 0x00000005,
2498 CLUSTER_OBJECT_TYPE_NETWORK
= 0x00000006,
2499 CLUSTER_OBJECT_TYPE_NODE
= 0x00000007,
2500 CLUSTER_OBJECT_TYPE_REGISTRY
= 0x00000008,
2501 CLUSTER_OBJECT_TYPE_QUORUM
= 0x00000009,
2502 CLUSTER_OBJECT_TYPE_SHARED_VOLUME
= 0x0000000a
2503 } CLUSTER_OBJECT_TYPE
;
2506 CLUSTER_CHANGE_CLUSTER_RECONNECT_V2
= 0x00000001,
2507 CLUSTER_CHANGE_CLUSTER_STATE_V2
= 0x00000002,
2508 CLUSTER_CHANGE_CLUSTER_GROUP_ADDED_V2
= 0x00000004,
2509 CLUSTER_CHANGE_CLUSTER_HANDLE_CLOSE_V2
= 0x00000008,
2510 CLUSTER_CHANGE_CLUSTER_NETWORK_ADDED_V2
= 0x00000010,
2511 CLUSTER_CHANGE_CLUSTER_NODE_ADDED_V2
= 0x00000020,
2512 CLUSTER_CHANGE_CLUSTER_RESOURCE_TYPE_ADDED_V2
= 0x00000040,
2513 CLUSTER_CHANGE_CLUSTER_COMMON_PROPERTY_V2
= 0x00000080,
2514 CLUSTER_CHANGE_CLUSTER_PRIVATE_PROPERTY_V2
= 0x00000100,
2515 CLUSTER_CHANGE_CLUSTER_LOST_NOTIFICATIONS_V2
= 0x00000200,
2516 CLUSTER_CHANGE_CLUSTER_RENAME_V2
= 0x00000400
2517 } CLUSTER_CHANGE_CLUSTER_V2
;
2520 CLUSTER_CHANGE_GROUP_DELETED_V2
= 0x00000001,
2521 CLUSTER_CHANGE_GROUP_COMMON_PROPERTY_V2
= 0x00000002,
2522 CLUSTER_CHANGE_GROUP_PRIVATE_PROPERTY_V2
= 0x00000004,
2523 CLUSTER_CHANGE_GROUP_STATE_V2
= 0x00000008,
2524 CLUSTER_CHANGE_GROUP_OWNER_NODE_V2
= 0x00000010,
2525 CLUSTER_CHANGE_GROUP_PREFERRED_OWNERS_V2
= 0x00000020,
2526 CLUSTER_CHANGE_GROUP_RESOURCE_ADDED_V2
= 0x00000040,
2527 CLUSTER_CHANGE_GROUP_RESOURCE_GAINED_V2
= 0x00000080,
2528 CLUSTER_CHANGE_GROUP_RESOURCE_LOST_V2
= 0x00000100,
2529 CLUSTER_CHANGE_GROUP_HANDLE_CLOSE_V2
= 0x00000200
2530 } CLUSTER_CHANGE_GROUP_V2
;
2533 CLUSTER_CHANGE_RESOURCE_COMMON_PROPERTY_V2
= 0x00000001,
2534 CLUSTER_CHANGE_RESOURCE_PRIVATE_PROPERTY_V2
= 0x00000002,
2535 CLUSTER_CHANGE_RESOURCE_STATE_V2
= 0x00000004,
2536 CLUSTER_CHANGE_RESOURCE_OWNER_GROUP_V2
= 0x00000008,
2537 CLUSTER_CHANGE_RESOURCE_DEPENDENCIES_V2
= 0x00000010,
2538 CLUSTER_CHANGE_RESOURCE_DEPENDENTS_V2
= 0x00000020,
2539 CLUSTER_CHANGE_RESOURCE_POSSIBLE_OWNERS_V2
= 0x00000040,
2540 CLUSTER_CHANGE_RESOURCE_DELETED_V2
= 0x00000080,
2541 CLUSTER_CHANGE_RESOURCE_DLL_UPGRADED_V2
= 0x00000100,
2542 CLUSTER_CHANGE_RESOURCE_HANDLE_CLOSE_V2
= 0x00000200
2543 } CLUSTER_CHANGE_RESOURCE_V2
;
2546 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED_V2
= 0x00000001,
2547 CLUSTER_CHANGE_RESOURCE_TYPE_COMMON_PROPERTY_V2
= 0x00000002,
2548 CLUSTER_CHANGE_RESOURCE_TYPE_PRIVATE_PROPERTY_V2
= 0x00000004,
2549 CLUSTER_CHANGE_RESOURCE_TYPE_POSSIBLE_OWNERS_V2
= 0x00000008,
2550 CLUSTER_CHANGE_RESOURCE_TYPE_DLL_UPGRADED_V2
= 0x00000010
2551 } CHANGE_RESOURCE_TYPE_V2
;
2554 CLUSTER_CHANGE_NETINTERFACE_DELETED_V2
= 0x00000001,
2555 CLUSTER_CHANGE_NETINTERFACE_COMMON_PROPERTY_V2
= 0x00000002,
2556 CLUSTER_CHANGE_NETINTERFACE_PRIVATE_PROPERTY_V2
= 0x00000004,
2557 CLUSTER_CHANGE_NETINTERFACE_STATE_V2
= 0x00000008,
2558 CLUSTER_CHANGE_NETINTERFACE_HANDLE_CLOSE_V2
= 0x00000010
2559 } CLUSTER_CHANGE_NETINTERFACE_V2
;
2562 CLUSTER_CHANGE_NETWORK_DELETED_V2
= 0x00000001,
2563 CLUSTER_CHANGE_NETWORK_COMMON_PROPERTY_V2
= 0x00000002,
2564 CLUSTER_CHANGE_NETWORK_PRIVATE_PROPERTY_V2
= 0x00000004,
2565 CLUSTER_CHANGE_NETWORK_STATE_V2
= 0x00000008,
2566 CLUSTER_CHANGE_NETWORK_HANDLE_CLOSE_V2
= 0x00000010
2567 } CLUSTER_CHANGE_NETWORK_V2
;
2570 CLUSTER_CHANGE_NODE_NETINTERFACE_ADDED_V2
= 0x00000001,
2571 CLUSTER_CHANGE_NODE_DELETED_V2
= 0x00000002,
2572 CLUSTER_CHANGE_NODE_COMMON_PROPERTY_V2
= 0x00000004,
2573 CLUSTER_CHANGE_NODE_PRIVATE_PROPERTY_V2
= 0x00000008,
2574 CLUSTER_CHANGE_NODE_STATE_V2
= 0x00000010,
2575 CLUSTER_CHANGE_NODE_GROUP_GAINED_V2
= 0x00000020,
2576 CLUSTER_CHANGE_NODE_GROUP_LOST_V2
= 0x00000040,
2577 CLUSTER_CHANGE_NODE_HANDLE_CLOSE_V2
= 0x00000080
2578 } CLUSTER_CHANGE_NODE_V2
;
2581 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES_V2
= 0x00000001,
2582 CLUSTER_CHANGE_REGISTRY_NAME_V2
= 0x00000002,
2583 CLUSTER_CHANGE_REGISTRY_SUBTREE_V2
= 0x00000004,
2584 CLUSTER_CHANGE_REGISTRY_VALUE_V2
= 0x00000008,
2585 CLUSTER_CHANGE_REGISTRY_HANDLE_CLOSE_V2
= 0x00000010
2586 } CLUSTER_CHANGE_REGISTRY_V2
;
2589 CLUSTER_CHANGE_QUORUM_STATE_V2
= 0x00000001
2590 } CLUSTER_CHANGE_QUORUM_V2
;
2593 CLUSTER_CHANGE_SHARED_VOLUME_STATE_V2
= 0x00000001
2594 } CLUSTER_CHANGE_SHARED_VOLUME_V2
;
2597 DiskIdSignature
= 0x00000001,
2598 DiskIdGuid
= 0x00000002,
2599 DiskIdUnKnown
= 0x00001388
2600 } CLUSDSK_DISKID_ENUM
;
2607 Opnum148NotUsedOnWire
(void);
2613 Opnum149otUsedOnWire
(void);
2619 Opnum150NotUsedOnWire
(void);
2625 Opnum151NotUsedOnWire
(void);
2631 Opnum152NotUsedOnWire
(void);
2637 Opnum153NotUsedOnWire
(void);
2643 Opnum154NotUsedOnWire
(void);
2649 clusapi_AddNotifyResourceTypeV2
(
2650 [ in ] HNOTIFY_RPC hNotify
,
2651 [ in ] hyper filter
,
2652 [ in ] uint32 dwNotifyKey
,
2653 [ in, string ] [charset
(UTF16
)] uint16
*resTypeName
,
2654 [ in ] uint32 dwVersion
,
2655 [ out ] WERROR
*rpc_status
2662 Opnum156NotUsedOnWire
(void);
2668 clusapi_ExecuteReadBatchEx
(
2670 [in] uint32 cbInData
,
2671 [in, size_is(cbInData
)] uint8
* lpInData
,
2673 [out] uint32
* cbOutData
,
2674 [out, size_is(,*cbOutData
)] uint8
** lpOutData
,
2675 [out] WERROR
*rpc_status
2682 Opnum158NotUsedOnWire
(void);
2688 Opnum159NotUsedOnWire
(void);
2694 Opnum160NotUsedOnWire
(void);
2700 Opnum161NotUsedOnWire
(void);
2706 Opnum162NotUsedOnWire
(void);
2711 #define HGROUPSET_RPC policy_handle
2713 typedef [context_handle] void *HGROUPSET_RPC
;
2717 clusapi_CreateGroupSet
(
2718 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupSetName
,
2719 [ out ] WERROR
*Status
,
2720 [ out ] WERROR
*rpc_status
2724 clusapi_CreateGroupSet
(
2725 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupSetName
,
2726 [ out ] WERROR
*Status
,
2727 [ out ] WERROR
*rpc_status
,
2728 [ out ] HGROUPSET_RPC
*hGroupSet
2736 clusapi_OpenGroupSet
(
2737 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupSetName
,
2738 [ out ] WERROR
*Status
,
2739 [ out ] WERROR
*rpc_status
2743 clusapi_OpenGroupSet
(
2744 [ in, string ] [charset
(UTF16
)] uint16
*lpszGroupSetName
,
2745 [ out ] WERROR
*Status
,
2746 [ out ] WERROR
*rpc_status
,
2747 [ out ] HGROUPSET_RPC
*hGroupSet
2755 clusapi_CloseGroupSet
(
2756 [ in, out ] HGROUPSET_RPC
*GroupSet
2763 clusapi_DeleteGroupSet
(
2764 [ in ] HGROUPSET_RPC GroupSet
,
2765 [ out ] WERROR
*rpc_status
2772 clusapi_AddGroupToGroupSet
(
2773 [ in ] HGROUPSET_RPC GroupSet
,
2774 [ in ] HGROUP_RPC Group
,
2775 [ out ] WERROR
*rpc_status
2782 clusapi_RemoveGroupFromGroupSet
(
2783 [ in ] HGROUP_RPC Group
,
2784 [ out ] WERROR
*rpc_status
2791 clusapi_MoveGroupToGroupSet
(
2792 [ in ] HGROUPSET_RPC GroupSet
,
2793 [ in ] HGROUP_RPC Group
,
2794 [ out ] WERROR
*rpc_status
2801 Opnum170NotUsedOnWire
(void);
2807 clusapi_AddGroupSetDependency
(
2808 [ in ] HGROUPSET_RPC DependentGroupSet
,
2809 [ in ] HGROUPSET_RPC ProviderGroupSet
,
2810 [ out ] WERROR
*rpc_status
2817 clusapi_AddGroupToGroupSetDependency
(
2818 [ in ] HGROUP_RPC DependentGroup
,
2819 [ in ] HGROUPSET_RPC ProviderGroupSet
,
2820 [ out ] WERROR
*rpc_status
2826 typedef [v1_enum] enum {
2827 CLUSCTL_GROUPSET_GET_ID
= 0x08000039,
2828 CLUSCTL_GROUPSET_GET_RO_COMMON_PROPERTIES
= 0x08000055,
2829 CLUSCTL_GROUPSET_GET_COMMON_PROPERTIES
= 0x08000059,
2830 CLUSCTL_GROUPSET_GET_GROUPS
= 0x08002D71,
2831 CLUSCTL_GROUPSET_GET_PROVIDER_GROUPS
= 0x08002D75,
2832 CLUSCTL_GROUPSET_GET_PROVIDER_GROUPSETS
= 0x08002D79,
2833 CLUSCTL_GROUPSET_SET_COMMON_PROPERTIES
= 0x0840005E
2834 } clusapi_GroupSetControlCode
;
2837 clusapi_NodeGroupSetControl
(
2838 [ in ] HGROUPSET_RPC hGroupSet
,
2839 [ in ] HNODE_RPC hNode
,
2840 [ in ] clusapi_GroupSetControlCode dwControlCode
,
2841 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
2842 [ in ] uint32 nInBufferSize
,
2843 [ out, size_is(nOutBufferSize
), length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
2844 [ in, range(0, MAX_CLUSTER_CONTROL_CODE_BUFFER_SIZE
)] uint32 nOutBufferSize
,
2845 [ out ] uint32
*lpBytesReturned
,
2846 [ out ] uint32
*lpcbRequired
,
2847 [ out ] WERROR
*rpc_status
2854 clusapi_GroupSetControl
(
2855 [ in ] HGROUPSET_RPC hGroupSet
,
2856 [ in ] clusapi_GroupSetControlCode dwControlCode
,
2857 [ in, unique, size_is(nInBufferSize
) ] uint8
*lpInBuffer
,
2858 [ in ] uint32 nInBufferSize
,
2859 [ out, size_is(nOutBufferSize
), length_is (*lpBytesReturned
)] uint8
*lpOutBuffer
,
2860 [ in, range(0, 0x7FFFFFFF)] uint32 nOutBufferSize
,
2861 [ out ] uint32
*lpBytesReturned
,
2862 [ out ] uint32
*lpcbRequired
,
2863 [ out ] WERROR
*rpc_status
2870 clusapi_SetGroupDependencyExpression
(
2871 [ in ] HGROUP_RPC hGroup
,
2872 [ in, string ] [charset
(UTF16
)] uint16
*lpszDependencyExpression
,
2873 [ out ] WERROR
*rpc_status
2880 clusapi_RemoveClusterGroupDependency
(
2881 [ in ] HGROUP_RPC hGroup
,
2882 [ in ] HGROUP_RPC hDependsOn
,
2883 [ out ] WERROR
*rpc_status
2890 clusapi_SetGroupSetDependencyExpression
(
2891 [ in ] HGROUPSET_RPC hGroupSet
,
2892 [ in, string ] [charset
(UTF16
)] uint16
*lpszDependencyExpression
,
2893 [ out ] WERROR
*rpc_status
2900 clusapi_RemoveGroupSetDependency
(
2901 [ in ] HGROUPSET_RPC hGroupSet
,
2902 [ in ] HGROUPSET_RPC hDependsOn
,
2903 [ out ] WERROR
*rpc_status
2910 clusapi_RemoveClusterGroupToGroupSetDependency
(
2911 [ in ] HGROUP_RPC hGroup
,
2912 [ in ] HGROUPSET_RPC hDependsOn
,
2913 [ out ] WERROR
*rpc_status
2920 clusapi_CreateGroupSetEnum
(
2921 [ in ] HCLUSTER_RPC hCluster
,
2922 [ out ] ENUM_LIST
**ReturnEnum
,
2923 [ out ] WERROR
* rpc_status
2930 clusapi_CreateNetInterfaceEnum
(
2931 [in] HCLUSTER_RPC hCluster
,
2932 [in, string] [charset
(UTF16
)] uint16
*lpszNodeName
,
2933 [in, string] [charset
(UTF16
)] uint16
*lpszNetworkName
,
2934 [out] ENUM_LIST
**ReturnEnum
,
2935 [out] WERROR
* rpc_status
2942 clusapi_ChangeCsvStateEx
(
2943 [ in ] HRES_RPC hResource
,
2944 [ in ] uint32 dwState
,
2945 [ in, string ] [charset
(UTF16
)] uint16
*lpszVolumeName
,
2946 [ out ] WERROR
*rpc_status
2953 clusapi_AddGroupToGroupSetEx
(
2954 [ in ] HGROUPSET_RPC GroupSet
,
2955 [ in ] HGROUP_RPC Group
,
2956 [ in ] uint32 FaultDomain
,
2957 [ in ] uint32 UpdateDomain
,
2958 [ in ] boolean8 UseDomains
,
2959 [ in ] uint32
*Reserved
,
2960 [ out ] WERROR
*rpc_status