6 uuid(b97db8b2-4c63-11cf-bff6-08002be23f2f),
8 pointer_default(unique),
9 helpstring("Failover Cluster Management API (clusapi)")
14 typedef [context_handle] void *HCLUSTER_RPC;
15 typedef [context_handle] void *HNODE_RPC;
16 typedef [context_handle] void *HGROUP_RPC;
17 typedef [context_handle] void *HRES_RPC;
18 typedef [context_handle] void *HKEY_RPC;
19 typedef [context_handle] void *HNOTIFY_RPC;
20 typedef [context_handle] void *HNETWORK_RPC;
21 typedef [context_handle] void *HNETINTERFACE_RPC;
22 typedef [context_handle] void *HBATCH_PORT_RPC;
24 #define HCLUSTER_RPC policy_handle
25 #define HNODE_RPC policy_handle
26 #define HGROUP_RPC policy_handle
27 #define HRES_RPC policy_handle
28 #define HKEY_RPC policy_handle
29 #define HNOTIFY_RPC policy_handle
30 #define HNETWORK_RPC policy_handle
31 #define HNETINTERFACE_RPC policy_handle
32 #define HBATCH_PORT_RPC policy_handle
36 [ size_is( cbInSecurityDescriptor ), length_is( cbOutSecurityDescriptor ) ] uint8 *lpSecurityDescriptor;
37 uint32 cbInSecurityDescriptor;
38 uint32 cbOutSecurityDescriptor;
39 } RPC_SECURITY_DESCRIPTOR;
43 RPC_SECURITY_DESCRIPTOR RpcSecurityDescriptor;
45 } RPC_SECURITY_ATTRIBUTES;
48 [value(20)] uint32 dwSize;
49 uint32 dwClusterHighestVersion;
50 uint32 dwClusterLowestVersion;
53 } CLUSTER_OPERATIONAL_VERSION_INFO;
57 boolean8 SetAttempted;
59 } IDL_CLUSTER_SET_PASSWORD_STATUS;
62 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES = 1
63 } IDL_CLUSTER_SET_PASSWORD_FLAGS;
68 } CLUSTER_CREATE_GROUP_INFO_RPC;
76 [ out ] WERROR *Status
81 [ out ] WERROR *Status,
82 [ out ] HCLUSTER_RPC *Cluster
91 [ in, out ] HCLUSTER_RPC *Cluster
98 clusapi_SetClusterName(
99 [ in, string ] [charset(UTF16)] uint16 *NewClusterName,
100 [ out ] WERROR *rpc_status
107 clusapi_GetClusterName(
108 [ out, string ] [charset(UTF16)] uint16 **ClusterName,
109 [ out, string ] [charset(UTF16)] uint16 **NodeName
116 clusapi_GetClusterVersion(
117 [ out ] uint16 *lpwMajorVersion,
118 [ out ] uint16 *lpwMinorVersion,
119 [ out ] uint16 *lpwBuildNumber,
120 [ out, string ] [charset(UTF16)] uint16 **lpszVendorId,
121 [ out, string ] [charset(UTF16)] uint16 **lpszCSDVersion
128 clusapi_GetQuorumResource(
129 [ out, string ] [charset(UTF16)] uint16 **lpszResourceName,
130 [ out, string ] [charset(UTF16)] uint16 **lpszDeviceName,
131 [ out ] uint32 *pdwMaxQuorumLogSize,
132 [ out ] WERROR *rpc_status
139 clusapi_SetQuorumResource(
140 [ in ] HRES_RPC hResource,
141 [ in, string ] [charset(UTF16)] uint16 *lpszDeviceName,
142 [ in ] uint32 dwMaxQuorumLogSize,
143 [ out ] WERROR *rpc_status
146 typedef [bitmap32bit] bitmap {
147 CLUSTER_ENUM_NODE = 0x00000001,
148 CLUSTER_ENUM_RESTYPE = 0x00000002,
149 CLUSTER_ENUM_RESOURCE = 0x00000004,
150 CLUSTER_ENUM_GROUP = 0x00000008,
151 CLUSTER_ENUM_NETWORK = 0x00000010,
152 CLUSTER_ENUM_NETINTERFACE = 0x00000020,
153 CLUSTER_ENUM_INTERNAL_NETWORK = 0x80000000,
154 CLUSTER_ENUM_SHARED_VOLUME_RESOURCE = 0x40000000
158 ClusterEnumType Type;
159 [string] [charset(UTF16)] uint16 *Name;
164 [size_is(EntryCount)] ENUM_ENTRY Entry[*];
168 [string] [charset(UTF16)] uint16 *Name;
169 [string] [charset(UTF16)] uint16 *Id;
171 [string] [charset(UTF16)] uint16 *Owner;
174 [size_is(cbProperties)] uint8* Properties;
175 uint32 cbRoProperties;
176 [size_is(cbRoProperties)] uint8* RoProperties;
180 [string] [charset(UTF16)] uint16 *Name;
181 [string] [charset(UTF16)] uint16 *Id;
182 [string] [charset(UTF16)] uint16 *OwnerName;
183 [string] [charset(UTF16)] uint16 *OwnerId;
185 [size_is(cbProperties)] uint8* Properties;
186 uint32 cbRoProperties;
187 [size_is(cbRoProperties)] uint8* RoProperties;
188 } RESOURCE_ENUM_ENTRY;
192 [size_is(EntryCount)] GROUP_ENUM_ENTRY Entry[*];
197 [size_is(EntryCount)] RESOURCE_ENUM_ENTRY Entry[*];
198 } RESOURCE_ENUM_LIST;
205 [ in ] ClusterEnumType dwType,
206 [ out ] ENUM_LIST **ReturnEnum,
207 [ out ] WERROR *rpc_status
215 clusapi_OpenResource(
216 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
217 [ out ] WERROR *Status,
218 [ out ] WERROR *rpc_status
222 clusapi_OpenResource(
223 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
224 [ out ] WERROR *Status,
225 [ out ] WERROR *rpc_status,
226 [ out ] HRES_RPC *hResource
234 clusapi_CreateResource(
235 [ in ] HGROUP_RPC hGroup,
236 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
237 [ in, string ] [charset(UTF16)] uint16 *lpszResourceType,
238 [ in ] uint32 dwFlags,
239 [ out ] WERROR *Status,
240 [ out ] WERROR *rpc_status
244 clusapi_CreateResource(
245 [ in ] HGROUP_RPC hGroup,
246 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
247 [ in, string ] [charset(UTF16)] uint16 *lpszResourceType,
248 [ in ] uint32 dwFlags,
249 [ out ] WERROR *Status,
250 [ out ] WERROR *rpc_status,
251 [ out ] HRES_RPC *hResource
258 clusapi_DeleteResource(
259 [ in ] HRES_RPC hResource,
260 [ out ] WERROR *rpc_status
267 clusapi_CloseResource(
268 [ in, out ] HRES_RPC *Resource
274 typedef [v1_enum] enum {
275 ClusterResourceInitializing = 0x00000001,
276 ClusterResourceOnline = 0x00000002,
277 ClusterResourceOffline = 0x00000003,
278 ClusterResourceFailed = 0x00000004,
279 ClusterResourceOnlinePending = 0x00000081,
280 ClusterResourceOfflinePending = 0x00000082,
281 ClusterResourceStateUnknown = 0xFFFFFFFF
282 } clusapi_ClusterResourceState;
285 clusapi_GetResourceState(
286 [ in ] HRES_RPC hResource,
287 [ out ] clusapi_ClusterResourceState *State,
288 [ out, string ] [charset(UTF16)] uint16 **NodeName,
289 [ out, string ] [charset(UTF16)] uint16 **GroupName,
290 [ out ] WERROR *rpc_status
297 clusapi_SetResourceName(
298 [ in ] HRES_RPC hResource,
299 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
300 [ out ] WERROR *rpc_status
307 clusapi_GetResourceId(
308 [ in ] HRES_RPC hResource,
309 [ out, string ] [charset(UTF16)] uint16 **pGuid,
310 [ out ] WERROR *rpc_status
317 clusapi_GetResourceType(
318 [ in ] HRES_RPC hResource,
319 [ out, string ] [charset(UTF16)] uint16 **lpszResourceType,
320 [ out ] WERROR *rpc_status
327 clusapi_FailResource(
328 [ in ] HRES_RPC hResource,
329 [ out ] WERROR *rpc_status
336 clusapi_OnlineResource(
337 [ in ] HRES_RPC hResource,
338 [ out ] WERROR *rpc_status
345 clusapi_OfflineResource(
346 [ in ] HRES_RPC hResource,
347 [ out ] WERROR *rpc_status
354 clusapi_AddResourceDependency(
355 [ in ] HRES_RPC hResource,
356 [ in ] HRES_RPC hDependsOn,
357 [ out ] WERROR *rpc_status
364 clusapi_RemoveResourceDependency(
365 [ in ] HRES_RPC hResource,
366 [ in ] HRES_RPC hDependsOn,
367 [ out ] WERROR *rpc_status
374 clusapi_CanResourceBeDependent(
375 [ in ] HRES_RPC hResource,
376 [ in ] HRES_RPC hResourceDependent,
377 [ out ] WERROR *rpc_status
384 clusapi_CreateResEnum(
385 [ in ] HRES_RPC hResource,
386 [ in ] uint32 dwType,
387 [ out ] ENUM_LIST **ReturnEnum,
388 [ out ] WERROR *rpc_status
395 clusapi_AddResourceNode(
396 [ in ] HRES_RPC hResource,
397 [ in ] HNODE_RPC hNode,
398 [ out ] WERROR *rpc_status
405 clusapi_RemoveResourceNode(
406 [ in ] HRES_RPC hResource,
407 [ in ] HNODE_RPC hNode,
408 [ out ] WERROR *rpc_status
415 clusapi_ChangeResourceGroup(
416 [ in ] HRES_RPC hResource,
417 [ in ] HGROUP_RPC hGroup,
418 [ out ] WERROR *rpc_status
425 clusapi_CreateResourceType(
426 [ in, string ] [charset(UTF16)] uint16 *lpszTypeName,
427 [ in, string ] [charset(UTF16)] uint16 *lpszDisplayName,
428 [ in, string ] [charset(UTF16)] uint16 *lpszDllName,
429 [ in ] uint32 dwLooksAlive,
430 [ in ] uint32 dwIsAlive,
431 [ out ] WERROR *rpc_status
438 clusapi_DeleteResourceType(
439 [ in, string ] [charset(UTF16)] uint16 *lpszTypeName,
440 [ out ] WERROR *rpc_status
448 [ in ] uint32 samDesired,
449 [ out ] WERROR *Status,
450 [ out ] WERROR *rpc_status
455 [ in ] uint32 samDesired,
456 [ out ] WERROR *Status,
457 [ out ] WERROR *rpc_status,
458 [ out ] HKEY_RPC *phKey
466 [ in ] HKEY_RPC hKey,
467 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
468 [ in ] uint32 dwOptions,
469 [ in ] uint32 samDesired,
470 [ in, unique ] RPC_SECURITY_ATTRIBUTES *lpSecurityAttributes,
471 [ out ] uint32 *lpdwDisposition,
472 [ out ] WERROR *Status,
473 [ out ] WERROR *rpc_status
478 [ in ] HKEY_RPC hKey,
479 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
480 [ in ] uint32 dwOptions,
481 [ in ] uint32 samDesired,
482 [ in, unique ] RPC_SECURITY_ATTRIBUTES *lpSecurityAttributes,
483 [ out ] uint32 *lpdwDisposition,
484 [ out ] WERROR *Status,
485 [ out ] WERROR *rpc_status,
486 [ out ] HKEY_RPC *phKey
494 [ in ] HKEY_RPC hKey,
495 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
496 [ in ] uint32 samDesired,
497 [ out ] WERROR *Status,
498 [ out ] WERROR *rpc_status
503 [ in ] HKEY_RPC hKey,
504 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
505 [ in ] uint32 samDesired,
506 [ out ] WERROR *Status,
507 [ out ] WERROR *rpc_status,
508 [ out ] HKEY_RPC *phKey
516 [ in ] HKEY_RPC hKey,
517 [ in ] uint32 dwIndex,
518 [ out, string ] [charset(UTF16)] uint16 **KeyName,
519 [ out ] NTTIME *lpftLastWriteTime,
520 [ out ] WERROR *rpc_status
528 [ in ] HKEY_RPC hKey,
529 [ in, string ] [charset(UTF16)] uint16 *lpValueName,
530 [ in ] uint32 dwType,
531 [ in, size_is(cbData) ] uint8 *lpData,
532 [ in ] uint32 cbData,
533 [ out ] WERROR *rpc_status
541 [ in ] HKEY_RPC hKey,
542 [ in, string ] [charset(UTF16)] uint16 *lpValueName,
543 [ out ] WERROR *rpc_status
551 [ in ] HKEY_RPC hKey,
552 [ in, string ] [charset(UTF16)] uint16 *lpValueName,
553 [ out ] uint32 *lpValueType,
554 [ out, size_is(cbData) ] uint8 *lpData,
555 [ in ] uint32 cbData,
556 [ out ] uint32 *lpcbRequired,
557 [ out ] WERROR *rpc_status
565 [ in ] HKEY_RPC hKey,
566 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
567 [ out ] WERROR *rpc_status
575 [ in ] HKEY_RPC hKey,
576 [ in ] uint32 dwIndex,
577 [ out, string ] [charset(UTF16)] uint16 **lpValueName,
578 [ out ] uint32 *lpType,
579 [ out, size_is(*lpcbData) ] uint8 *lpData,
580 [ in, out ] uint32 *lpcbData,
581 [ out ] uint32 *TotalSize,
582 [ out ] WERROR *rpc_status
590 [ in, out ] HKEY_RPC *pKey
597 clusapi_QueryInfoKey(
598 [ in ] HKEY_RPC hKey,
599 [ out ] uint32 *lpcSubKeys,
600 [ out ] uint32 *lpcbMaxSubKeyLen,
601 [ out ] uint32 *lpcValues,
602 [ out ] uint32 *lpcbMaxValueNameLen,
603 [ out ] uint32 *lpcbMaxValueLen,
604 [ out ] uint32 *lpcbSecurityDescriptor,
605 [ out ] NTTIME *lpftLastWriteTime,
606 [ out ] WERROR *rpc_status
613 clusapi_SetKeySecurity(
614 [ in ] HKEY_RPC hKey,
615 [ in ] uint32 SecurityInformation,
616 [ in ] RPC_SECURITY_DESCRIPTOR *pRpcSecurityDescriptor,
617 [ out ] WERROR *rpc_status
624 clusapi_GetKeySecurity(
625 [ in ] HKEY_RPC hKey,
626 [ in ] uint32 SecurityInformation,
627 [ in, out ] RPC_SECURITY_DESCRIPTOR *pRpcSecurityDescriptor,
628 [ out ] WERROR *rpc_status
636 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
637 [ out ] WERROR *Status,
638 [ out ] WERROR *rpc_status
643 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
644 [ out ] WERROR *Status,
645 [ out ] WERROR *rpc_status,
646 [ out ] HGROUP_RPC *hGroup
654 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
655 [ out ] WERROR *Status,
656 [ out ] WERROR *rpc_status
661 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
662 [ out ] WERROR *Status,
663 [ out ] WERROR *rpc_status,
664 [ out ] HGROUP_RPC *hGroup
672 [ in ] HGROUP_RPC Group,
673 [ in ] boolean8 force,
674 [ out ] WERROR *rpc_status
682 [ in, out ] HGROUP_RPC *Group
688 typedef [v1_enum] enum {
689 ClusterGroupOnline = 0x00000000,
690 ClusterGroupOffline = 0x00000001,
691 ClusterGroupFailed = 0x00000002,
692 ClusterGroupPartialOnline = 0x00000003,
693 ClusterGroupPending = 0x00000004,
694 ClusterGroupStateUnknown = 0xFFFFFFFF
695 } clusapi_ClusterGroupState;
698 clusapi_GetGroupState(
699 [ in ] HGROUP_RPC hGroup,
700 [ out ] clusapi_ClusterGroupState *State,
701 [ out, string ] [charset(UTF16)] uint16 **NodeName,
702 [ out ] WERROR *rpc_status
709 clusapi_SetGroupName(
710 [ in ] HGROUP_RPC hGroup,
711 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
712 [ out ] WERROR *rpc_status
720 [ in ] HGROUP_RPC hGroup,
721 [ out, string ] [charset(UTF16)] uint16 **pGuid,
722 [ out ] WERROR *rpc_status
730 [ in ] HNODE_RPC hNode,
731 [ out, string ] [charset(UTF16)] uint16 **pGuid,
732 [ out ] WERROR *rpc_status
740 [ in ] HGROUP_RPC hGroup,
741 [ out ] WERROR *rpc_status
748 clusapi_OfflineGroup(
749 [ in ] HGROUP_RPC hGroup,
750 [ out ] WERROR *rpc_status
758 [ in ] HGROUP_RPC hGroup,
759 [ out ] WERROR *rpc_status
766 clusapi_MoveGroupToNode(
767 [ in ] HGROUP_RPC hGroup,
768 [ in ] HNODE_RPC hNode,
769 [ out ] WERROR *rpc_status
776 clusapi_CreateGroupResourceEnum(
777 [ in ] HGROUP_RPC hGroup,
778 [ in ] uint32 dwType,
779 [ out ] ENUM_LIST **ReturnEnum,
780 [ out ] WERROR *rpc_status
787 clusapi_SetGroupNodeList(
788 [ in ] HGROUP_RPC hGroup,
789 [ in, unique, size_is(cchListSize) ] uint16 *multiSzNodeList,
790 [ in ] uint32 cchListSize,
791 [ out ] WERROR *rpc_status
798 clusapi_CreateNotify(
799 [ out ] WERROR *Status,
800 [ out ] WERROR *rpc_status
804 clusapi_CreateNotify(
805 [ out ] WERROR *Status,
806 [ out ] WERROR *rpc_status,
807 [ out ] HNOTIFY_RPC *hNotify
815 [ in, out ] HNOTIFY_RPC *Notify
822 clusapi_AddNotifyCluster(
823 [ in ] HNOTIFY_RPC hNotify,
824 [ in ] HCLUSTER_RPC hCluster,
825 [ in ] uint32 dwFilter,
826 [ in ] uint32 dwNotifyKey,
827 [ out ] WERROR *rpc_status
834 clusapi_AddNotifyNode(
835 [ in ] HNOTIFY_RPC hNotify,
836 [ in ] HNODE_RPC hNode,
837 [ in ] uint32 dwFilter,
838 [ in ] uint32 dwNotifyKey,
839 [ out ] uint32 *dwStateSequence,
840 [ out ] WERROR *rpc_status
847 clusapi_AddNotifyGroup(
848 [ in ] HNOTIFY_RPC hNotify,
849 [ in ] HGROUP_RPC hGroup,
850 [ in ] uint32 dwFilter,
851 [ in ] uint32 dwNotifyKey,
852 [ out ] uint32 *dwStateSequence,
853 [ out ] WERROR *rpc_status
860 clusapi_AddNotifyResource(
861 [ in ] HNOTIFY_RPC hNotify,
862 [ in ] HRES_RPC hResource,
863 [ in ] uint32 dwFilter,
864 [ in ] uint32 dwNotifyKey,
865 [ out ] uint32 *dwStateSequence,
866 [ out ] WERROR *rpc_status
873 clusapi_AddNotifyKey(
874 [ in ] HNOTIFY_RPC hNotify,
875 [ in ] HKEY_RPC hKey,
876 [ in ] uint32 dwNotifyKey,
877 [ in ] uint32 Filter,
878 [ in ] boolean8 WatchSubTree,
879 [ out ] WERROR *rpc_status
886 clusapi_ReAddNotifyNode(
887 [ in ] HNOTIFY_RPC hNotify,
888 [ in ] HNODE_RPC hNode,
889 [ in ] uint32 dwFilter,
890 [ in ] uint32 dwNotifyKey,
891 [ in ] uint32 StateSequence,
892 [ out ] WERROR *rpc_status
899 clusapi_ReAddNotifyGroup(
900 [ in ] HNOTIFY_RPC hNotify,
901 [ in ] HGROUP_RPC hGroup,
902 [ in ] uint32 dwFilter,
903 [ in ] uint32 dwNotifyKey,
904 [ in ] uint32 StateSequence,
905 [ out ] WERROR *rpc_status
912 clusapi_ReAddNotifyResource(
913 [ in ] HNOTIFY_RPC hNotify,
914 [ in ] HRES_RPC hResource,
915 [ in ] uint32 dwFilter,
916 [ in ] uint32 dwNotifyKey,
917 [ in ] uint32 StateSequence,
918 [ out ] WERROR *rpc_status
926 [ in ] HNOTIFY_RPC hNotify,
927 [ out ] uint32 *dwNotifyKey,
928 [ out ] uint32 *dwFilter,
929 [ out ] uint32 *dwStateSequence,
930 [ out, string ] [charset(UTF16)] uint16 **Name,
931 [ out ] WERROR *rpc_status
939 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
940 [ out ] WERROR *Status,
941 [ out ] WERROR *rpc_status
946 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
947 [ out ] WERROR *Status,
948 [ out ] WERROR *rpc_status,
949 [ out ] HNODE_RPC *hNode
957 [ in, out ] HNODE_RPC *Node
963 typedef [v1_enum] enum {
964 ClusterNodeUp = 0x00000000,
965 ClusterNodeDown = 0x00000001,
966 ClusterNodePaused = 0x00000002,
967 ClusterNodeJoining = 0x00000003,
968 ClusterNodeStateUnknown = 0xFFFFFFFF
969 } clusapi_ClusterNodeState;
972 clusapi_GetNodeState(
973 [ in ] HNODE_RPC hNode,
974 [ out ] clusapi_ClusterNodeState *State,
975 [ out ] WERROR *rpc_status
983 [ in ] HNODE_RPC hNode,
984 [ out ] WERROR *rpc_status
992 [ in ] HNODE_RPC hNode,
993 [ out ] WERROR *rpc_status
1001 [ in ] HNODE_RPC hNode,
1002 [ out ] WERROR *rpc_status
1009 clusapi_NodeResourceControl(
1010 [ in ] HRES_RPC hResource,
1011 [ in ] HNODE_RPC hNode,
1012 [ in ] uint32 dwControlCode,
1013 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1014 [ in ] uint32 nInBufferSize,
1015 [ out, size_is(nOutBufferSize),
1016 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1017 [ in ] uint32 nOutBufferSize,
1018 [ out ] uint32 *lpBytesReturned,
1019 [ out ] uint32 *lpcbRequired,
1020 [ out ] WERROR *rpc_status
1027 clusapi_ResourceControl(
1028 [ in ] HRES_RPC hResource,
1029 [ in ] uint32 dwControlCode,
1030 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1031 [ in ] uint32 nInBufferSize,
1032 [ out, size_is(nOutBufferSize),
1033 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1034 [ in ] uint32 nOutBufferSize,
1035 [ out ] uint32 *lpBytesReturned,
1036 [ out ] uint32 *lpcbRequired,
1037 [ out ] WERROR *rpc_status
1044 clusapi_NodeResourceTypeControl(
1045 [ in ] HCLUSTER_RPC hCluster,
1046 [ in, string ] [charset(UTF16)] uint16 *lpszResourceTypeName,
1047 [ in ] HNODE_RPC hNode,
1048 [ in ] uint32 dwControlCode,
1049 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1050 [ in ] uint32 nInBufferSize,
1051 [ out, size_is(nOutBufferSize),
1052 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1053 [ in ] uint32 nOutBufferSize,
1054 [ out ] uint32 *lpBytesReturned,
1055 [ out ] uint32 *lpcbRequired,
1056 [ out ] WERROR *rpc_status
1063 clusapi_ResourceTypeControl(
1064 [ in ] HCLUSTER_RPC hCluster,
1065 [ in, string ] [charset(UTF16)] uint16 *lpszResourceTypeName,
1066 [ in ] uint32 dwControlCode,
1067 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1068 [ in ] uint32 nInBufferSize,
1069 [ out, size_is(nOutBufferSize),
1070 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1071 [ in ] uint32 nOutBufferSize,
1072 [ out ] uint32 *lpBytesReturned,
1073 [ out ] uint32 *lpcbRequired,
1074 [ out ] WERROR *rpc_status
1081 clusapi_NodeGroupControl(
1082 [ in ] HGROUP_RPC hGroup,
1083 [ in ] HNODE_RPC hNode,
1084 [ in ] uint32 dwControlCode,
1085 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1086 [ in ] uint32 nInBufferSize,
1087 [ out, size_is(nOutBufferSize),
1088 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1089 [ in ] uint32 nOutBufferSize,
1090 [ out ] uint32 *lpBytesReturned,
1091 [ out ] uint32 *lpcbRequired,
1092 [ out ] WERROR *rpc_status
1099 clusapi_GroupControl(
1100 [ in ] HGROUP_RPC hGroup,
1101 [ in ] uint32 dwControlCode,
1102 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1103 [ in ] uint32 nInBufferSize,
1104 [ out, size_is(nOutBufferSize),
1105 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1106 [ in ] uint32 nOutBufferSize,
1107 [ out ] uint32 *lpBytesReturned,
1108 [ out ] uint32 *lpcbRequired,
1109 [ out ] WERROR *rpc_status
1116 clusapi_NodeNodeControl(
1117 [ in ] HNODE_RPC hNode,
1118 [ in ] HNODE_RPC hHostNode,
1119 [ in ] uint32 dwControlCode,
1120 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1121 [ in ] uint32 nInBufferSize,
1122 [ out, size_is(nOutBufferSize),
1123 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1124 [ in ] uint32 nOutBufferSize,
1125 [ out ] uint32 *lpBytesReturned,
1126 [ out ] uint32 *lpcbRequired,
1127 [ out ] WERROR *rpc_status
1134 clusapi_NodeControl(
1135 [ in ] HNODE_RPC hNode,
1136 [ in ] uint32 dwControlCode,
1137 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1138 [ in ] uint32 nInBufferSize,
1139 [ out, size_is(nOutBufferSize),
1140 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1141 [ in ] uint32 nOutBufferSize,
1142 [ out ] uint32 *lpBytesReturned,
1143 [ out ] uint32 *lpcbRequired,
1144 [ out ] WERROR *rpc_status
1151 Opnum80NotUsedOnWire(void);
1157 clusapi_OpenNetwork(
1158 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1159 [ out ] WERROR *Status,
1160 [ out ] WERROR *rpc_status
1164 clusapi_OpenNetwork(
1165 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1166 [ out ] WERROR *Status,
1167 [ out ] WERROR *rpc_status,
1168 [ out ] HNETWORK_RPC *hNetwork
1175 clusapi_CloseNetwork(
1176 [ in, out ] HNETWORK_RPC *Network
1183 clusapi_GetNetworkState(
1184 [ in ] HNETWORK_RPC hNetwork,
1185 [ out ] uint32 *State,
1186 [ out ] WERROR *rpc_status
1193 clusapi_SetNetworkName(
1194 [ in ] HNETWORK_RPC hNetwork,
1195 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1196 [ out ] WERROR *rpc_status
1203 clusapi_CreateNetworkEnum(
1204 [ in ] HNETWORK_RPC hNetwork,
1205 [ in ] uint32 dwType,
1206 [ out ] ENUM_LIST **ReturnEnum,
1207 [ out ] WERROR *rpc_status
1214 clusapi_GetNetworkId(
1215 [ in ] HNETWORK_RPC hNetwork,
1216 [ out, string ] [charset(UTF16)] uint16 **pGuid,
1217 [ out ] WERROR *rpc_status
1224 clusapi_SetNetworkPriorityOrder(
1225 [ in, range(0, 1000)] uint32 NetworkCount,
1226 [ in, string, size_is(NetworkCount) ] [charset(UTF16)] uint16 NetworkIdList[*],
1227 [ out ] WERROR *rpc_status
1234 clusapi_NodeNetworkControl(
1235 [ in ] HNETWORK_RPC hNetwork,
1236 [ in ] HNODE_RPC hNode,
1237 [ in ] uint32 dwControlCode,
1238 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1239 [ in ] uint32 nInBufferSize,
1240 [ out, size_is(nOutBufferSize),
1241 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1242 [ in ] uint32 nOutBufferSize,
1243 [ out ] uint32 *lpBytesReturned,
1244 [ out ] uint32 *lpcbRequired,
1245 [ out ] WERROR *rpc_status
1252 clusapi_NetworkControl(
1253 [ in ] HNETWORK_RPC hNetwork,
1254 [ in ] uint32 dwControlCode,
1255 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1256 [ in ] uint32 nInBufferSize,
1257 [ out, size_is(nOutBufferSize),
1258 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1259 [ in ] uint32 nOutBufferSize,
1260 [ out ] uint32 *lpBytesReturned,
1261 [ out ] uint32 *lpcbRequired,
1262 [ out ] WERROR *rpc_status
1269 clusapi_AddNotifyNetwork(
1270 [ in ] HNOTIFY_RPC hNotify,
1271 [ in ] HNETWORK_RPC hNetwork,
1272 [ in ] uint32 dwFilter,
1273 [ in ] uint32 dwNotifyKey,
1274 [ out ] uint32 *dwStateSequence,
1275 [ out ] WERROR *rpc_status
1282 clusapi_ReAddNotifyNetwork(
1283 [ in ] HNOTIFY_RPC hNotify,
1284 [ in ] HNETWORK_RPC hNetwork,
1285 [ in ] uint32 dwFilter,
1286 [ in ] uint32 dwNotifyKey,
1287 [ in ] uint32 StateSequence,
1288 [ out ] WERROR *rpc_status
1295 clusapi_OpenNetInterface(
1296 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1297 [ out ] WERROR *Status,
1298 [ out ] WERROR *rpc_status
1302 clusapi_OpenNetInterface(
1303 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1304 [ out ] WERROR *Status,
1305 [ out ] WERROR *rpc_status,
1306 [ out ] HNETINTERFACE_RPC *hNetInterface
1313 clusapi_CloseNetInterface(
1314 [ in, out ] HNETINTERFACE_RPC *NetInterface
1321 clusapi_GetNetInterfaceState(
1322 [ in ] HNETINTERFACE_RPC hNetInterface,
1323 [ out ] uint32 *State,
1324 [ out ] WERROR *rpc_status
1331 clusapi_GetNetInterface(
1332 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
1333 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1334 [ out, string ] [charset(UTF16)] uint16 **lppszInterfaceName,
1335 [ out ] WERROR *rpc_status
1342 clusapi_GetNetInterfaceId(
1343 [ in ] HNETINTERFACE_RPC hNetInterface,
1344 [ out, string ] [charset(UTF16)] uint16 **pGuid,
1345 [ out ] WERROR *rpc_status
1352 clusapi_NodeNetInterfaceControl(
1353 [ in ] HNETINTERFACE_RPC hNetInterface,
1354 [ in ] HNODE_RPC hNode,
1355 [ in ] uint32 dwControlCode,
1356 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1357 [ in ] uint32 nInBufferSize,
1358 [ out, size_is(nOutBufferSize),
1359 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1360 [ in ] uint32 nOutBufferSize,
1361 [ out ] uint32 *lpBytesReturned,
1362 [ out ] uint32 *lpcbRequired,
1363 [ out ] WERROR *rpc_status
1370 clusapi_NetInterfaceControl(
1371 [ in ] HNETINTERFACE_RPC hNetInterface,
1372 [ in ] uint32 dwControlCode,
1373 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1374 [ in ] uint32 nInBufferSize,
1375 [ out, size_is(nOutBufferSize),
1376 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1377 [ in ] uint32 nOutBufferSize,
1378 [ out ] uint32 *lpBytesReturned,
1379 [ out ] uint32 *lpcbRequired,
1380 [ out ] WERROR *rpc_status
1387 clusapi_AddNotifyNetInterface(
1388 [ in ] HNOTIFY_RPC hNotify,
1389 [ in ] HNETINTERFACE_RPC hNetInterface,
1390 [ in ] uint32 dwFilter,
1391 [ in ] uint32 dwNotifyKey,
1392 [ out ] uint32 *dwStateSequence,
1393 [ out ] WERROR *rpc_status
1400 clusapi_ReAddNotifyNetInterface(
1401 [ in ] HNOTIFY_RPC hNotify,
1402 [ in ] HNETINTERFACE_RPC hNetInterface,
1403 [ in ] uint32 dwFilter,
1404 [ in ] uint32 dwNotifyKey,
1405 [ in ] uint32 StateSequence,
1406 [ out ] WERROR *rpc_status
1413 clusapi_CreateNodeEnum(
1414 [ in ] HNODE_RPC hNode,
1415 [ in ] uint32 dwType,
1416 [ out ] ENUM_LIST **ReturnEnum,
1417 [ out ] WERROR *rpc_status
1424 clusapi_GetClusterVersion2(
1425 [ out ] uint16 *lpwMajorVersion,
1426 [ out ] uint16 *lpwMinorVersion,
1427 [ out ] uint16 *lpwBuildNumber,
1428 [ out, string ] [charset(UTF16)] uint16 **lpszVendorId,
1429 [ out, string ] [charset(UTF16)] uint16 **lpszCSDVersion,
1430 [ out ] CLUSTER_OPERATIONAL_VERSION_INFO **ppClusterOpVerInfo,
1431 [ out ] WERROR *rpc_status
1438 clusapi_CreateResTypeEnum(
1439 [ in, string ] [charset(UTF16)] uint16 *lpszTypeName,
1440 [ in ] uint32 dwType,
1441 [ out ] ENUM_LIST **ReturnEnum,
1442 [ out ] WERROR *rpc_status
1449 clusapi_BackupClusterDatabase(
1450 [ in, string ] [charset(UTF16)] uint16 *lpszPathName,
1451 [ out ] WERROR *rpc_status
1458 clusapi_NodeClusterControl(
1459 [ in ] HCLUSTER_RPC hCluster,
1460 [ in ] HNODE_RPC hHostNode,
1461 [ in ] uint32 dwControlCode,
1462 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1463 [ in ] uint32 nInBufferSize,
1464 [ out, size_is(nOutBufferSize),
1465 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1466 [ in ] uint32 nOutBufferSize,
1467 [ out ] uint32 *lpBytesReturned,
1468 [ out ] uint32 *lpcbRequired,
1469 [ out ] WERROR *rpc_status
1476 clusapi_ClusterControl(
1477 [ in ] HCLUSTER_RPC hCluster,
1478 [ in ] uint32 dwControlCode,
1479 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1480 [ in ] uint32 nInBufferSize,
1481 [ out, size_is(nOutBufferSize),
1482 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1483 [ in ] uint32 nOutBufferSize,
1484 [ out ] uint32 *lpBytesReturned,
1485 [ out ] uint32 *lpcbRequired,
1486 [ out ] WERROR *rpc_status
1493 clusapi_UnblockGetNotifyCall(
1494 [ in ] HNOTIFY_RPC hNotify
1501 clusapi_SetServiceAccountPassword(
1502 [ in, string ] [charset(UTF16)] uint16 *lpszNewPassword,
1503 [ in ] IDL_CLUSTER_SET_PASSWORD_FLAGS dwFlags,
1504 [ out, size_is(ReturnStatusBufferSize), length_is(*SizeReturned) ]
1505 IDL_CLUSTER_SET_PASSWORD_STATUS ReturnStatusBufferPtr[*],
1506 [ in, range(0, (64 * 1024)) ] uint32 ReturnStatusBufferSize,
1507 [ out ] uint32 *SizeReturned,
1508 [ out ] uint32 *ExpectedBufferSize
1515 clusapi_SetResourceDependencyExpression(
1516 [ in ] HRES_RPC hResource,
1517 [ in, string, unique ] [charset(UTF16)] uint16 *lpszDependencyExpression,
1518 [ out ] WERROR *rpc_status
1525 clusapi_GetResourceDependencyExpression(
1526 [ in ] HRES_RPC hResource,
1527 [ out, string ] [charset(UTF16)] uint16 **lpszDependencyExpression,
1528 [ out ] WERROR *rpc_status
1535 Opnum111NotUsedOnWire(void);
1541 clusapi_GetResourceNetworkName(
1542 [ in ] HRES_RPC hResource,
1543 [ out, string ] [charset(UTF16)] uint16 **lpszName,
1544 [ out ] WERROR *rpc_status
1551 clusapi_ExecuteBatch(
1552 [ in ] HKEY_RPC hKey,
1553 [ in ] uint32 cbData,
1554 [ in, size_is(cbData)] uint8 *lpData,
1555 [ out ] int *pdwFailedCommand,
1556 [ out ] WERROR *rpc_status
1563 clusapi_CreateBatchPort(
1564 [ in ] HKEY_RPC hKey,
1565 [ out ] HBATCH_PORT_RPC *phBatchPort,
1566 [ out ] WERROR *rpc_status
1573 clusapi_GetBatchNotification(
1574 [ in ] HBATCH_PORT_RPC hBatchNotify,
1575 [ out ] uint32 *cbData,
1576 [ out, size_is(,*cbData) ] uint8 ** lpData
1583 clusapi_CloseBatchPort(
1584 [ in, out ] HBATCH_PORT_RPC *phBatchPort
1591 clusapi_OpenClusterEx(
1592 [ in ] uint32 dwDesiredAccess,
1593 [ out ] uint32 *lpdwGrantedAccess,
1594 [ out ] WERROR *Status
1598 clusapi_OpenClusterEx(
1599 [ in ] uint32 dwDesiredAccess,
1600 [ out ] uint32 *lpdwGrantedAccess,
1601 [ out ] WERROR *Status,
1602 [ out ] HCLUSTER_RPC *hCluster
1611 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
1612 [ in ] uint32 dwDesiredAccess,
1613 [ out ] uint32 *lpdwGrantedAccess,
1614 [ out ] WERROR *Status,
1615 [ out ] WERROR *rpc_status
1620 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
1621 [ in ] uint32 dwDesiredAccess,
1622 [ out ] uint32 *lpdwGrantedAccess,
1623 [ out ] WERROR *Status,
1624 [ out ] WERROR *rpc_status,
1625 [ out ] HNODE_RPC *hNode
1632 clusapi_OpenGroupEx(
1633 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1634 [ in ] uint32 dwDesiredAccess,
1635 [ out ] uint32 *lpdwGrantedAccess,
1636 [ out ] WERROR *Status,
1637 [ out ] WERROR *rpc_status
1641 clusapi_OpenGroupEx(
1642 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1643 [ in ] uint32 dwDesiredAccess,
1644 [ out ] uint32 *lpdwGrantedAccess,
1645 [ out ] WERROR *Status,
1646 [ out ] WERROR *rpc_status,
1647 [ out ] HGROUP_RPC *hGroup
1654 clusapi_OpenResourceEx(
1655 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
1656 [ in ] uint32 dwDesiredAccess,
1657 [ out ] uint32 *lpdwGrantedAccess,
1658 [ out ] WERROR *Status,
1659 [ out ] WERROR *rpc_status
1663 clusapi_OpenResourceEx(
1664 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
1665 [ in ] uint32 dwDesiredAccess,
1666 [ out ] uint32 *lpdwGrantedAccess,
1667 [ out ] WERROR *Status,
1668 [ out ] WERROR *rpc_status,
1669 [ out ] HRES_RPC *hResource
1676 clusapi_OpenNetworkEx(
1677 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1678 [ in ] uint32 dwDesiredAccess,
1679 [ out ] uint32 *lpdwGrantedAccess,
1680 [ out ] WERROR *Status,
1681 [ out ] WERROR *rpc_status
1685 clusapi_OpenNetworkEx(
1686 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1687 [ in ] uint32 dwDesiredAccess,
1688 [ out ] uint32 *lpdwGrantedAccess,
1689 [ out ] WERROR *Status,
1690 [ out ] WERROR *rpc_status,
1691 [ out ] HNETWORK_RPC *hNetwork
1698 clusapi_OpenNetInterfaceEx(
1699 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1700 [ in ] uint32 dwDesiredAccess,
1701 [ out ] uint32 *lpdwGrantedAccess,
1702 [ out ] WERROR *Status,
1703 [ out ] WERROR *rpc_status
1707 clusapi_OpenNetInterfaceEx(
1708 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1709 [ in ] uint32 dwDesiredAccess,
1710 [ out ] uint32 *lpdwGrantedAccess,
1711 [ out ] WERROR *Status,
1712 [ out ] WERROR *rpc_status,
1713 [ out ] HNETINTERFACE_RPC *hNetInterface
1720 clusapi_ChangeCsvState(
1721 [ in ] HRES_RPC hResource,
1722 [ in ] uint32 dwState,
1723 [ out ] WERROR *rpc_status
1730 clusapi_CreateNodeEnumEx(
1731 [in] HNODE_RPC hNode,
1733 [in] uint32 dwOptions,
1734 [out] ENUM_LIST **ReturnIdEnum,
1735 [out] ENUM_LIST **ReturnNameEnum,
1736 [out] WERROR* rpc_status
1743 clusapi_CreateEnumEx(
1744 [in] HCLUSTER_RPC hCluster,
1746 [in] uint32 dwOptions,
1747 [out] ENUM_LIST **ReturnIdEnum,
1748 [out] ENUM_LIST **ReturnNameEnum,
1749 [out] WERROR* rpc_status
1756 clusapi_PauseNodeEx(
1757 [ in ] HNODE_RPC hNode,
1758 [ in ] boolean8 bDrainNode,
1759 [ in ] uint32 dwPauseFlags,
1760 [ out ] WERROR *rpc_status
1767 clusapi_PauseNodeWithDrainTarget(
1768 [ in ] HNODE_RPC hNode,
1769 [ in ] uint32 dwPauseFlags,
1770 [ in ] HNODE_RPC hNodeDrainTarget,
1771 [ out ] WERROR *rpc_status
1778 clusapi_ResumeNodeEx(
1779 [ in ] HNODE_RPC hNode,
1780 [ in ] uint32 dwResumeFailbackType,
1781 [ in ] uint32 dwResumeFlagsReserved,
1782 [ out ] WERROR *rpc_status
1789 clusapi_CreateGroupEx(
1790 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1791 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC *pGroupInfo,
1792 [ out ] WERROR *Status,
1793 [ out ] WERROR *rpc_status
1797 clusapi_CreateGroupEx(
1798 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1799 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC *pGroupInfo,
1800 [ out ] WERROR *Status,
1801 [ out ] WERROR *rpc_status,
1802 [ out ] HGROUP_RPC *hGroup
1809 clusapi_OnlineGroupEx(
1810 [ in ] HGROUP_RPC hGroup,
1811 [ in ] uint32 dwOnlineFlags,
1812 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1813 [ in ] uint32 cbInBufferSize,
1814 [ out ] WERROR *rpc_status
1821 clusapi_OfflineGroupEx(
1822 [ in ] HGROUP_RPC hGroup,
1823 [ in ] uint32 dwOfflineFlags,
1824 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1825 [ in ] uint32 cbInBufferSize,
1826 [ out ] WERROR *rpc_status
1833 clusapi_MoveGroupEx(
1834 [ in ] HGROUP_RPC hGroup,
1835 [ in ] uint32 dwMoveFlags,
1836 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1837 [ in ] uint32 cbInBufferSize,
1838 [ out ] WERROR *rpc_status
1845 clusapi_MoveGroupToNodeEx(
1846 [ in ] HGROUP_RPC hGroup,
1847 [ in ] HNODE_RPC hNode,
1848 [ in ] uint32 dwMoveFlags,
1849 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1850 [ in ] uint32 cbInBufferSize,
1851 [ out ] WERROR *rpc_status
1858 clusapi_CancelClusterGroupOperation(
1859 [ in ] HGROUP_RPC hGroup,
1860 [ in ] uint32 dwCancelFlags,
1861 [ out ] WERROR *rpc_status
1868 clusapi_OnlineResourceEx(
1869 [ in ] HRES_RPC hResource,
1870 [ in ] uint32 dwOnlineFlags,
1871 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1872 [ in ] uint32 cbInBufferSize,
1873 [ out ] WERROR *rpc_status
1880 clusapi_OfflineResourceEx(
1881 [ in ] HRES_RPC hResource,
1882 [ in ] uint32 dwOfflineFlags,
1883 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1884 [ in ] uint32 cbInBufferSize,
1885 [ out ] WERROR *rpc_status
1888 #define HGENERIC_RPC policy_handle
1890 typedef [context_handle] void *HGENERIC_RPC;
1894 uint32 dwObjectType; // really of type CLUSTER_OBJECT_TYPE_RPC
1896 } NOTIFY_FILTER_AND_TYPE_RPC;
1899 NOTIFY_FILTER_AND_TYPE_RPC FilterAndType;
1900 [ size_is(dwBufferSize ) ] uint8* buffer;
1901 uint32 dwBufferSize;
1902 [string] [charset(UTF16)] uint16 *ObjectId;
1903 [string] [charset(UTF16)] uint16 *ParentId;
1904 [string] [charset(UTF16)] uint16 *Name;
1905 [string] [charset(UTF16)] uint16 *Type;
1906 } NOTIFICATION_DATA_RPC;
1909 uint32 *dwNotifyKey;
1910 NOTIFICATION_DATA_RPC NotificationData;
1917 // Notify interface V2 functions
1921 clusapi_CreateNotifyV2(
1922 [ out ] WERROR *rpc_error,
1923 [ out ] WERROR *rpc_status
1927 clusapi_CreateNotifyV2(
1928 [ out ] WERROR *rpc_error,
1929 [ out ] WERROR *rpc_status,
1930 [ out ] HNOTIFY_RPC *hNotify
1938 clusapi_AddNotifyV2(
1939 [ in ] HNOTIFY_RPC hNotify,
1940 [ in ] HGENERIC_RPC hObject,
1941 [ in ] NOTIFY_FILTER_AND_TYPE_RPC filter,
1942 [ in ] uint32 dwNotifyKey,
1943 [ in ] uint32 dwVersion,
1944 [ in ] boolean8 isTargetedAtObject,
1945 [ out ] WERROR *rpc_status
1952 clusapi_GetNotifyV2(
1953 [ in ] HNOTIFY_RPC hNotify,
1954 [ out, size_is(,*dwNumNotifications) ] NOTIFICATION_RPC **Notifications,
1955 [ out ] uint32 *dwNumNotifications
1962 clusapi_QueryAllValues(
1963 [ in ] HKEY_RPC hKey,
1964 [ out ] uint32 *pcbData,
1965 [ out, size_is(1, *pcbData) ] uint8 ** ppData,
1966 [ out ] WERROR *rpc_status
1971 uint8 DiskIdBlob[16];
1978 clusapi_StmFindDisk(
1979 [ in ] HCLUSTER_RPC hCluster,
1980 [ in ] uint32 dwFlags,
1981 [ in, out, unique ] CLUSTER_DISKID *pDiskId,
1982 [ in, size_is(uniqueIdSize), unique ] uint8 *pUniqueId,
1983 [ in ] uint32 uniqueIdSize,
1984 [ out, ref, string ] [charset(UTF16)] uint16 **ppszDeviceName,
1985 [ out ] WERROR *rpc_status
1989 [string] [charset(UTF16)] uint16 *pszNodeName;
1992 [unique, size_is(ResultSize)] uint8 *pResultData;
1993 } CLUSTER_MRR_NODE_RESPONSE;
1997 [size_is(NodeCount)] CLUSTER_MRR_NODE_RESPONSE *pNodes;
1998 } CLUSTER_MRR_RESPONSE;
2005 [ in ] HCLUSTER_RPC hCluster,
2006 [ in ] boolean8 fExcludeSelf,
2007 [ in ] hyper nodeSet,
2008 [ in ] uint32 dwTimeout,
2009 [ in ] uint32 dwComponent,
2010 [ in ] uint32 dwControlCode,
2011 [ in ] uint32 inSize,
2012 [ in, unique, size_is(inSize) ] uint8 *pInData,
2013 [ out, ref, size_is(1, 1) ] CLUSTER_MRR_RESPONSE **ppInfo,
2014 [ out ] WERROR *rpc_status
2021 clusapi_CreateGroupEnum(
2022 [ in ] HCLUSTER_RPC hCluster,
2023 [ in, unique, size_is(cbProperties)] uint8* pProperties,
2024 [ in ] uint32 cbProperties,
2025 [ in, unique, size_is(cbRoProperties)] uint8* pRoProperties,
2026 [ in ] uint32 cbRoProperties,
2027 [ out ] GROUP_ENUM_LIST **ppResultList,
2028 [ out ] WERROR *rpc_status
2035 clusapi_CreateResourceEnum(
2036 [ in ] HCLUSTER_RPC hCluster,
2037 [ in, unique, size_is(cbProperties)] uint8* pProperties,
2038 [ in ] uint32 cbProperties,
2039 [ in, unique, size_is(cbRoProperties)] uint8* pRoProperties,
2040 [ in ] uint32 cbRoProperties,
2041 [ out ] RESOURCE_ENUM_LIST **ppResultList,
2042 [ out ] WERROR *rpc_status
2049 clusapi_ExecuteReadBatch(
2050 [ in ] HKEY_RPC hKey,
2051 [ in ] uint32 cbInData,
2052 [ in, size_is(cbInData)] uint8 *lpInData,
2053 [ out ] uint32 *cbOutData,
2054 [ out, size_is(,*cbOutData) ] uint8 ** lpOutData,
2055 [ out ] WERROR *rpc_status
2062 clusapi_RestartResource(
2063 [ in ] HRES_RPC hResource,
2064 [ in ] uint32 dwFlags,
2065 [ out ] WERROR *rpc_status
2071 [string] [charset(UTF16)] uint16 *Name;
2072 } NOTIFICATION_DATA_ASYNC_RPC;
2078 clusapi_GetNotifyAsync(
2079 [ in ] HNOTIFY_RPC hNotify,
2080 [ out, size_is(,*dwNumNotifications) ] NOTIFICATION_DATA_ASYNC_RPC **Notifications,
2081 [ out ] uint32 *dwNumNotifications
2085 DiskIdSignature = 0x00000001,
2086 DiskIdGuid = 0x00000002,
2087 DiskIdUnKnown = 0x00001388
2088 } CLUSDSK_DISKID_ENUM;
2092 CLUSDSK_DISKID_ENUM DiskIdType;
2093 [switch_is(DiskIdType)] union {
2094 [case(DiskIdSignature)] uint32 DiskSignature;
2095 [case(DiskIdGuid)] GUID DiskGuid;
2100 CLUSPROP_TYPE_ENDMARK = 0x0000,
2101 CLUSPROP_TYPE_LIST_VALUE = 0x0001,
2102 CLUSPROP_TYPE_RESCLASS = 0x0002,
2103 CLUSPROP_TYPE_NAME = 0x0004,
2104 CLUSPROP_TYPE_SIGNATURE = 0x0005,
2105 CLUSPROP_TYPE_SCSIADDRESS = 0x0006,
2106 CLUSPROP_TYPE_DISK_NUMBER = 0x0007,
2107 CLUSPROP_TYPE_PARTITION_INFO = 0x0008,
2108 CLUSPROP_TYPE_DISK_SERIALNUMBER = 0x000a,
2109 CLUSPROP_TYPE_DISK_GUID = 0x000b,
2110 CLUSPROP_TYPE_DISK_SIZE = 0x000c,
2111 CLUSPROP_TYPE_PARTITION_INFO_EX = 0x000d
2112 } CLUSTER_PROPERTY_TYPE;
2115 CLUSPROP_FORMAT_UNKNOWN = 0x0000,
2116 CLUSPROP_FORMAT_BINARY = 0x0001,
2117 CLUSPROP_FORMAT_DWORD = 0x0002,
2118 CLUSPROP_FORMAT_SZ = 0x0003,
2119 CLUSPROP_FORMAT_EXPAND_SZ = 0x0004,
2120 CLUSPROP_FORMAT_MULTI_SZ = 0x0005,
2121 CLUSPROP_FORMAT_ULARGE_INTEGER = 0x0006,
2122 CLUSPROP_FORMAT_LONG = 0x0007,
2123 CLUSPROP_FORMAT_EXPANDED_SZ = 0x0008,
2124 CLUSPROP_FORMAT_SECURITY_DESCRIPTOR = 0x0009,
2125 CLUSPROP_FORMAT_LARGE_INTEGER = 0x000a,
2126 CLUSPROP_FORMAT_WORD = 0x000b,
2127 CLUSPROP_FORMAT_FILETIME = 0x000c
2128 } CLUSTER_PROPERTY_FORMAT;
2131 CLUSPROP_SYNTAX_ENDMARK = 0x00000000,
2132 CLUSPROP_SYNTAX_NAME = 0x00040003,
2133 CLUSPROP_SYNTAX_RESCLASS = 0x00020002,
2134 CLUSPROP_SYNTAX_LIST_VALUE_SZ = 0x00010003,
2135 CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = 0x00010004,
2136 CLUSPROP_SYNTAX_LIST_VALUE_DWORD = 0x00010002,
2137 CLUSPROP_SYNTAX_LIST_VALUE_BINARY = 0x00010001,
2138 CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = 0x00010005,
2139 CLUSPROP_SYNTAX_LIST_VALUE_LONG = 0x00010007,
2140 CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = 0x00010008,
2141 CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = 0x00010009,
2142 CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = 0x0001000a,
2143 CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER = 0x00010006,
2144 CLUSPROP_SYNTAX_LIST_VALUE_WORD = 0x0001000b,
2145 CLUSPROP_SYNTAX_LIST_VALUE_FILETIME = 0x0001000c,
2146 CLUSPROP_SYNTAX_DISK_SIGNATURE = 0x00050002,
2147 CLUSPROP_SYNTAX_SCSI_ADDRESS = 0x00060002,
2148 CLUSPROP_SYNTAX_DISK_NUMBER = 0x00070002,
2149 CLUSPROP_SYNTAX_PARTITION_INFO = 0x00080001,
2150 CLUSPROP_SYNTAX_DISK_SERIALNUMBER = 0x000a0003,
2151 CLUSPROP_SYNTAX_DISK_GUID = 0x000b0003,
2152 CLUSPROP_SYNTAX_DISK_SIZE = 0x000c0006,
2153 CLUSPROP_SYNTAX_PARTITION_INFO_EX = 0x000d0001
2154 } CLUSTER_PROPERTY_SYNTAX;
2157 CLUS_CHAR_UNKNOWN = 0x00000000,
2158 CLUS_CHAR_QUORUM = 0x00000001,
2159 CLUS_CHAR_DELETE_REQUIRES_ALL_NODES = 0x00000002,
2160 CLUS_CHAR_LOCAL_QUORUM = 0x00000004,
2161 CLUS_CHAR_BROADCAST_DELETE = 0x00000020,
2162 CLUS_CHAR_SINGLE_CLUSTER_INSTANCE = 0x00000040,
2163 CLUS_CHAR_SINGLE_GROUP_INSTANCE = 0x00000080,
2164 CLUS_CHAR_COEXIST_IN_SHARED_VOLUME_GROUP = 0x00000100,
2165 CLUS_CHAR_RESERVED1 = 0x00000200,
2166 CLUS_CHAR_MONITOR_DETACH = 0x00000400,
2167 CLUS_CHAR_RESERVED2 = 0x00000800,
2168 CLUS_CHAR_RESERVED3 = 0x00001000,
2169 CLUS_CHAR_RESERVED4 = 0x00002000
2170 } CLUS_CHARACTERISTICS;
2173 CLUS_FLAG_CORE = 0x00000001
2177 MaintenanceModeTypeDisableIsAliveCheck = 1,
2178 MaintenanceModeTypeOfflineResource = 2,
2179 MaintenanceModeTypeUnclusterResource = 3
2180 } MAINTENANCE_MODE_TYPE;
2183 CLUSTER_CHANGE_NODE_STATE = 0x00000001,
2184 CLUSTER_CHANGE_NODE_DELETED = 0x00000002,
2185 CLUSTER_CHANGE_NODE_ADDED = 0x00000004,
2186 CLUSTER_CHANGE_NODE_PROPERTY = 0x00000008,
2187 CLUSTER_CHANGE_REGISTRY_NAME = 0x00000010,
2188 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES = 0x00000020,
2189 CLUSTER_CHANGE_REGISTRY_VALUE = 0x00000040,
2190 CLUSTER_CHANGE_REGISTRY_SUBTREE = 0x00000080,
2191 CLUSTER_CHANGE_RESOURCE_STATE = 0x00000100,
2192 CLUSTER_CHANGE_RESOURCE_DELETED = 0x00000200,
2193 CLUSTER_CHANGE_RESOURCE_ADDED = 0x00000400,
2194 CLUSTER_CHANGE_RESOURCE_PROPERTY = 0x00000800,
2195 CLUSTER_CHANGE_GROUP_STATE = 0x00001000,
2196 CLUSTER_CHANGE_GROUP_DELETED = 0x00002000,
2197 CLUSTER_CHANGE_GROUP_ADDED = 0x00004000,
2198 CLUSTER_CHANGE_GROUP_PROPERTY = 0x00008000,
2199 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED = 0x00010000,
2200 CLUSTER_CHANGE_RESOURCE_TYPE_ADDED = 0x00020000,
2201 CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY = 0x00040000,
2202 CLUSTER_CHANGE_CLUSTER_RECONNECT = 0x00080000,
2203 CLUSTER_CHANGE_NETWORK_STATE = 0x00100000,
2204 CLUSTER_CHANGE_NETWORK_DELETED = 0x00200000,
2205 CLUSTER_CHANGE_NETWORK_ADDED = 0x00400000,
2206 CLUSTER_CHANGE_NETWORK_PROPERTY = 0x00800000,
2207 CLUSTER_CHANGE_NETINTERFACE_STATE = 0x01000000,
2208 CLUSTER_CHANGE_NETINTERFACE_DELETED = 0x02000000,
2209 CLUSTER_CHANGE_NETINTERFACE_ADDED = 0x04000000,
2210 CLUSTER_CHANGE_NETINTERFACE_PROPERTY = 0x08000000,
2211 CLUSTER_CHANGE_QUORUM_STATE = 0x10000000,
2212 CLUSTER_CHANGE_CLUSTER_STATE = 0x20000000,
2213 CLUSTER_CHANGE_CLUSTER_PROPERTY = 0x40000000,
2214 CLUSTER_CHANGE_HANDLE_CLOSE = 0x80000000
2218 CLUSREG_SET_VALUE = 1,
2219 CLUSREG_CREATE_KEY = 2,
2220 CLUSREG_DELETE_KEY = 3,
2221 CLUSREG_DELETE_VALUE = 4,
2222 CLUSREG_VALUE_DELETED = 6,
2223 CLUSREG_READ_KEY = 7,
2224 CLUSREG_READ_VALUE = 8,
2225 CLUSREG_READ_ERROR = 9
2226 } CLUSTER_REG_BATCH_COMMAND;
2229 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES = 1
2230 } IDL_CLUSTER_SET_PASSWORD_FLAGS;
2233 CLUSTER_QUORUM_MAINTAINED = 0,
2234 CLUSTER_QUORUM_LOST = 1
2235 } CLUSTER_QUORUM_VALUE;
2238 CLUSTER_OBJECT_TYPE_CLUSTER = 0x00000001,
2239 CLUSTER_OBJECT_TYPE_GROUP = 0x00000002,
2240 CLUSTER_OBJECT_TYPE_RESOURCE = 0x00000003,
2241 CLUSTER_OBJECT_TYPE_RESOURCE_TYPE = 0x00000004,
2242 CLUSTER_OBJECT_TYPE_NETWORK_INTERFACE = 0x00000005,
2243 CLUSTER_OBJECT_TYPE_NETWORK = 0x00000006,
2244 CLUSTER_OBJECT_TYPE_NODE = 0x00000007,
2245 CLUSTER_OBJECT_TYPE_REGISTRY = 0x00000008,
2246 CLUSTER_OBJECT_TYPE_QUORUM = 0x00000009,
2247 CLUSTER_OBJECT_TYPE_SHARED_VOLUME = 0x0000000a
2248 } CLUSTER_OBJECT_TYPE;
2251 CLUSTER_CHANGE_CLUSTER_RECONNECT_V2 = 0x00000001,
2252 CLUSTER_CHANGE_CLUSTER_STATE_V2 = 0x00000002,
2253 CLUSTER_CHANGE_CLUSTER_GROUP_ADDED_V2 = 0x00000004,
2254 CLUSTER_CHANGE_CLUSTER_HANDLE_CLOSE_V2 = 0x00000008,
2255 CLUSTER_CHANGE_CLUSTER_NETWORK_ADDED_V2 = 0x00000010,
2256 CLUSTER_CHANGE_CLUSTER_NODE_ADDED_V2 = 0x00000020,
2257 CLUSTER_CHANGE_CLUSTER_RESOURCE_TYPE_ADDED_V2 = 0x00000040,
2258 CLUSTER_CHANGE_CLUSTER_COMMON_PROPERTY_V2 = 0x00000080,
2259 CLUSTER_CHANGE_CLUSTER_PRIVATE_PROPERTY_V2 = 0x00000100,
2260 CLUSTER_CHANGE_CLUSTER_LOST_NOTIFICATIONS_V2 = 0x00000200,
2261 CLUSTER_CHANGE_CLUSTER_RENAME_V2 = 0x00000400
2262 } CLUSTER_CHANGE_CLUSTER_V2;
2265 CLUSTER_CHANGE_GROUP_DELETED_V2 = 0x00000001,
2266 CLUSTER_CHANGE_GROUP_COMMON_PROPERTY_V2 = 0x00000002,
2267 CLUSTER_CHANGE_GROUP_PRIVATE_PROPERTY_V2 = 0x00000004,
2268 CLUSTER_CHANGE_GROUP_STATE_V2 = 0x00000008,
2269 CLUSTER_CHANGE_GROUP_OWNER_NODE_V2 = 0x00000010,
2270 CLUSTER_CHANGE_GROUP_PREFERRED_OWNERS_V2 = 0x00000020,
2271 CLUSTER_CHANGE_GROUP_RESOURCE_ADDED_V2 = 0x00000040,
2272 CLUSTER_CHANGE_GROUP_RESOURCE_GAINED_V2 = 0x00000080,
2273 CLUSTER_CHANGE_GROUP_RESOURCE_LOST_V2 = 0x00000100,
2274 CLUSTER_CHANGE_GROUP_HANDLE_CLOSE_V2 = 0x00000200
2275 } CLUSTER_CHANGE_GROUP_V2;
2278 CLUSTER_CHANGE_RESOURCE_COMMON_PROPERTY_V2 = 0x00000001,
2279 CLUSTER_CHANGE_RESOURCE_PRIVATE_PROPERTY_V2 = 0x00000002,
2280 CLUSTER_CHANGE_RESOURCE_STATE_V2 = 0x00000004,
2281 CLUSTER_CHANGE_RESOURCE_OWNER_GROUP_V2 = 0x00000008,
2282 CLUSTER_CHANGE_RESOURCE_DEPENDENCIES_V2 = 0x00000010,
2283 CLUSTER_CHANGE_RESOURCE_DEPENDENTS_V2 = 0x00000020,
2284 CLUSTER_CHANGE_RESOURCE_POSSIBLE_OWNERS_V2 = 0x00000040,
2285 CLUSTER_CHANGE_RESOURCE_DELETED_V2 = 0x00000080,
2286 CLUSTER_CHANGE_RESOURCE_DLL_UPGRADED_V2 = 0x00000100,
2287 CLUSTER_CHANGE_RESOURCE_HANDLE_CLOSE_V2 = 0x00000200
2288 } CLUSTER_CHANGE_RESOURCE_V2;
2291 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED_V2 = 0x00000001,
2292 CLUSTER_CHANGE_RESOURCE_TYPE_COMMON_PROPERTY_V2 = 0x00000002,
2293 CLUSTER_CHANGE_RESOURCE_TYPE_PRIVATE_PROPERTY_V2 = 0x00000004,
2294 CLUSTER_CHANGE_RESOURCE_TYPE_POSSIBLE_OWNERS_V2 = 0x00000008,
2295 CLUSTER_CHANGE_RESOURCE_TYPE_DLL_UPGRADED_V2 = 0x00000010
2296 } CHANGE_RESOURCE_TYPE_V2;
2299 CLUSTER_CHANGE_NETINTERFACE_DELETED_V2 = 0x00000001,
2300 CLUSTER_CHANGE_NETINTERFACE_COMMON_PROPERTY_V2 = 0x00000002,
2301 CLUSTER_CHANGE_NETINTERFACE_PRIVATE_PROPERTY_V2 = 0x00000004,
2302 CLUSTER_CHANGE_NETINTERFACE_STATE_V2 = 0x00000008,
2303 CLUSTER_CHANGE_NETINTERFACE_HANDLE_CLOSE_V2 = 0x00000010
2304 } CLUSTER_CHANGE_NETINTERFACE_V2;
2307 CLUSTER_CHANGE_NETWORK_DELETED_V2 = 0x00000001,
2308 CLUSTER_CHANGE_NETWORK_COMMON_PROPERTY_V2 = 0x00000002,
2309 CLUSTER_CHANGE_NETWORK_PRIVATE_PROPERTY_V2 = 0x00000004,
2310 CLUSTER_CHANGE_NETWORK_STATE_V2 = 0x00000008,
2311 CLUSTER_CHANGE_NETWORK_HANDLE_CLOSE_V2 = 0x00000010
2312 } CLUSTER_CHANGE_NETWORK_V2;
2315 CLUSTER_CHANGE_NODE_NETINTERFACE_ADDED_V2 = 0x00000001,
2316 CLUSTER_CHANGE_NODE_DELETED_V2 = 0x00000002,
2317 CLUSTER_CHANGE_NODE_COMMON_PROPERTY_V2 = 0x00000004,
2318 CLUSTER_CHANGE_NODE_PRIVATE_PROPERTY_V2 = 0x00000008,
2319 CLUSTER_CHANGE_NODE_STATE_V2 = 0x00000010,
2320 CLUSTER_CHANGE_NODE_GROUP_GAINED_V2 = 0x00000020,
2321 CLUSTER_CHANGE_NODE_GROUP_LOST_V2 = 0x00000040,
2322 CLUSTER_CHANGE_NODE_HANDLE_CLOSE_V2 = 0x00000080
2323 } CLUSTER_CHANGE_NODE_V2;
2326 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES_V2 = 0x00000001,
2327 CLUSTER_CHANGE_REGISTRY_NAME_V2 = 0x00000002,
2328 CLUSTER_CHANGE_REGISTRY_SUBTREE_V2 = 0x00000004,
2329 CLUSTER_CHANGE_REGISTRY_VALUE_V2 = 0x00000008,
2330 CLUSTER_CHANGE_REGISTRY_HANDLE_CLOSE_V2 = 0x00000010
2331 } CLUSTER_CHANGE_REGISTRY_V2;
2334 CLUSTER_CHANGE_QUORUM_STATE_V2 = 0x00000001
2335 } CLUSTER_CHANGE_QUORUM_V2;
2338 CLUSTER_CHANGE_SHARED_VOLUME_STATE_V2 = 0x00000001
2339 } CLUSTER_CHANGE_SHARED_VOLUME_V2;
2342 DiskIdSignature = 0x00000001,
2343 DiskIdGuid = 0x00000002,
2344 DiskIdUnKnown = 0x00001388
2345 } CLUSDSK_DISKID_ENUM;