source: vendor/current/librpc/idl/clusapi.idl

Last change on this file was 988, checked in by Silvan Scherrer, 9 years ago

Samba Server: update vendor to version 4.4.3

File size: 59.5 KB
Line 
1import "winreg.idl", "misc.idl";
2
3#include "idl_types.h"
4
5[
6 uuid("b97db8b2-4c63-11cf-bff6-08002be23f2f"),
7 version(3.0),
8 pointer_default(unique),
9 endpoint("ncacn_ip_tcp:"),
10 authservice("MSServerClusterMgmtAPI"),
11 helpstring("Failover Cluster Management API (clusapi)")
12]
13 interface clusapi
14{
15#if 0
16 /*
17 * pidl does not yet have a real [context_handle] implementation, so we
18 * just use some defines here.
19 */
20
21 typedef [context_handle] void *HCLUSTER_RPC;
22 typedef [context_handle] void *HNODE_RPC;
23 typedef [context_handle] void *HGROUP_RPC;
24 typedef [context_handle] void *HRES_RPC;
25 typedef [context_handle] void *HKEY_RPC;
26 typedef [context_handle] void *HNOTIFY_RPC;
27 typedef [context_handle] void *HNETWORK_RPC;
28 typedef [context_handle] void *HNETINTERFACE_RPC;
29 typedef [context_handle] void *HBATCH_PORT_RPC;
30#else
31#define HCLUSTER_RPC policy_handle
32#define HNODE_RPC policy_handle
33#define HGROUP_RPC policy_handle
34#define HRES_RPC policy_handle
35#define HKEY_RPC policy_handle
36#define HNOTIFY_RPC policy_handle
37#define HNETWORK_RPC policy_handle
38#define HNETINTERFACE_RPC policy_handle
39#define HBATCH_PORT_RPC policy_handle
40#endif
41
42 typedef struct {
43 [ size_is( cbInSecurityDescriptor ), length_is( cbOutSecurityDescriptor ) ] uint8 *lpSecurityDescriptor;
44 uint32 cbInSecurityDescriptor;
45 uint32 cbOutSecurityDescriptor;
46 } RPC_SECURITY_DESCRIPTOR;
47
48 typedef struct {
49 uint32 nLength;
50 RPC_SECURITY_DESCRIPTOR RpcSecurityDescriptor;
51 long bInheritHandle;
52 } RPC_SECURITY_ATTRIBUTES;
53
54 typedef struct {
55 [value(20)] uint32 dwSize;
56 uint32 dwClusterHighestVersion;
57 uint32 dwClusterLowestVersion;
58 uint32 dwFlags;
59 uint32 dwReserved;
60 } CLUSTER_OPERATIONAL_VERSION_INFO;
61
62 typedef struct {
63 uint32 NodeId;
64 boolean8 SetAttempted;
65 uint32 ReturnStatus;
66 } IDL_CLUSTER_SET_PASSWORD_STATUS;
67
68 typedef enum {
69 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES = 1
70 } IDL_CLUSTER_SET_PASSWORD_FLAGS;
71
72 typedef struct {
73 uint32 dwVersion;
74 uint32 dwGroupType;
75 } CLUSTER_CREATE_GROUP_INFO_RPC;
76
77 /*****************/
78 /* Function 0x00 */
79
80#if 0
81 /*
82 * pidl cannot generate code for functions that return structures in
83 * IDL, therefore pretend the function is void and add the returned
84 * structure as an out parameter. This is what we do with pretty much
85 * all the Open calls right now in this interface - gd
86 */
87
88 HCLUSTER_RPC
89 clusapi_OpenCluster(
90 [ out ] WERROR *Status
91 );
92#else
93 void
94 clusapi_OpenCluster(
95 [ out ] WERROR *Status,
96 [ out ] HCLUSTER_RPC *Cluster
97 );
98#endif
99
100 /*****************/
101 /* Function 0x01 */
102
103 WERROR
104 clusapi_CloseCluster(
105 [ in, out ] HCLUSTER_RPC *Cluster
106 );
107
108 /*****************/
109 /* Function 0x02 */
110
111 WERROR
112 clusapi_SetClusterName(
113 [ in, string ] [charset(UTF16)] uint16 *NewClusterName,
114 [ out ] WERROR *rpc_status
115 );
116
117 /*****************/
118 /* Function 0x03 */
119
120 WERROR
121 clusapi_GetClusterName(
122 [ out, string ] [charset(UTF16)] uint16 **ClusterName,
123 [ out, string ] [charset(UTF16)] uint16 **NodeName
124 );
125
126 /*****************/
127 /* Function 0x04 */
128
129 WERROR
130 clusapi_GetClusterVersion(
131 [ out ] uint16 *lpwMajorVersion,
132 [ out ] uint16 *lpwMinorVersion,
133 [ out ] uint16 *lpwBuildNumber,
134 [ out, string ] [charset(UTF16)] uint16 **lpszVendorId,
135 [ out, string ] [charset(UTF16)] uint16 **lpszCSDVersion
136 );
137
138 /*****************/
139 /* Function 0x05 */
140
141 WERROR
142 clusapi_GetQuorumResource(
143 [ out, string ] [charset(UTF16)] uint16 **lpszResourceName,
144 [ out, string ] [charset(UTF16)] uint16 **lpszDeviceName,
145 [ out ] uint32 *pdwMaxQuorumLogSize,
146 [ out ] WERROR *rpc_status
147 );
148
149 /*****************/
150 /* Function 0x06 */
151
152 WERROR
153 clusapi_SetQuorumResource(
154 [ in ] HRES_RPC hResource,
155 [ in, string ] [charset(UTF16)] uint16 *lpszDeviceName,
156 [ in ] uint32 dwMaxQuorumLogSize,
157 [ out ] WERROR *rpc_status
158 );
159
160 typedef [bitmap32bit] bitmap {
161 CLUSTER_ENUM_NODE = 0x00000001,
162 CLUSTER_ENUM_RESTYPE = 0x00000002,
163 CLUSTER_ENUM_RESOURCE = 0x00000004,
164 CLUSTER_ENUM_GROUP = 0x00000008,
165 CLUSTER_ENUM_NETWORK = 0x00000010,
166 CLUSTER_ENUM_NETINTERFACE = 0x00000020,
167 CLUSTER_ENUM_INTERNAL_NETWORK = 0x80000000,
168 CLUSTER_ENUM_SHARED_VOLUME_RESOURCE = 0x40000000
169 } ClusterEnumType;
170
171 typedef struct {
172 ClusterEnumType Type;
173 [string] [charset(UTF16)] uint16 *Name;
174 } ENUM_ENTRY;
175
176 typedef struct {
177 uint32 EntryCount;
178 [size_is(EntryCount)] ENUM_ENTRY Entry[*];
179 } ENUM_LIST;
180
181 typedef struct {
182 [string] [charset(UTF16)] uint16 *Name;
183 [string] [charset(UTF16)] uint16 *Id;
184 uint32 dwState;
185 [string] [charset(UTF16)] uint16 *Owner;
186 uint32 dwFlags;
187 uint32 cbProperties;
188 [size_is(cbProperties)] uint8* Properties;
189 uint32 cbRoProperties;
190 [size_is(cbRoProperties)] uint8* RoProperties;
191 } GROUP_ENUM_ENTRY;
192
193 typedef struct {
194 [string] [charset(UTF16)] uint16 *Name;
195 [string] [charset(UTF16)] uint16 *Id;
196 [string] [charset(UTF16)] uint16 *OwnerName;
197 [string] [charset(UTF16)] uint16 *OwnerId;
198 uint32 cbProperties;
199 [size_is(cbProperties)] uint8* Properties;
200 uint32 cbRoProperties;
201 [size_is(cbRoProperties)] uint8* RoProperties;
202 } RESOURCE_ENUM_ENTRY;
203
204 typedef struct {
205 uint32 EntryCount;
206 [size_is(EntryCount)] GROUP_ENUM_ENTRY Entry[*];
207 } GROUP_ENUM_LIST;
208
209 typedef struct {
210 uint32 EntryCount;
211 [size_is(EntryCount)] RESOURCE_ENUM_ENTRY Entry[*];
212 } RESOURCE_ENUM_LIST;
213
214 /*****************/
215 /* Function 0x07 */
216
217 WERROR
218 clusapi_CreateEnum(
219 [ in ] ClusterEnumType dwType,
220 [ out ] ENUM_LIST **ReturnEnum,
221 [ out ] WERROR *rpc_status
222 );
223
224 /*****************/
225 /* Function 0x08 */
226
227#if 0
228 HRES_RPC
229 clusapi_OpenResource(
230 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
231 [ out ] WERROR *Status,
232 [ out ] WERROR *rpc_status
233 );
234#else
235 void
236 clusapi_OpenResource(
237 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
238 [ out ] WERROR *Status,
239 [ out ] WERROR *rpc_status,
240 [ out ] HRES_RPC *hResource
241 );
242#endif
243 /*****************/
244 /* Function 0x09 */
245
246 typedef [v1_enum] enum {
247 CLUSTER_RESOURCE_DEFAULT_MONITOR = 0x00000000,
248 CLUSTER_RESOURCE_SEPARATE_MONITOR = 0x00000001
249 } clusapi_CreateResourceFlags;
250
251#if 0
252 HRES_RPC
253 clusapi_CreateResource(
254 [ in ] HGROUP_RPC hGroup,
255 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
256 [ in, string ] [charset(UTF16)] uint16 *lpszResourceType,
257 [ in ] clusapi_CreateResourceFlags dwFlags,
258 [ out ] WERROR *Status,
259 [ out ] WERROR *rpc_status
260 );
261#else
262 void
263 clusapi_CreateResource(
264 [ in ] HGROUP_RPC hGroup,
265 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
266 [ in, string ] [charset(UTF16)] uint16 *lpszResourceType,
267 [ in ] clusapi_CreateResourceFlags dwFlags,
268 [ out ] WERROR *Status,
269 [ out ] WERROR *rpc_status,
270 [ out ] HRES_RPC *hResource
271 );
272#endif
273 /*****************/
274 /* Function 0x0A */
275
276 WERROR
277 clusapi_DeleteResource(
278 [ in ] HRES_RPC hResource,
279 [ out ] WERROR *rpc_status
280 );
281
282 /*****************/
283 /* Function 0x0B */
284
285 WERROR
286 clusapi_CloseResource(
287 [ in, out ] HRES_RPC *Resource
288 );
289
290 /*****************/
291 /* Function 0x0C */
292
293 typedef [v1_enum] enum {
294 ClusterResourceInitializing = 0x00000001,
295 ClusterResourceOnline = 0x00000002,
296 ClusterResourceOffline = 0x00000003,
297 ClusterResourceFailed = 0x00000004,
298 ClusterResourceOnlinePending = 0x00000081,
299 ClusterResourceOfflinePending = 0x00000082,
300 ClusterResourceStateUnknown = 0xFFFFFFFF
301 } clusapi_ClusterResourceState;
302
303 WERROR
304 clusapi_GetResourceState(
305 [ in ] HRES_RPC hResource,
306 [ out ] clusapi_ClusterResourceState *State,
307 [ out, string ] [charset(UTF16)] uint16 **NodeName,
308 [ out, string ] [charset(UTF16)] uint16 **GroupName,
309 [ out ] WERROR *rpc_status
310 );
311
312 /*****************/
313 /* Function 0x0D */
314
315 WERROR
316 clusapi_SetResourceName(
317 [ in ] HRES_RPC hResource,
318 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
319 [ out ] WERROR *rpc_status
320 );
321
322 /*****************/
323 /* Function 0x0E */
324
325 WERROR
326 clusapi_GetResourceId(
327 [ in ] HRES_RPC hResource,
328 [ out, string ] [charset(UTF16)] uint16 **pGuid,
329 [ out ] WERROR *rpc_status
330 );
331
332 /*****************/
333 /* Function 0x0F */
334
335 WERROR
336 clusapi_GetResourceType(
337 [ in ] HRES_RPC hResource,
338 [ out, string ] [charset(UTF16)] uint16 **lpszResourceType,
339 [ out ] WERROR *rpc_status
340 );
341
342 /*****************/
343 /* Function 0x10 */
344
345 WERROR
346 clusapi_FailResource(
347 [ in ] HRES_RPC hResource,
348 [ out ] WERROR *rpc_status
349 );
350
351 /*****************/
352 /* Function 0x11 */
353
354 WERROR
355 clusapi_OnlineResource(
356 [ in ] HRES_RPC hResource,
357 [ out ] WERROR *rpc_status
358 );
359
360 /*****************/
361 /* Function 0x12 */
362
363 WERROR
364 clusapi_OfflineResource(
365 [ in ] HRES_RPC hResource,
366 [ out ] WERROR *rpc_status
367 );
368
369 /*****************/
370 /* Function 0x13 */
371
372 WERROR
373 clusapi_AddResourceDependency(
374 [ in ] HRES_RPC hResource,
375 [ in ] HRES_RPC hDependsOn,
376 [ out ] WERROR *rpc_status
377 );
378
379 /*****************/
380 /* Function 0x14 */
381
382 WERROR
383 clusapi_RemoveResourceDependency(
384 [ in ] HRES_RPC hResource,
385 [ in ] HRES_RPC hDependsOn,
386 [ out ] WERROR *rpc_status
387 );
388
389 /*****************/
390 /* Function 0x15 */
391
392 WERROR
393 clusapi_CanResourceBeDependent(
394 [ in ] HRES_RPC hResource,
395 [ in ] HRES_RPC hResourceDependent,
396 [ out ] WERROR *rpc_status
397 );
398
399 /*****************/
400 /* Function 0x16 */
401
402 WERROR
403 clusapi_CreateResEnum(
404 [ in ] HRES_RPC hResource,
405 [ in ] uint32 dwType,
406 [ out ] ENUM_LIST **ReturnEnum,
407 [ out ] WERROR *rpc_status
408 );
409
410 /*****************/
411 /* Function 0x17 */
412
413 WERROR
414 clusapi_AddResourceNode(
415 [ in ] HRES_RPC hResource,
416 [ in ] HNODE_RPC hNode,
417 [ out ] WERROR *rpc_status
418 );
419
420 /*****************/
421 /* Function 0x18 */
422
423 WERROR
424 clusapi_RemoveResourceNode(
425 [ in ] HRES_RPC hResource,
426 [ in ] HNODE_RPC hNode,
427 [ out ] WERROR *rpc_status
428 );
429
430 /*****************/
431 /* Function 0x19 */
432
433 WERROR
434 clusapi_ChangeResourceGroup(
435 [ in ] HRES_RPC hResource,
436 [ in ] HGROUP_RPC hGroup,
437 [ out ] WERROR *rpc_status
438 );
439
440 /*****************/
441 /* Function 0x1A */
442
443 WERROR
444 clusapi_CreateResourceType(
445 [ in, string ] [charset(UTF16)] uint16 *lpszTypeName,
446 [ in, string ] [charset(UTF16)] uint16 *lpszDisplayName,
447 [ in, string ] [charset(UTF16)] uint16 *lpszDllName,
448 [ in ] uint32 dwLooksAlive,
449 [ in ] uint32 dwIsAlive,
450 [ out ] WERROR *rpc_status
451 );
452
453 /*****************/
454 /* Function 0x1B */
455
456 WERROR
457 clusapi_DeleteResourceType(
458 [ in, string ] [charset(UTF16)] uint16 *lpszTypeName,
459 [ out ] WERROR *rpc_status
460 );
461
462 /*****************/
463 /* Function 0x1C */
464#if 0
465 HKEY_RPC
466 clusapi_GetRootKey(
467 [ in ] winreg_AccessMask samDesired,
468 [ out ] WERROR *Status,
469 [ out ] WERROR *rpc_status
470 );
471#else
472 void
473 clusapi_GetRootKey(
474 [ in ] winreg_AccessMask samDesired,
475 [ out ] WERROR *Status,
476 [ out ] WERROR *rpc_status,
477 [ out ] HKEY_RPC *phKey
478 );
479#endif
480 /*****************/
481 /* Function 0x1D */
482#if 0
483 HKEY_RPC
484 clusapi_CreateKey(
485 [ in ] HKEY_RPC hKey,
486 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
487 [ in ] uint32 dwOptions,
488 [ in ] winreg_AccessMask samDesired,
489 [ in, unique ] RPC_SECURITY_ATTRIBUTES *lpSecurityAttributes,
490 [ out ] uint32 *lpdwDisposition,
491 [ out ] WERROR *Status,
492 [ out ] WERROR *rpc_status
493 );
494#else
495 void
496 clusapi_CreateKey(
497 [ in ] HKEY_RPC hKey,
498 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
499 [ in ] uint32 dwOptions,
500 [ in ] winreg_AccessMask samDesired,
501 [ in, unique ] RPC_SECURITY_ATTRIBUTES *lpSecurityAttributes,
502 [ out ] uint32 *lpdwDisposition,
503 [ out ] WERROR *Status,
504 [ out ] WERROR *rpc_status,
505 [ out ] HKEY_RPC *phKey
506 );
507#endif
508 /*****************/
509 /* Function 0x1E */
510#if 0
511 HKEY_RPC
512 clusapi_OpenKey(
513 [ in ] HKEY_RPC hKey,
514 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
515 [ in ] winreg_AccessMask samDesired,
516 [ out ] WERROR *Status,
517 [ out ] WERROR *rpc_status
518 );
519#else
520 void
521 clusapi_OpenKey(
522 [ in ] HKEY_RPC hKey,
523 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
524 [ in ] winreg_AccessMask samDesired,
525 [ out ] WERROR *Status,
526 [ out ] WERROR *rpc_status,
527 [ out ] HKEY_RPC *phKey
528 );
529#endif
530 /*****************/
531 /* Function 0x1F */
532
533 WERROR
534 clusapi_EnumKey(
535 [ in ] HKEY_RPC hKey,
536 [ in ] uint32 dwIndex,
537 [ out, string ] [charset(UTF16)] uint16 **KeyName,
538 [ out ] NTTIME *lpftLastWriteTime,
539 [ out ] WERROR *rpc_status
540 );
541
542 /*****************/
543 /* Function 0x20 */
544
545 WERROR
546 clusapi_SetValue(
547 [ in ] HKEY_RPC hKey,
548 [ in, string ] [charset(UTF16)] uint16 *lpValueName,
549 [ in ] winreg_Type dwType,
550 [ in, size_is(cbData) ] uint8 *lpData,
551 [ in ] uint32 cbData,
552 [ out ] WERROR *rpc_status
553 );
554
555 /*****************/
556 /* Function 0x21 */
557
558 WERROR
559 clusapi_DeleteValue(
560 [ in ] HKEY_RPC hKey,
561 [ in, string ] [charset(UTF16)] uint16 *lpValueName,
562 [ out ] WERROR *rpc_status
563 );
564
565 /*****************/
566 /* Function 0x22 */
567
568 WERROR
569 clusapi_QueryValue(
570 [ in ] HKEY_RPC hKey,
571 [ in, string ] [charset(UTF16)] uint16 *lpValueName,
572 [ out ] winreg_Type *lpValueType,
573 [ out, size_is(cbData) ] uint8 *lpData,
574 [ in ] uint32 cbData,
575 [ out ] uint32 *lpcbRequired,
576 [ out ] WERROR *rpc_status
577 );
578
579 /*****************/
580 /* Function 0x23 */
581
582 WERROR
583 clusapi_DeleteKey(
584 [ in ] HKEY_RPC hKey,
585 [ in, string ] [charset(UTF16)] uint16 *lpSubKey,
586 [ out ] WERROR *rpc_status
587 );
588
589 /*****************/
590 /* Function 0x24 */
591
592 WERROR
593 clusapi_EnumValue(
594 [ in ] HKEY_RPC hKey,
595 [ in ] uint32 dwIndex,
596 [ out, string ] [charset(UTF16)] uint16 **lpValueName,
597 [ out ] winreg_Type *lpType,
598 [ out, size_is(*lpcbData) ] uint8 *lpData,
599 [ in, out ] uint32 *lpcbData,
600 [ out ] uint32 *TotalSize,
601 [ out ] WERROR *rpc_status
602 );
603
604 /*****************/
605 /* Function 0x25 */
606
607 WERROR
608 clusapi_CloseKey(
609 [ in, out ] HKEY_RPC *pKey
610 );
611
612 /*****************/
613 /* Function 0x26 */
614
615 WERROR
616 clusapi_QueryInfoKey(
617 [ in ] HKEY_RPC hKey,
618 [ out ] uint32 *lpcSubKeys,
619 [ out ] uint32 *lpcbMaxSubKeyLen,
620 [ out ] uint32 *lpcValues,
621 [ out ] uint32 *lpcbMaxValueNameLen,
622 [ out ] uint32 *lpcbMaxValueLen,
623 [ out ] uint32 *lpcbSecurityDescriptor,
624 [ out ] NTTIME *lpftLastWriteTime,
625 [ out ] WERROR *rpc_status
626 );
627
628 /*****************/
629 /* Function 0x27 */
630
631 WERROR
632 clusapi_SetKeySecurity(
633 [ in ] HKEY_RPC hKey,
634 [ in ] uint32 SecurityInformation,
635 [ in ] RPC_SECURITY_DESCRIPTOR *pRpcSecurityDescriptor,
636 [ out ] WERROR *rpc_status
637 );
638
639 /*****************/
640 /* Function 0x28 */
641
642 WERROR
643 clusapi_GetKeySecurity(
644 [ in ] HKEY_RPC hKey,
645 [ in ] uint32 SecurityInformation,
646 [ in, out ] RPC_SECURITY_DESCRIPTOR *pRpcSecurityDescriptor,
647 [ out ] WERROR *rpc_status
648 );
649
650 /*****************/
651 /* Function 0x29 */
652#if 0
653 HGROUP_RPC
654 clusapi_OpenGroup(
655 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
656 [ out ] WERROR *Status,
657 [ out ] WERROR *rpc_status
658 );
659#else
660 void
661 clusapi_OpenGroup(
662 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
663 [ out ] WERROR *Status,
664 [ out ] WERROR *rpc_status,
665 [ out ] HGROUP_RPC *hGroup
666 );
667#endif
668 /*****************/
669 /* Function 0x2A */
670#if 0
671 HGROUP_RPC
672 clusapi_CreateGroup(
673 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
674 [ out ] WERROR *Status,
675 [ out ] WERROR *rpc_status
676 );
677#else
678 void
679 clusapi_CreateGroup(
680 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
681 [ out ] WERROR *Status,
682 [ out ] WERROR *rpc_status,
683 [ out ] HGROUP_RPC *hGroup
684 );
685#endif
686 /*****************/
687 /* Function 0x2B */
688
689 WERROR
690 clusapi_DeleteGroup(
691 [ in ] HGROUP_RPC Group,
692 [ in ] boolean8 force,
693 [ out ] WERROR *rpc_status
694 );
695
696 /*****************/
697 /* Function 0x2C */
698
699 WERROR
700 clusapi_CloseGroup(
701 [ in, out ] HGROUP_RPC *Group
702 );
703
704 /*****************/
705 /* Function 0x2D */
706
707 typedef [v1_enum] enum {
708 ClusterGroupOnline = 0x00000000,
709 ClusterGroupOffline = 0x00000001,
710 ClusterGroupFailed = 0x00000002,
711 ClusterGroupPartialOnline = 0x00000003,
712 ClusterGroupPending = 0x00000004,
713 ClusterGroupStateUnknown = 0xFFFFFFFF
714 } clusapi_ClusterGroupState;
715
716 WERROR
717 clusapi_GetGroupState(
718 [ in ] HGROUP_RPC hGroup,
719 [ out ] clusapi_ClusterGroupState *State,
720 [ out, string ] [charset(UTF16)] uint16 **NodeName,
721 [ out ] WERROR *rpc_status
722 );
723
724 /*****************/
725 /* Function 0x2E */
726
727 WERROR
728 clusapi_SetGroupName(
729 [ in ] HGROUP_RPC hGroup,
730 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
731 [ out ] WERROR *rpc_status
732 );
733
734 /*****************/
735 /* Function 0x2F */
736
737 WERROR
738 clusapi_GetGroupId(
739 [ in ] HGROUP_RPC hGroup,
740 [ out, string ] [charset(UTF16)] uint16 **pGuid,
741 [ out ] WERROR *rpc_status
742 );
743
744 /*****************/
745 /* Function 0x30 */
746
747 WERROR
748 clusapi_GetNodeId(
749 [ in ] HNODE_RPC hNode,
750 [ out, string ] [charset(UTF16)] uint16 **pGuid,
751 [ out ] WERROR *rpc_status
752 );
753
754 /*****************/
755 /* Function 0x31 */
756
757 WERROR
758 clusapi_OnlineGroup(
759 [ in ] HGROUP_RPC hGroup,
760 [ out ] WERROR *rpc_status
761 );
762
763 /*****************/
764 /* Function 0x32 */
765
766 WERROR
767 clusapi_OfflineGroup(
768 [ in ] HGROUP_RPC hGroup,
769 [ out ] WERROR *rpc_status
770 );
771
772 /*****************/
773 /* Function 0x33 */
774
775 WERROR
776 clusapi_MoveGroup(
777 [ in ] HGROUP_RPC hGroup,
778 [ out ] WERROR *rpc_status
779 );
780
781 /*****************/
782 /* Function 0x34 */
783
784 WERROR
785 clusapi_MoveGroupToNode(
786 [ in ] HGROUP_RPC hGroup,
787 [ in ] HNODE_RPC hNode,
788 [ out ] WERROR *rpc_status
789 );
790
791 /*****************/
792 /* Function 0x35 */
793
794 WERROR
795 clusapi_CreateGroupResourceEnum(
796 [ in ] HGROUP_RPC hGroup,
797 [ in ] uint32 dwType,
798 [ out ] ENUM_LIST **ReturnEnum,
799 [ out ] WERROR *rpc_status
800 );
801
802 /*****************/
803 /* Function 0x36 */
804
805 WERROR
806 clusapi_SetGroupNodeList(
807 [ in ] HGROUP_RPC hGroup,
808 [ in, unique, size_is(cchListSize) ] uint16 *multiSzNodeList,
809 [ in ] uint32 cchListSize,
810 [ out ] WERROR *rpc_status
811 );
812
813 /*****************/
814 /* Function 0x37 */
815#if 0
816 HNOTIFY_RPC
817 clusapi_CreateNotify(
818 [ out ] WERROR *Status,
819 [ out ] WERROR *rpc_status
820 );
821#else
822 void
823 clusapi_CreateNotify(
824 [ out ] WERROR *Status,
825 [ out ] WERROR *rpc_status,
826 [ out ] HNOTIFY_RPC *hNotify
827 );
828#endif
829 /*****************/
830 /* Function 0x38 */
831
832 WERROR
833 clusapi_CloseNotify(
834 [ in, out ] HNOTIFY_RPC *Notify
835 );
836
837 /*****************/
838 /* Function 0x39 */
839
840 WERROR
841 clusapi_AddNotifyCluster(
842 [ in ] HNOTIFY_RPC hNotify,
843 [ in ] HCLUSTER_RPC hCluster,
844 [ in ] uint32 dwFilter,
845 [ in ] uint32 dwNotifyKey,
846 [ out ] WERROR *rpc_status
847 );
848
849 /*****************/
850 /* Function 0x3A */
851
852 WERROR
853 clusapi_AddNotifyNode(
854 [ in ] HNOTIFY_RPC hNotify,
855 [ in ] HNODE_RPC hNode,
856 [ in ] uint32 dwFilter,
857 [ in ] uint32 dwNotifyKey,
858 [ out ] uint32 *dwStateSequence,
859 [ out ] WERROR *rpc_status
860 );
861
862 /*****************/
863 /* Function 0x3B */
864
865 WERROR
866 clusapi_AddNotifyGroup(
867 [ in ] HNOTIFY_RPC hNotify,
868 [ in ] HGROUP_RPC hGroup,
869 [ in ] uint32 dwFilter,
870 [ in ] uint32 dwNotifyKey,
871 [ out ] uint32 *dwStateSequence,
872 [ out ] WERROR *rpc_status
873 );
874
875 /*****************/
876 /* Function 0x3C */
877
878 WERROR
879 clusapi_AddNotifyResource(
880 [ in ] HNOTIFY_RPC hNotify,
881 [ in ] HRES_RPC hResource,
882 [ in ] uint32 dwFilter,
883 [ in ] uint32 dwNotifyKey,
884 [ out ] uint32 *dwStateSequence,
885 [ out ] WERROR *rpc_status
886 );
887
888 /*****************/
889 /* Function 0x3D */
890
891 WERROR
892 clusapi_AddNotifyKey(
893 [ in ] HNOTIFY_RPC hNotify,
894 [ in ] HKEY_RPC hKey,
895 [ in ] uint32 dwNotifyKey,
896 [ in ] uint32 Filter,
897 [ in ] boolean8 WatchSubTree,
898 [ out ] WERROR *rpc_status
899 );
900
901 /*****************/
902 /* Function 0x3E */
903
904 WERROR
905 clusapi_ReAddNotifyNode(
906 [ in ] HNOTIFY_RPC hNotify,
907 [ in ] HNODE_RPC hNode,
908 [ in ] uint32 dwFilter,
909 [ in ] uint32 dwNotifyKey,
910 [ in ] uint32 StateSequence,
911 [ out ] WERROR *rpc_status
912 );
913
914 /*****************/
915 /* Function 0x3F */
916
917 WERROR
918 clusapi_ReAddNotifyGroup(
919 [ in ] HNOTIFY_RPC hNotify,
920 [ in ] HGROUP_RPC hGroup,
921 [ in ] uint32 dwFilter,
922 [ in ] uint32 dwNotifyKey,
923 [ in ] uint32 StateSequence,
924 [ out ] WERROR *rpc_status
925 );
926
927 /*****************/
928 /* Function 0x40 */
929
930 WERROR
931 clusapi_ReAddNotifyResource(
932 [ in ] HNOTIFY_RPC hNotify,
933 [ in ] HRES_RPC hResource,
934 [ in ] uint32 dwFilter,
935 [ in ] uint32 dwNotifyKey,
936 [ in ] uint32 StateSequence,
937 [ out ] WERROR *rpc_status
938 );
939
940 /*****************/
941 /* Function 0x41 */
942
943 WERROR
944 clusapi_GetNotify(
945 [ in ] HNOTIFY_RPC hNotify,
946 [ out ] uint32 *dwNotifyKey,
947 [ out ] uint32 *dwFilter,
948 [ out ] uint32 *dwStateSequence,
949 [ out, string ] [charset(UTF16)] uint16 **Name,
950 [ out ] WERROR *rpc_status
951 );
952
953 /*****************/
954 /* Function 0x42 */
955#if 0
956 HNODE_RPC
957 clusapi_OpenNode(
958 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
959 [ out ] WERROR *Status,
960 [ out ] WERROR *rpc_status
961 );
962#else
963 void
964 clusapi_OpenNode(
965 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
966 [ out ] WERROR *Status,
967 [ out ] WERROR *rpc_status,
968 [ out ] HNODE_RPC *hNode
969 );
970#endif
971 /*****************/
972 /* Function 0x43 */
973
974 WERROR
975 clusapi_CloseNode(
976 [ in, out ] HNODE_RPC *Node
977 );
978
979 /*****************/
980 /* Function 0x44 */
981
982 typedef [v1_enum] enum {
983 ClusterNodeUp = 0x00000000,
984 ClusterNodeDown = 0x00000001,
985 ClusterNodePaused = 0x00000002,
986 ClusterNodeJoining = 0x00000003,
987 ClusterNodeStateUnknown = 0xFFFFFFFF
988 } clusapi_ClusterNodeState;
989
990 WERROR
991 clusapi_GetNodeState(
992 [ in ] HNODE_RPC hNode,
993 [ out ] clusapi_ClusterNodeState *State,
994 [ out ] WERROR *rpc_status
995 );
996
997 /*****************/
998 /* Function 0x45 */
999
1000 WERROR
1001 clusapi_PauseNode(
1002 [ in ] HNODE_RPC hNode,
1003 [ out ] WERROR *rpc_status
1004 );
1005
1006 /*****************/
1007 /* Function 0x46 */
1008
1009 WERROR
1010 clusapi_ResumeNode(
1011 [ in ] HNODE_RPC hNode,
1012 [ out ] WERROR *rpc_status
1013 );
1014
1015 /*****************/
1016 /* Function 0x47 */
1017
1018 WERROR
1019 clusapi_EvictNode(
1020 [ in ] HNODE_RPC hNode,
1021 [ out ] WERROR *rpc_status
1022 );
1023
1024 /*****************/
1025 /* Function 0x48 */
1026
1027 WERROR
1028 clusapi_NodeResourceControl(
1029 [ in ] HRES_RPC hResource,
1030 [ in ] HNODE_RPC hNode,
1031 [ in ] uint32 dwControlCode,
1032 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1033 [ in ] uint32 nInBufferSize,
1034 [ out, size_is(nOutBufferSize),
1035 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1036 [ in ] uint32 nOutBufferSize,
1037 [ out ] uint32 *lpBytesReturned,
1038 [ out ] uint32 *lpcbRequired,
1039 [ out ] WERROR *rpc_status
1040 );
1041
1042 /*****************/
1043 /* Function 0x49 */
1044
1045 WERROR
1046 clusapi_ResourceControl(
1047 [ in ] HRES_RPC hResource,
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
1057 );
1058
1059 /*****************/
1060 /* Function 0x4A */
1061
1062 WERROR
1063 clusapi_NodeResourceTypeControl(
1064 [ in ] HCLUSTER_RPC hCluster,
1065 [ in, string ] [charset(UTF16)] uint16 *lpszResourceTypeName,
1066 [ in ] HNODE_RPC hNode,
1067 [ in ] uint32 dwControlCode,
1068 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1069 [ in ] uint32 nInBufferSize,
1070 [ out, size_is(nOutBufferSize),
1071 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1072 [ in ] uint32 nOutBufferSize,
1073 [ out ] uint32 *lpBytesReturned,
1074 [ out ] uint32 *lpcbRequired,
1075 [ out ] WERROR *rpc_status
1076 );
1077
1078 /*****************/
1079 /* Function 0x4B */
1080
1081 WERROR
1082 clusapi_ResourceTypeControl(
1083 [ in ] HCLUSTER_RPC hCluster,
1084 [ in, string ] [charset(UTF16)] uint16 *lpszResourceTypeName,
1085 [ in ] uint32 dwControlCode,
1086 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1087 [ in ] uint32 nInBufferSize,
1088 [ out, size_is(nOutBufferSize),
1089 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1090 [ in ] uint32 nOutBufferSize,
1091 [ out ] uint32 *lpBytesReturned,
1092 [ out ] uint32 *lpcbRequired,
1093 [ out ] WERROR *rpc_status
1094 );
1095
1096 /*****************/
1097 /* Function 0x4C */
1098
1099 WERROR
1100 clusapi_NodeGroupControl(
1101 [ in ] HGROUP_RPC hGroup,
1102 [ in ] HNODE_RPC hNode,
1103 [ in ] uint32 dwControlCode,
1104 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1105 [ in ] uint32 nInBufferSize,
1106 [ out, size_is(nOutBufferSize),
1107 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1108 [ in ] uint32 nOutBufferSize,
1109 [ out ] uint32 *lpBytesReturned,
1110 [ out ] uint32 *lpcbRequired,
1111 [ out ] WERROR *rpc_status
1112 );
1113
1114 /*****************/
1115 /* Function 0x4D */
1116
1117 typedef [v1_enum] enum {
1118 CLUSCTL_GROUP_UNKNOWN = 0x03000000,
1119 CLUSCTL_GROUP_GET_CHARACTERISTICS = 0x03000005,
1120 CLUSCTL_GROUP_GET_FLAGS = 0x03000009,
1121 CLUSCTL_GROUP_GET_NAME = 0x03000029,
1122 CLUSCTL_GROUP_GET_ID = 0x03000039,
1123 CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES = 0x03000051,
1124 CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES = 0x03000055,
1125 CLUSCTL_GROUP_GET_COMMON_PROPERTIES = 0x03000059,
1126 CLUSCTL_GROUP_SET_COMMON_PROPERTIES = 0x0340005E,
1127 CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES = 0x03000061,
1128 CLUSCTL_GROUP_GET_COMMON_PROPERTY_FMTS = 0x03000065,
1129 CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES = 0x03000079,
1130 CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES = 0x0300007D,
1131 CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES = 0x03000081,
1132 CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES = 0x03400086,
1133 CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES = 0x03000089
1134 } clusapi_GroupControlCode;
1135
1136 WERROR
1137 clusapi_GroupControl(
1138 [ in ] HGROUP_RPC hGroup,
1139 [ in ] clusapi_GroupControlCode dwControlCode,
1140 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1141 [ in ] uint32 nInBufferSize,
1142 [ out, size_is(nOutBufferSize),
1143 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1144 [ in ] uint32 nOutBufferSize,
1145 [ out ] uint32 *lpBytesReturned,
1146 [ out ] uint32 *lpcbRequired,
1147 [ out ] WERROR *rpc_status
1148 );
1149
1150 /*****************/
1151 /* Function 0x4E */
1152
1153 WERROR
1154 clusapi_NodeNodeControl(
1155 [ in ] HNODE_RPC hNode,
1156 [ in ] HNODE_RPC hHostNode,
1157 [ in ] uint32 dwControlCode,
1158 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1159 [ in ] uint32 nInBufferSize,
1160 [ out, size_is(nOutBufferSize),
1161 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1162 [ in ] uint32 nOutBufferSize,
1163 [ out ] uint32 *lpBytesReturned,
1164 [ out ] uint32 *lpcbRequired,
1165 [ out ] WERROR *rpc_status
1166 );
1167
1168 /*****************/
1169 /* Function 0x4F */
1170
1171 typedef [v1_enum] enum {
1172 CLUSCTL_NODE_UNKNOWN = 0x04000000,
1173 CLUSCTL_NODE_GET_CHARACTERISTICS = 0x04000005,
1174 CLUSCTL_NODE_GET_FLAGS = 0x04000009,
1175 CLUSCTL_NODE_GET_NAME = 0x04000029,
1176 CLUSCTL_NODE_GET_ID = 0x04000039,
1177 CLUSCTL_NODE_GET_CLUSTER_SERVICE_ACCOUNT_NAME = 0x04000041,
1178 CLUSCTL_NODE_ENUM_COMMON_PROPERTIES = 0x04000051,
1179 CLUSCTL_NODE_GET_RO_COMMON_PROPERTIES = 0x04000055,
1180 CLUSCTL_NODE_GET_COMMON_PROPERTIES = 0x04000059,
1181 CLUSCTL_NODE_SET_COMMON_PROPERTIES = 0x0440005E,
1182 CLUSCTL_NODE_VALIDATE_COMMON_PROPERTIES = 0x04000061,
1183 CLUSCTL_NODE_ENUM_PRIVATE_PROPERTIES = 0x04000079,
1184 CLUSCTL_NODE_GET_RO_PRIVATE_PROPERTIES = 0x0400007D,
1185 CLUSCTL_NODE_GET_PRIVATE_PROPERTIES = 0x04000081,
1186 CLUSCTL_NODE_SET_PRIVATE_PROPERTIES = 0x04400086,
1187 CLUSCTL_NODE_VALIDATE_PRIVATE_PROPERTIES = 0x04000089
1188 } clusapi_NodeControlCode;
1189
1190 WERROR
1191 clusapi_NodeControl(
1192 [ in ] HNODE_RPC hNode,
1193 [ in ] clusapi_NodeControlCode dwControlCode,
1194 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1195 [ in ] uint32 nInBufferSize,
1196 [ out, size_is(nOutBufferSize),
1197 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1198 [ in ] uint32 nOutBufferSize,
1199 [ out ] uint32 *lpBytesReturned,
1200 [ out ] uint32 *lpcbRequired,
1201 [ out ] WERROR *rpc_status
1202 );
1203
1204 /*****************/
1205 /* Function 0x50 */
1206
1207 WERROR
1208 Opnum80NotUsedOnWire(void);
1209
1210 /*****************/
1211 /* Function 0x51 */
1212#if 0
1213 HNETWORK_RPC
1214 clusapi_OpenNetwork(
1215 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1216 [ out ] WERROR *Status,
1217 [ out ] WERROR *rpc_status
1218 );
1219#else
1220 void
1221 clusapi_OpenNetwork(
1222 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1223 [ out ] WERROR *Status,
1224 [ out ] WERROR *rpc_status,
1225 [ out ] HNETWORK_RPC *hNetwork
1226 );
1227#endif
1228 /*****************/
1229 /* Function 0x52 */
1230
1231 WERROR
1232 clusapi_CloseNetwork(
1233 [ in, out ] HNETWORK_RPC *Network
1234 );
1235
1236 /*****************/
1237 /* Function 0x53 */
1238
1239 typedef [v1_enum] enum {
1240 ClusterNetworkUnavailable = 0x00000000,
1241 ClusterNetworkDown = 0x00000001,
1242 ClusterNetworkPartitioned = 0x00000002,
1243 ClusterNetworkUp = 0x00000003,
1244 ClusterNetworkStateUnknown = 0xFFFFFFFF
1245 } clusapi_ClusterNetworkState;
1246
1247 WERROR
1248 clusapi_GetNetworkState(
1249 [ in ] HNETWORK_RPC hNetwork,
1250 [ out ] clusapi_ClusterNetworkState *State,
1251 [ out ] WERROR *rpc_status
1252 );
1253
1254 /*****************/
1255 /* Function 0x54 */
1256
1257 WERROR
1258 clusapi_SetNetworkName(
1259 [ in ] HNETWORK_RPC hNetwork,
1260 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1261 [ out ] WERROR *rpc_status
1262 );
1263
1264 /*****************/
1265 /* Function 0x55 */
1266
1267 WERROR
1268 clusapi_CreateNetworkEnum(
1269 [ in ] HNETWORK_RPC hNetwork,
1270 [ in ] uint32 dwType,
1271 [ out ] ENUM_LIST **ReturnEnum,
1272 [ out ] WERROR *rpc_status
1273 );
1274
1275 /*****************/
1276 /* Function 0x56 */
1277
1278 WERROR
1279 clusapi_GetNetworkId(
1280 [ in ] HNETWORK_RPC hNetwork,
1281 [ out, string ] [charset(UTF16)] uint16 **pGuid,
1282 [ out ] WERROR *rpc_status
1283 );
1284
1285 /*****************/
1286 /* Function 0x57 */
1287
1288 WERROR
1289 clusapi_SetNetworkPriorityOrder(
1290 [ in, range(0, 1000)] uint32 NetworkCount,
1291 [ in, string, size_is(NetworkCount) ] [charset(UTF16)] uint16 NetworkIdList[*],
1292 [ out ] WERROR *rpc_status
1293 );
1294
1295 /*****************/
1296 /* Function 0x58 */
1297
1298 WERROR
1299 clusapi_NodeNetworkControl(
1300 [ in ] HNETWORK_RPC hNetwork,
1301 [ in ] HNODE_RPC hNode,
1302 [ in ] uint32 dwControlCode,
1303 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1304 [ in ] uint32 nInBufferSize,
1305 [ out, size_is(nOutBufferSize),
1306 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1307 [ in ] uint32 nOutBufferSize,
1308 [ out ] uint32 *lpBytesReturned,
1309 [ out ] uint32 *lpcbRequired,
1310 [ out ] WERROR *rpc_status
1311 );
1312
1313 /*****************/
1314 /* Function 0x59 */
1315
1316 WERROR
1317 clusapi_NetworkControl(
1318 [ in ] HNETWORK_RPC hNetwork,
1319 [ in ] uint32 dwControlCode,
1320 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1321 [ in ] uint32 nInBufferSize,
1322 [ out, size_is(nOutBufferSize),
1323 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1324 [ in ] uint32 nOutBufferSize,
1325 [ out ] uint32 *lpBytesReturned,
1326 [ out ] uint32 *lpcbRequired,
1327 [ out ] WERROR *rpc_status
1328 );
1329
1330 /*****************/
1331 /* Function 0x5A */
1332
1333 WERROR
1334 clusapi_AddNotifyNetwork(
1335 [ in ] HNOTIFY_RPC hNotify,
1336 [ in ] HNETWORK_RPC hNetwork,
1337 [ in ] uint32 dwFilter,
1338 [ in ] uint32 dwNotifyKey,
1339 [ out ] uint32 *dwStateSequence,
1340 [ out ] WERROR *rpc_status
1341 );
1342
1343 /*****************/
1344 /* Function 0x5B */
1345
1346 WERROR
1347 clusapi_ReAddNotifyNetwork(
1348 [ in ] HNOTIFY_RPC hNotify,
1349 [ in ] HNETWORK_RPC hNetwork,
1350 [ in ] uint32 dwFilter,
1351 [ in ] uint32 dwNotifyKey,
1352 [ in ] uint32 StateSequence,
1353 [ out ] WERROR *rpc_status
1354 );
1355
1356 /*****************/
1357 /* Function 0x5C */
1358#if 0
1359 HNETINTERFACE_RPC
1360 clusapi_OpenNetInterface(
1361 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1362 [ out ] WERROR *Status,
1363 [ out ] WERROR *rpc_status
1364 );
1365#else
1366 void
1367 clusapi_OpenNetInterface(
1368 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1369 [ out ] WERROR *Status,
1370 [ out ] WERROR *rpc_status,
1371 [ out ] HNETINTERFACE_RPC *hNetInterface
1372 );
1373#endif
1374 /*****************/
1375 /* Function 0x5D */
1376
1377 WERROR
1378 clusapi_CloseNetInterface(
1379 [ in, out ] HNETINTERFACE_RPC *NetInterface
1380 );
1381
1382 /*****************/
1383 /* Function 0x5E */
1384
1385 typedef [v1_enum] enum {
1386 ClusterNetInterfaceFailed = 0x00000000,
1387 ClusterNetInterfaceUnreachable = 0x00000001,
1388 ClusterNetInterfaceUnavailable = 0x00000002,
1389 ClusterNetInterfaceUp = 0x00000003,
1390 ClusterNetInterfaceStateUnknown = 0xFFFFFFFF
1391 } clusapi_ClusterNetInterfaceState;
1392
1393 WERROR
1394 clusapi_GetNetInterfaceState(
1395 [ in ] HNETINTERFACE_RPC hNetInterface,
1396 [ out ] clusapi_ClusterNetInterfaceState *State,
1397 [ out ] WERROR *rpc_status
1398 );
1399
1400 /*****************/
1401 /* Function 0x5F */
1402
1403 WERROR
1404 clusapi_GetNetInterface(
1405 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
1406 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1407 [ out, string ] [charset(UTF16)] uint16 **lppszInterfaceName,
1408 [ out ] WERROR *rpc_status
1409 );
1410
1411 /*****************/
1412 /* Function 0x60 */
1413
1414 WERROR
1415 clusapi_GetNetInterfaceId(
1416 [ in ] HNETINTERFACE_RPC hNetInterface,
1417 [ out, string ] [charset(UTF16)] uint16 **pGuid,
1418 [ out ] WERROR *rpc_status
1419 );
1420
1421 /*****************/
1422 /* Function 0x61 */
1423
1424 WERROR
1425 clusapi_NodeNetInterfaceControl(
1426 [ in ] HNETINTERFACE_RPC hNetInterface,
1427 [ in ] HNODE_RPC hNode,
1428 [ in ] uint32 dwControlCode,
1429 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1430 [ in ] uint32 nInBufferSize,
1431 [ out, size_is(nOutBufferSize),
1432 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1433 [ in ] uint32 nOutBufferSize,
1434 [ out ] uint32 *lpBytesReturned,
1435 [ out ] uint32 *lpcbRequired,
1436 [ out ] WERROR *rpc_status
1437 );
1438
1439 /*****************/
1440 /* Function 0x62 */
1441
1442 WERROR
1443 clusapi_NetInterfaceControl(
1444 [ in ] HNETINTERFACE_RPC hNetInterface,
1445 [ in ] uint32 dwControlCode,
1446 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1447 [ in ] uint32 nInBufferSize,
1448 [ out, size_is(nOutBufferSize),
1449 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1450 [ in ] uint32 nOutBufferSize,
1451 [ out ] uint32 *lpBytesReturned,
1452 [ out ] uint32 *lpcbRequired,
1453 [ out ] WERROR *rpc_status
1454 );
1455
1456 /*****************/
1457 /* Function 0x63 */
1458
1459 WERROR
1460 clusapi_AddNotifyNetInterface(
1461 [ in ] HNOTIFY_RPC hNotify,
1462 [ in ] HNETINTERFACE_RPC hNetInterface,
1463 [ in ] uint32 dwFilter,
1464 [ in ] uint32 dwNotifyKey,
1465 [ out ] uint32 *dwStateSequence,
1466 [ out ] WERROR *rpc_status
1467 );
1468
1469 /*****************/
1470 /* Function 0x64 */
1471
1472 WERROR
1473 clusapi_ReAddNotifyNetInterface(
1474 [ in ] HNOTIFY_RPC hNotify,
1475 [ in ] HNETINTERFACE_RPC hNetInterface,
1476 [ in ] uint32 dwFilter,
1477 [ in ] uint32 dwNotifyKey,
1478 [ in ] uint32 StateSequence,
1479 [ out ] WERROR *rpc_status
1480 );
1481
1482 /*****************/
1483 /* Function 0x65 */
1484
1485 WERROR
1486 clusapi_CreateNodeEnum(
1487 [ in ] HNODE_RPC hNode,
1488 [ in ] uint32 dwType,
1489 [ out ] ENUM_LIST **ReturnEnum,
1490 [ out ] WERROR *rpc_status
1491 );
1492
1493 /*****************/
1494 /* Function 0x66 */
1495
1496 WERROR
1497 clusapi_GetClusterVersion2(
1498 [ out ] uint16 *lpwMajorVersion,
1499 [ out ] uint16 *lpwMinorVersion,
1500 [ out ] uint16 *lpwBuildNumber,
1501 [ out, string ] [charset(UTF16)] uint16 **lpszVendorId,
1502 [ out, string ] [charset(UTF16)] uint16 **lpszCSDVersion,
1503 [ out ] CLUSTER_OPERATIONAL_VERSION_INFO **ppClusterOpVerInfo,
1504 [ out ] WERROR *rpc_status
1505 );
1506
1507 /*****************/
1508 /* Function 0x67 */
1509
1510 WERROR
1511 clusapi_CreateResTypeEnum(
1512 [ in, string ] [charset(UTF16)] uint16 *lpszTypeName,
1513 [ in ] uint32 dwType,
1514 [ out ] ENUM_LIST **ReturnEnum,
1515 [ out ] WERROR *rpc_status
1516 );
1517
1518 /*****************/
1519 /* Function 0x68 */
1520
1521 WERROR
1522 clusapi_BackupClusterDatabase(
1523 [ in, string ] [charset(UTF16)] uint16 *lpszPathName,
1524 [ out ] WERROR *rpc_status
1525 );
1526
1527 /*****************/
1528 /* Function 0x69 */
1529
1530 WERROR
1531 clusapi_NodeClusterControl(
1532 [ in ] HCLUSTER_RPC hCluster,
1533 [ in ] HNODE_RPC hHostNode,
1534 [ in ] uint32 dwControlCode,
1535 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1536 [ in ] uint32 nInBufferSize,
1537 [ out, size_is(nOutBufferSize),
1538 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1539 [ in ] uint32 nOutBufferSize,
1540 [ out ] uint32 *lpBytesReturned,
1541 [ out ] uint32 *lpcbRequired,
1542 [ out ] WERROR *rpc_status
1543 );
1544
1545 /*****************/
1546 /* Function 0x6A */
1547
1548 typedef [v1_enum] enum {
1549 CLUSCTL_CLUSTER_UNKNOWN = 0x07000000,
1550 CLUSCTL_CLUSTER_GET_FQDN = 0x0700003D,
1551 CLUSCTL_CLUSTER_CHECK_VOTER_EVICT = 0x07000045,
1552 CLUSCTL_CLUSTER_CHECK_VOTER_DOWN = 0x07000049,
1553 CLUSCTL_CLUSTER_SHUTDOWN = 0x0700004D,
1554 CLUSCTL_CLUSTER_ENUM_COMMON_PROPERTIES = 0x07000051,
1555 CLUSCTL_CLUSTER_GET_RO_COMMON_PROPERTIES = 0x07000055,
1556 CLUSCTL_CLUSTER_GET_COMMON_PROPERTIES = 0x07000059,
1557 CLUSCTL_CLUSTER_SET_COMMON_PROPERTIES = 0x0740005E,
1558 CLUSCTL_CLUSTER_VALIDATE_COMMON_PROPERTIES = 0x07000061,
1559 CLUSCTL_CLUSTER_GET_COMMON_PROPERTY_FMTS = 0x07000065,
1560 CLUSCTL_CLUSTER_ENUM_PRIVATE_PROPERTIES = 0x07000079,
1561 CLUSCTL_CLUSTER_GET_RO_PRIVATE_PROPERTIES = 0x0700007D,
1562 CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTIES = 0x07000081,
1563 CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES = 0x07400086,
1564 CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES = 0x07000089,
1565 CLUSCTL_CLUSTER_GET_SHARED_VOLUME_ID = 0x07000291,
1566 CLUSCTL_CLUSTER_UPGRADE_CLUSTER_VERSION = 0x074000ce,
1567 CLUSCTL_CLUSTER_CLEAR_UPGRADE_IN_PROGRESS = 0x074000d2,
1568 CLUSCTL_CLUSTER_IS_READY_FOR_UPGRADE = 0x070000d5
1569 } clusapi_ClusterControlCode;
1570
1571 typedef [v1_enum] enum {
1572 CLUSPROP_SYNTAX_ENDMARK = 0x00000000,
1573 CLUSPROP_SYNTAX_NAME = 0x00040003,
1574 CLUSPROP_SYNTAX_RESCLASS = 0x00020002,
1575 CLUSPROP_SYNTAX_LIST_VALUE_SZ = 0x00010003,
1576 CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = 0x00010004,
1577 CLUSPROP_SYNTAX_LIST_VALUE_DWORD = 0x00010002,
1578 CLUSPROP_SYNTAX_LIST_VALUE_BINARY = 0x00010001,
1579 CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = 0x00010005,
1580 CLUSPROP_SYNTAX_LIST_VALUE_LONG = 0x00010007,
1581 CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = 0x00010008,
1582 CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = 0x00010009,
1583 CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = 0x0001000a,
1584 CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER = 0x00010006,
1585 CLUSPROP_SYNTAX_LIST_VALUE_WORD = 0x0001000b,
1586 CLUSPROP_SYNTAX_LIST_VALUE_FILETIME = 0x0001000c,
1587 CLUSPROP_SYNTAX_DISK_SIGNATURE = 0x00050002,
1588 CLUSPROP_SYNTAX_SCSI_ADDRESS = 0x00060002,
1589 CLUSPROP_SYNTAX_DISK_NUMBER = 0x00070002,
1590 CLUSPROP_SYNTAX_PARTITION_INFO = 0x00080001,
1591 CLUSPROP_SYNTAX_DISK_SERIALNUMBER = 0x000a0003,
1592 CLUSPROP_SYNTAX_DISK_GUID = 0x000b0003,
1593 CLUSPROP_SYNTAX_DISK_SIZE = 0x000c0006,
1594 CLUSPROP_SYNTAX_PARTITION_INFO_EX = 0x000d0001
1595 } CLUSTER_PROPERTY_SYNTAX;
1596
1597 typedef struct {
1598 CLUSTER_PROPERTY_SYNTAX Syntax;
1599 uint32 Size;
1600 [subcontext(0),subcontext_size(Size)] [flag(NDR_REMAINING)] DATA_BLOB Buffer;
1601 [flag(NDR_ALIGN4)] DATA_BLOB Padding;
1602 } clusapi_propertyValues;
1603
1604 typedef struct {
1605 [value(CLUSPROP_SYNTAX_NAME)] CLUSTER_PROPERTY_SYNTAX syntax_name;
1606 [value(strlen_m_term(buffer)*2)] uint32 size;
1607 nstring buffer;
1608 [flag(NDR_ALIGN2)] DATA_BLOB padding;
1609 clusapi_propertyValues PropertyValues;
1610 [value(CLUSPROP_SYNTAX_ENDMARK)] CLUSTER_PROPERTY_SYNTAX end_mark;
1611 } clusapi_propertyValue;
1612
1613 typedef [public] struct {
1614 uint32 propertyCount;
1615 clusapi_propertyValue propertyValues[propertyCount];
1616 [value(CLUSPROP_SYNTAX_ENDMARK)] CLUSTER_PROPERTY_SYNTAX end_mark;
1617 } clusapi_PROPERTY_LIST;
1618
1619 WERROR
1620 clusapi_ClusterControl(
1621 [ in ] HCLUSTER_RPC hCluster,
1622 [ in ] clusapi_ClusterControlCode dwControlCode,
1623 [ in, unique, size_is(nInBufferSize) ] uint8 *lpInBuffer,
1624 [ in ] uint32 nInBufferSize,
1625 [ out, size_is(nOutBufferSize),
1626 length_is (*lpBytesReturned)] uint8 *lpOutBuffer,
1627 [ in ] uint32 nOutBufferSize,
1628 [ out ] uint32 *lpBytesReturned,
1629 [ out ] uint32 *lpcbRequired,
1630 [ out ] WERROR *rpc_status
1631 );
1632
1633 /*****************/
1634 /* Function 0x6B */
1635
1636 WERROR
1637 clusapi_UnblockGetNotifyCall(
1638 [ in ] HNOTIFY_RPC hNotify
1639 );
1640
1641 /*****************/
1642 /* Function 0x6C */
1643
1644 WERROR
1645 clusapi_SetServiceAccountPassword(
1646 [ in, string ] [charset(UTF16)] uint16 *lpszNewPassword,
1647 [ in ] IDL_CLUSTER_SET_PASSWORD_FLAGS dwFlags,
1648 [ out, size_is(ReturnStatusBufferSize), length_is(*SizeReturned) ]
1649 IDL_CLUSTER_SET_PASSWORD_STATUS ReturnStatusBufferPtr[*],
1650 [ in, range(0, (64 * 1024)) ] uint32 ReturnStatusBufferSize,
1651 [ out ] uint32 *SizeReturned,
1652 [ out ] uint32 *ExpectedBufferSize
1653 );
1654
1655 /*****************/
1656 /* Function 0x6D */
1657
1658 WERROR
1659 clusapi_SetResourceDependencyExpression(
1660 [ in ] HRES_RPC hResource,
1661 [ in, string, unique ] [charset(UTF16)] uint16 *lpszDependencyExpression,
1662 [ out ] WERROR *rpc_status
1663 );
1664
1665 /*****************/
1666 /* Function 0x6E */
1667
1668 WERROR
1669 clusapi_GetResourceDependencyExpression(
1670 [ in ] HRES_RPC hResource,
1671 [ out, string ] [charset(UTF16)] uint16 **lpszDependencyExpression,
1672 [ out ] WERROR *rpc_status
1673 );
1674
1675 /*****************/
1676 /* Function 0x6F */
1677
1678 WERROR
1679 Opnum111NotUsedOnWire(void);
1680
1681 /*****************/
1682 /* Function 0x70 */
1683
1684 WERROR
1685 clusapi_GetResourceNetworkName(
1686 [ in ] HRES_RPC hResource,
1687 [ out, string ] [charset(UTF16)] uint16 **lpszName,
1688 [ out ] WERROR *rpc_status
1689 );
1690
1691 /*****************/
1692 /* Function 0x71 */
1693
1694 WERROR
1695 clusapi_ExecuteBatch(
1696 [ in ] HKEY_RPC hKey,
1697 [ in ] uint32 cbData,
1698 [ in, size_is(cbData)] uint8 *lpData,
1699 [ out ] int *pdwFailedCommand,
1700 [ out ] WERROR *rpc_status
1701 );
1702
1703 /*****************/
1704 /* Function 0x72 */
1705
1706 WERROR
1707 clusapi_CreateBatchPort(
1708 [ in ] HKEY_RPC hKey,
1709 [ out ] HBATCH_PORT_RPC *phBatchPort,
1710 [ out ] WERROR *rpc_status
1711 );
1712
1713 /*****************/
1714 /* Function 0x73 */
1715
1716 WERROR
1717 clusapi_GetBatchNotification(
1718 [ in ] HBATCH_PORT_RPC hBatchNotify,
1719 [ out ] uint32 *cbData,
1720 [ out, size_is(,*cbData) ] uint8 ** lpData
1721 );
1722
1723 /*****************/
1724 /* Function 0x74 */
1725
1726 WERROR
1727 clusapi_CloseBatchPort(
1728 [ in, out ] HBATCH_PORT_RPC *phBatchPort
1729 );
1730
1731 /*****************/
1732 /* Function 0x75 */
1733
1734 typedef [bitmap32bit] bitmap {
1735 CLUSAPI_READ_ACCESS = 0x00000001,
1736 CLUSAPI_CHANGE_ACCESS = 0x00000002,
1737 CLUSAPI_GENERIC_READ = 0x80000000,
1738 CLUSAPI_GENERIC_WRITE = 0x40000000,
1739 CLUSAPI_GENERIC_EXECUTE = 0x20000000,
1740 CLUSAPI_GENERIC_ALL = 0x10000000,
1741 CLUSAPI_MAXIMUM_ALLOWED = 0x02000000
1742 } clusapi_DesiredAccessMask;
1743
1744#if 0
1745 HCLUSTER_RPC
1746 clusapi_OpenClusterEx(
1747 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1748 [ out ] uint32 *lpdwGrantedAccess,
1749 [ out ] WERROR *Status
1750 );
1751#else
1752 void
1753 clusapi_OpenClusterEx(
1754 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1755 [ out ] uint32 *lpdwGrantedAccess,
1756 [ out ] WERROR *Status,
1757 [ out ] HCLUSTER_RPC *hCluster
1758 );
1759#endif
1760
1761 /*****************/
1762 /* Function 0x76 */
1763#if 0
1764 HNODE_RPC
1765 clusapi_OpenNodeEx(
1766 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
1767 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1768 [ out ] uint32 *lpdwGrantedAccess,
1769 [ out ] WERROR *Status,
1770 [ out ] WERROR *rpc_status
1771 );
1772#else
1773 void
1774 clusapi_OpenNodeEx(
1775 [ in, string ] [charset(UTF16)] uint16 *lpszNodeName,
1776 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1777 [ out ] uint32 *lpdwGrantedAccess,
1778 [ out ] WERROR *Status,
1779 [ out ] WERROR *rpc_status,
1780 [ out ] HNODE_RPC *hNode
1781 );
1782#endif
1783 /*****************/
1784 /* Function 0x77 */
1785#if 0
1786 HGROUP_RPC
1787 clusapi_OpenGroupEx(
1788 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1789 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1790 [ out ] uint32 *lpdwGrantedAccess,
1791 [ out ] WERROR *Status,
1792 [ out ] WERROR *rpc_status
1793 );
1794#else
1795 void
1796 clusapi_OpenGroupEx(
1797 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1798 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1799 [ out ] uint32 *lpdwGrantedAccess,
1800 [ out ] WERROR *Status,
1801 [ out ] WERROR *rpc_status,
1802 [ out ] HGROUP_RPC *hGroup
1803 );
1804#endif
1805 /*****************/
1806 /* Function 0x78 */
1807#if 0
1808 HRES_RPC
1809 clusapi_OpenResourceEx(
1810 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
1811 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1812 [ out ] uint32 *lpdwGrantedAccess,
1813 [ out ] WERROR *Status,
1814 [ out ] WERROR *rpc_status
1815 );
1816#else
1817 void
1818 clusapi_OpenResourceEx(
1819 [ in, string ] [charset(UTF16)] uint16 *lpszResourceName,
1820 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1821 [ out ] uint32 *lpdwGrantedAccess,
1822 [ out ] WERROR *Status,
1823 [ out ] WERROR *rpc_status,
1824 [ out ] HRES_RPC *hResource
1825 );
1826#endif
1827 /*****************/
1828 /* Function 0x79 */
1829#if 0
1830 HNETWORK_RPC
1831 clusapi_OpenNetworkEx(
1832 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1833 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1834 [ out ] uint32 *lpdwGrantedAccess,
1835 [ out ] WERROR *Status,
1836 [ out ] WERROR *rpc_status
1837 );
1838#else
1839 void
1840 clusapi_OpenNetworkEx(
1841 [ in, string ] [charset(UTF16)] uint16 *lpszNetworkName,
1842 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1843 [ out ] uint32 *lpdwGrantedAccess,
1844 [ out ] WERROR *Status,
1845 [ out ] WERROR *rpc_status,
1846 [ out ] HNETWORK_RPC *hNetwork
1847 );
1848#endif
1849 /*****************/
1850 /* Function 0x7A */
1851#if 0
1852 HNETINTERFACE_RPC
1853 clusapi_OpenNetInterfaceEx(
1854 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1855 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1856 [ out ] uint32 *lpdwGrantedAccess,
1857 [ out ] WERROR *Status,
1858 [ out ] WERROR *rpc_status
1859 );
1860#else
1861 void
1862 clusapi_OpenNetInterfaceEx(
1863 [ in, string ] [charset(UTF16)] uint16 *lpszNetInterfaceName,
1864 [ in ] clusapi_DesiredAccessMask dwDesiredAccess,
1865 [ out ] uint32 *lpdwGrantedAccess,
1866 [ out ] WERROR *Status,
1867 [ out ] WERROR *rpc_status,
1868 [ out ] HNETINTERFACE_RPC *hNetInterface
1869 );
1870#endif
1871 /*****************/
1872 /* Function 0x7B */
1873
1874 WERROR
1875 clusapi_ChangeCsvState(
1876 [ in ] HRES_RPC hResource,
1877 [ in ] uint32 dwState,
1878 [ out ] WERROR *rpc_status
1879 );
1880
1881 /*****************/
1882 /* Function 0x7C */
1883
1884 WERROR
1885 clusapi_CreateNodeEnumEx(
1886 [in] HNODE_RPC hNode,
1887 [in] uint32 dwType,
1888 [in] uint32 dwOptions,
1889 [out] ENUM_LIST **ReturnIdEnum,
1890 [out] ENUM_LIST **ReturnNameEnum,
1891 [out] WERROR* rpc_status
1892 );
1893
1894 /*****************/
1895 /* Function 0x7D */
1896
1897 WERROR
1898 clusapi_CreateEnumEx(
1899 [in] HCLUSTER_RPC hCluster,
1900 [in] ClusterEnumType dwType,
1901 [in] uint32 dwOptions,
1902 [out] ENUM_LIST **ReturnIdEnum,
1903 [out] ENUM_LIST **ReturnNameEnum,
1904 [out] WERROR* rpc_status
1905 );
1906
1907 /*****************/
1908 /* Function 0x7E */
1909
1910 WERROR
1911 clusapi_PauseNodeEx(
1912 [ in ] HNODE_RPC hNode,
1913 [ in ] boolean8 bDrainNode,
1914 [ in ] uint32 dwPauseFlags,
1915 [ out ] WERROR *rpc_status
1916 );
1917
1918 /*****************/
1919 /* Function 0x7F */
1920
1921 WERROR
1922 clusapi_PauseNodeWithDrainTarget(
1923 [ in ] HNODE_RPC hNode,
1924 [ in ] uint32 dwPauseFlags,
1925 [ in ] HNODE_RPC hNodeDrainTarget,
1926 [ out ] WERROR *rpc_status
1927 );
1928
1929 /*****************/
1930 /* Function 0x80 */
1931
1932 WERROR
1933 clusapi_ResumeNodeEx(
1934 [ in ] HNODE_RPC hNode,
1935 [ in ] uint32 dwResumeFailbackType,
1936 [ in ] uint32 dwResumeFlagsReserved,
1937 [ out ] WERROR *rpc_status
1938 );
1939
1940 /*****************/
1941 /* Function 0x81 */
1942#if 0
1943 HGROUP_RPC
1944 clusapi_CreateGroupEx(
1945 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1946 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC *pGroupInfo,
1947 [ out ] WERROR *Status,
1948 [ out ] WERROR *rpc_status
1949 );
1950#else
1951 void
1952 clusapi_CreateGroupEx(
1953 [ in, string ] [charset(UTF16)] uint16 *lpszGroupName,
1954 [ in, unique ] CLUSTER_CREATE_GROUP_INFO_RPC *pGroupInfo,
1955 [ out ] WERROR *Status,
1956 [ out ] WERROR *rpc_status,
1957 [ out ] HGROUP_RPC *hGroup
1958 );
1959#endif
1960 /*****************/
1961 /* Function 0x82 */
1962
1963 WERROR
1964 clusapi_OnlineGroupEx(
1965 [ in ] HGROUP_RPC hGroup,
1966 [ in ] uint32 dwOnlineFlags,
1967 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1968 [ in ] uint32 cbInBufferSize,
1969 [ out ] WERROR *rpc_status
1970 );
1971
1972 /*****************/
1973 /* Function 0x83 */
1974
1975 WERROR
1976 clusapi_OfflineGroupEx(
1977 [ in ] HGROUP_RPC hGroup,
1978 [ in ] uint32 dwOfflineFlags,
1979 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1980 [ in ] uint32 cbInBufferSize,
1981 [ out ] WERROR *rpc_status
1982 );
1983
1984 /*****************/
1985 /* Function 0x84 */
1986
1987 WERROR
1988 clusapi_MoveGroupEx(
1989 [ in ] HGROUP_RPC hGroup,
1990 [ in ] uint32 dwMoveFlags,
1991 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
1992 [ in ] uint32 cbInBufferSize,
1993 [ out ] WERROR *rpc_status
1994 );
1995
1996 /*****************/
1997 /* Function 0x85 */
1998
1999 WERROR
2000 clusapi_MoveGroupToNodeEx(
2001 [ in ] HGROUP_RPC hGroup,
2002 [ in ] HNODE_RPC hNode,
2003 [ in ] uint32 dwMoveFlags,
2004 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
2005 [ in ] uint32 cbInBufferSize,
2006 [ out ] WERROR *rpc_status
2007 );
2008
2009 /*****************/
2010 /* Function 0x86 */
2011
2012 WERROR
2013 clusapi_CancelClusterGroupOperation(
2014 [ in ] HGROUP_RPC hGroup,
2015 [ in ] uint32 dwCancelFlags,
2016 [ out ] WERROR *rpc_status
2017 );
2018
2019 /*****************/
2020 /* Function 0x87 */
2021
2022 WERROR
2023 clusapi_OnlineResourceEx(
2024 [ in ] HRES_RPC hResource,
2025 [ in ] uint32 dwOnlineFlags,
2026 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
2027 [ in ] uint32 cbInBufferSize,
2028 [ out ] WERROR *rpc_status
2029 );
2030
2031 /*****************/
2032 /* Function 0x88 */
2033
2034 WERROR
2035 clusapi_OfflineResourceEx(
2036 [ in ] HRES_RPC hResource,
2037 [ in ] uint32 dwOfflineFlags,
2038 [ in, size_is(cbInBufferSize) ] uint8* lpInBuffer,
2039 [ in ] uint32 cbInBufferSize,
2040 [ out ] WERROR *rpc_status
2041 );
2042
2043#define HGENERIC_RPC policy_handle
2044#if 0
2045 typedef [context_handle] void *HGENERIC_RPC;
2046#endif
2047
2048 typedef struct {
2049 uint32 dwObjectType; /* really of type CLUSTER_OBJECT_TYPE_RPC */
2050 hyper FilterFlags;
2051 } NOTIFY_FILTER_AND_TYPE_RPC;
2052
2053 typedef struct {
2054 NOTIFY_FILTER_AND_TYPE_RPC FilterAndType;
2055 [ size_is(dwBufferSize ) ] uint8* buffer;
2056 uint32 dwBufferSize;
2057 [string] [charset(UTF16)] uint16 *ObjectId;
2058 [string] [charset(UTF16)] uint16 *ParentId;
2059 [string] [charset(UTF16)] uint16 *Name;
2060 [string] [charset(UTF16)] uint16 *Type;
2061 } NOTIFICATION_DATA_RPC;
2062
2063 typedef struct {
2064 uint32 *dwNotifyKey;
2065 NOTIFICATION_DATA_RPC NotificationData;
2066 } NOTIFICATION_RPC;
2067
2068 /*****************/
2069 /* Function 0x89 */
2070
2071 /*
2072 * Notify interface V2 functions
2073 */
2074#if 0
2075 HNOTIFY_RPC
2076 clusapi_CreateNotifyV2(
2077 [ out ] WERROR *rpc_error,
2078 [ out ] WERROR *rpc_status
2079 );
2080#else
2081 void
2082 clusapi_CreateNotifyV2(
2083 [ out ] WERROR *rpc_error,
2084 [ out ] WERROR *rpc_status,
2085 [ out ] HNOTIFY_RPC *hNotify
2086 );
2087
2088#endif
2089 /*****************/
2090 /* Function 0x8A */
2091
2092 WERROR
2093 clusapi_AddNotifyV2(
2094 [ in ] HNOTIFY_RPC hNotify,
2095 [ in ] HGENERIC_RPC hObject,
2096 [ in ] NOTIFY_FILTER_AND_TYPE_RPC filter,
2097 [ in ] uint32 dwNotifyKey,
2098 [ in ] uint32 dwVersion,
2099 [ in ] boolean8 isTargetedAtObject,
2100 [ out ] WERROR *rpc_status
2101 );
2102
2103 /*****************/
2104 /* Function 0x8B */
2105
2106 WERROR
2107 clusapi_GetNotifyV2(
2108 [ in ] HNOTIFY_RPC hNotify,
2109 [ out, size_is(,*dwNumNotifications) ] NOTIFICATION_RPC **Notifications,
2110 [ out ] uint32 *dwNumNotifications
2111 );
2112
2113 /*****************/
2114 /* Function 0x8C */
2115
2116 WERROR
2117 clusapi_QueryAllValues(
2118 [ in ] HKEY_RPC hKey,
2119 [ out ] uint32 *pcbData,
2120 [ out, size_is(1, *pcbData) ] uint8 ** ppData,
2121 [ out ] WERROR *rpc_status
2122 );
2123
2124 typedef struct {
2125 uint32 DiskIdType;
2126 uint8 DiskIdBlob[16];
2127 } CLUSTER_DISKID;
2128
2129 /*****************/
2130 /* Function 0x8D */
2131
2132 WERROR
2133 clusapi_StmFindDisk(
2134 [ in ] HCLUSTER_RPC hCluster,
2135 [ in ] uint32 dwFlags,
2136 [ in, out, unique ] CLUSTER_DISKID *pDiskId,
2137 [ in, size_is(uniqueIdSize), unique ] uint8 *pUniqueId,
2138 [ in ] uint32 uniqueIdSize,
2139 [ out, ref, string ] [charset(UTF16)] uint16 **ppszDeviceName,
2140 [ out ] WERROR *rpc_status
2141 );
2142
2143 typedef struct{
2144 [string] [charset(UTF16)] uint16 *pszNodeName;
2145 HRESULT ResultCode;
2146 uint32 ResultSize;
2147 [unique, size_is(ResultSize)] uint8 *pResultData;
2148 } CLUSTER_MRR_NODE_RESPONSE;
2149
2150 typedef struct {
2151 uint32 NodeCount;
2152 [size_is(NodeCount)] CLUSTER_MRR_NODE_RESPONSE *pNodes;
2153 } CLUSTER_MRR_RESPONSE;
2154
2155 /*****************/
2156 /* Function 0x8E */
2157
2158 WERROR
2159 clusapi_ClusterMrr(
2160 [ in ] HCLUSTER_RPC hCluster,
2161 [ in ] boolean8 fExcludeSelf,
2162 [ in ] hyper nodeSet,
2163 [ in ] uint32 dwTimeout,
2164 [ in ] uint32 dwComponent,
2165 [ in ] uint32 dwControlCode,
2166 [ in ] uint32 inSize,
2167 [ in, unique, size_is(inSize) ] uint8 *pInData,
2168 [ out, ref, size_is(1, 1) ] CLUSTER_MRR_RESPONSE **ppInfo,
2169 [ out ] WERROR *rpc_status
2170 );
2171
2172 /*****************/
2173 /* Function 0x8F */
2174
2175 WERROR
2176 clusapi_CreateGroupEnum(
2177 [ in ] HCLUSTER_RPC hCluster,
2178 [ in, unique, size_is(cbProperties)] uint8* pProperties,
2179 [ in ] uint32 cbProperties,
2180 [ in, unique, size_is(cbRoProperties)] uint8* pRoProperties,
2181 [ in ] uint32 cbRoProperties,
2182 [ out ] GROUP_ENUM_LIST **ppResultList,
2183 [ out ] WERROR *rpc_status
2184 );
2185
2186 /*****************/
2187 /* Function 0x90 */
2188
2189 WERROR
2190 clusapi_CreateResourceEnum(
2191 [ in ] HCLUSTER_RPC hCluster,
2192 [ in, unique, size_is(cbProperties)] uint8* pProperties,
2193 [ in ] uint32 cbProperties,
2194 [ in, unique, size_is(cbRoProperties)] uint8* pRoProperties,
2195 [ in ] uint32 cbRoProperties,
2196 [ out ] RESOURCE_ENUM_LIST **ppResultList,
2197 [ out ] WERROR *rpc_status
2198 );
2199
2200 /*****************/
2201 /* Function 0x91 */
2202
2203 WERROR
2204 clusapi_ExecuteReadBatch(
2205 [ in ] HKEY_RPC hKey,
2206 [ in ] uint32 cbInData,
2207 [ in, size_is(cbInData)] uint8 *lpInData,
2208 [ out ] uint32 *cbOutData,
2209 [ out, size_is(,*cbOutData) ] uint8 ** lpOutData,
2210 [ out ] WERROR *rpc_status
2211 );
2212
2213 /*****************/
2214 /* Function 0x92 */
2215
2216 WERROR
2217 clusapi_RestartResource(
2218 [ in ] HRES_RPC hResource,
2219 [ in ] uint32 dwFlags,
2220 [ out ] WERROR *rpc_status
2221 );
2222
2223 typedef struct {
2224 uint32 dwNotifyKey;
2225 uint32 dwFilter;
2226 [string] [charset(UTF16)] uint16 *Name;
2227 } NOTIFICATION_DATA_ASYNC_RPC;
2228
2229 /*****************/
2230 /* Function 0x93 */
2231
2232 WERROR
2233 clusapi_GetNotifyAsync(
2234 [ in ] HNOTIFY_RPC hNotify,
2235 [ out, size_is(,*dwNumNotifications) ] NOTIFICATION_DATA_ASYNC_RPC **Notifications,
2236 [ out ] uint32 *dwNumNotifications
2237 );
2238
2239 typedef enum {
2240 DiskIdSignature = 0x00000001,
2241 DiskIdGuid = 0x00000002,
2242 DiskIdUnKnown = 0x00001388
2243 } CLUSDSK_DISKID_ENUM;
2244
2245#if 0
2246 typedef struct {
2247 CLUSDSK_DISKID_ENUM DiskIdType;
2248 [switch_is(DiskIdType)] union {
2249 [case(DiskIdSignature)] uint32 DiskSignature;
2250 [case(DiskIdGuid)] GUID DiskGuid;
2251 };
2252 } CLUSDSK_DISKID;
2253#endif
2254 typedef enum {
2255 CLUSPROP_TYPE_ENDMARK = 0x0000,
2256 CLUSPROP_TYPE_LIST_VALUE = 0x0001,
2257 CLUSPROP_TYPE_RESCLASS = 0x0002,
2258 CLUSPROP_TYPE_NAME = 0x0004,
2259 CLUSPROP_TYPE_SIGNATURE = 0x0005,
2260 CLUSPROP_TYPE_SCSIADDRESS = 0x0006,
2261 CLUSPROP_TYPE_DISK_NUMBER = 0x0007,
2262 CLUSPROP_TYPE_PARTITION_INFO = 0x0008,
2263 CLUSPROP_TYPE_DISK_SERIALNUMBER = 0x000a,
2264 CLUSPROP_TYPE_DISK_GUID = 0x000b,
2265 CLUSPROP_TYPE_DISK_SIZE = 0x000c,
2266 CLUSPROP_TYPE_PARTITION_INFO_EX = 0x000d
2267 } CLUSTER_PROPERTY_TYPE;
2268
2269 typedef enum {
2270 CLUSPROP_FORMAT_UNKNOWN = 0x0000,
2271 CLUSPROP_FORMAT_BINARY = 0x0001,
2272 CLUSPROP_FORMAT_DWORD = 0x0002,
2273 CLUSPROP_FORMAT_SZ = 0x0003,
2274 CLUSPROP_FORMAT_EXPAND_SZ = 0x0004,
2275 CLUSPROP_FORMAT_MULTI_SZ = 0x0005,
2276 CLUSPROP_FORMAT_ULARGE_INTEGER = 0x0006,
2277 CLUSPROP_FORMAT_LONG = 0x0007,
2278 CLUSPROP_FORMAT_EXPANDED_SZ = 0x0008,
2279 CLUSPROP_FORMAT_SECURITY_DESCRIPTOR = 0x0009,
2280 CLUSPROP_FORMAT_LARGE_INTEGER = 0x000a,
2281 CLUSPROP_FORMAT_WORD = 0x000b,
2282 CLUSPROP_FORMAT_FILETIME = 0x000c
2283 } CLUSTER_PROPERTY_FORMAT;
2284
2285 typedef enum {
2286 CLUS_CHAR_UNKNOWN = 0x00000000,
2287 CLUS_CHAR_QUORUM = 0x00000001,
2288 CLUS_CHAR_DELETE_REQUIRES_ALL_NODES = 0x00000002,
2289 CLUS_CHAR_LOCAL_QUORUM = 0x00000004,
2290 CLUS_CHAR_BROADCAST_DELETE = 0x00000020,
2291 CLUS_CHAR_SINGLE_CLUSTER_INSTANCE = 0x00000040,
2292 CLUS_CHAR_SINGLE_GROUP_INSTANCE = 0x00000080,
2293 CLUS_CHAR_COEXIST_IN_SHARED_VOLUME_GROUP = 0x00000100,
2294 CLUS_CHAR_RESERVED1 = 0x00000200,
2295 CLUS_CHAR_MONITOR_DETACH = 0x00000400,
2296 CLUS_CHAR_RESERVED2 = 0x00000800,
2297 CLUS_CHAR_RESERVED3 = 0x00001000,
2298 CLUS_CHAR_RESERVED4 = 0x00002000
2299 } CLUS_CHARACTERISTICS;
2300
2301 typedef enum {
2302 CLUS_FLAG_CORE = 0x00000001
2303 } CLUS_FLAGS;
2304
2305 typedef enum {
2306 MaintenanceModeTypeDisableIsAliveCheck = 1,
2307 MaintenanceModeTypeOfflineResource = 2,
2308 MaintenanceModeTypeUnclusterResource = 3
2309 } MAINTENANCE_MODE_TYPE;
2310
2311 typedef enum {
2312 CLUSTER_CHANGE_NODE_STATE = 0x00000001,
2313 CLUSTER_CHANGE_NODE_DELETED = 0x00000002,
2314 CLUSTER_CHANGE_NODE_ADDED = 0x00000004,
2315 CLUSTER_CHANGE_NODE_PROPERTY = 0x00000008,
2316 CLUSTER_CHANGE_REGISTRY_NAME = 0x00000010,
2317 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES = 0x00000020,
2318 CLUSTER_CHANGE_REGISTRY_VALUE = 0x00000040,
2319 CLUSTER_CHANGE_REGISTRY_SUBTREE = 0x00000080,
2320 CLUSTER_CHANGE_RESOURCE_STATE = 0x00000100,
2321 CLUSTER_CHANGE_RESOURCE_DELETED = 0x00000200,
2322 CLUSTER_CHANGE_RESOURCE_ADDED = 0x00000400,
2323 CLUSTER_CHANGE_RESOURCE_PROPERTY = 0x00000800,
2324 CLUSTER_CHANGE_GROUP_STATE = 0x00001000,
2325 CLUSTER_CHANGE_GROUP_DELETED = 0x00002000,
2326 CLUSTER_CHANGE_GROUP_ADDED = 0x00004000,
2327 CLUSTER_CHANGE_GROUP_PROPERTY = 0x00008000,
2328 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED = 0x00010000,
2329 CLUSTER_CHANGE_RESOURCE_TYPE_ADDED = 0x00020000,
2330 CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY = 0x00040000,
2331 CLUSTER_CHANGE_CLUSTER_RECONNECT = 0x00080000,
2332 CLUSTER_CHANGE_NETWORK_STATE = 0x00100000,
2333 CLUSTER_CHANGE_NETWORK_DELETED = 0x00200000,
2334 CLUSTER_CHANGE_NETWORK_ADDED = 0x00400000,
2335 CLUSTER_CHANGE_NETWORK_PROPERTY = 0x00800000,
2336 CLUSTER_CHANGE_NETINTERFACE_STATE = 0x01000000,
2337 CLUSTER_CHANGE_NETINTERFACE_DELETED = 0x02000000,
2338 CLUSTER_CHANGE_NETINTERFACE_ADDED = 0x04000000,
2339 CLUSTER_CHANGE_NETINTERFACE_PROPERTY = 0x08000000,
2340 CLUSTER_CHANGE_QUORUM_STATE = 0x10000000,
2341 CLUSTER_CHANGE_CLUSTER_STATE = 0x20000000,
2342 CLUSTER_CHANGE_CLUSTER_PROPERTY = 0x40000000,
2343 CLUSTER_CHANGE_HANDLE_CLOSE = 0x80000000
2344 } CLUSTER_CHANGE;
2345
2346 typedef enum {
2347 CLUSREG_SET_VALUE = 1,
2348 CLUSREG_CREATE_KEY = 2,
2349 CLUSREG_DELETE_KEY = 3,
2350 CLUSREG_DELETE_VALUE = 4,
2351 CLUSREG_VALUE_DELETED = 6,
2352 CLUSREG_READ_KEY = 7,
2353 CLUSREG_READ_VALUE = 8,
2354 CLUSREG_READ_ERROR = 9
2355 } CLUSTER_REG_BATCH_COMMAND;
2356#if 0
2357 typedef enum {
2358 IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES = 1
2359 } IDL_CLUSTER_SET_PASSWORD_FLAGS;
2360#endif
2361 typedef enum {
2362 CLUSTER_QUORUM_MAINTAINED = 0,
2363 CLUSTER_QUORUM_LOST = 1
2364 } CLUSTER_QUORUM_VALUE;
2365
2366 typedef enum {
2367 CLUSTER_OBJECT_TYPE_CLUSTER = 0x00000001,
2368 CLUSTER_OBJECT_TYPE_GROUP = 0x00000002,
2369 CLUSTER_OBJECT_TYPE_RESOURCE = 0x00000003,
2370 CLUSTER_OBJECT_TYPE_RESOURCE_TYPE = 0x00000004,
2371 CLUSTER_OBJECT_TYPE_NETWORK_INTERFACE = 0x00000005,
2372 CLUSTER_OBJECT_TYPE_NETWORK = 0x00000006,
2373 CLUSTER_OBJECT_TYPE_NODE = 0x00000007,
2374 CLUSTER_OBJECT_TYPE_REGISTRY = 0x00000008,
2375 CLUSTER_OBJECT_TYPE_QUORUM = 0x00000009,
2376 CLUSTER_OBJECT_TYPE_SHARED_VOLUME = 0x0000000a
2377 } CLUSTER_OBJECT_TYPE;
2378
2379 typedef enum {
2380 CLUSTER_CHANGE_CLUSTER_RECONNECT_V2 = 0x00000001,
2381 CLUSTER_CHANGE_CLUSTER_STATE_V2 = 0x00000002,
2382 CLUSTER_CHANGE_CLUSTER_GROUP_ADDED_V2 = 0x00000004,
2383 CLUSTER_CHANGE_CLUSTER_HANDLE_CLOSE_V2 = 0x00000008,
2384 CLUSTER_CHANGE_CLUSTER_NETWORK_ADDED_V2 = 0x00000010,
2385 CLUSTER_CHANGE_CLUSTER_NODE_ADDED_V2 = 0x00000020,
2386 CLUSTER_CHANGE_CLUSTER_RESOURCE_TYPE_ADDED_V2 = 0x00000040,
2387 CLUSTER_CHANGE_CLUSTER_COMMON_PROPERTY_V2 = 0x00000080,
2388 CLUSTER_CHANGE_CLUSTER_PRIVATE_PROPERTY_V2 = 0x00000100,
2389 CLUSTER_CHANGE_CLUSTER_LOST_NOTIFICATIONS_V2 = 0x00000200,
2390 CLUSTER_CHANGE_CLUSTER_RENAME_V2 = 0x00000400
2391 } CLUSTER_CHANGE_CLUSTER_V2;
2392
2393 typedef enum {
2394 CLUSTER_CHANGE_GROUP_DELETED_V2 = 0x00000001,
2395 CLUSTER_CHANGE_GROUP_COMMON_PROPERTY_V2 = 0x00000002,
2396 CLUSTER_CHANGE_GROUP_PRIVATE_PROPERTY_V2 = 0x00000004,
2397 CLUSTER_CHANGE_GROUP_STATE_V2 = 0x00000008,
2398 CLUSTER_CHANGE_GROUP_OWNER_NODE_V2 = 0x00000010,
2399 CLUSTER_CHANGE_GROUP_PREFERRED_OWNERS_V2 = 0x00000020,
2400 CLUSTER_CHANGE_GROUP_RESOURCE_ADDED_V2 = 0x00000040,
2401 CLUSTER_CHANGE_GROUP_RESOURCE_GAINED_V2 = 0x00000080,
2402 CLUSTER_CHANGE_GROUP_RESOURCE_LOST_V2 = 0x00000100,
2403 CLUSTER_CHANGE_GROUP_HANDLE_CLOSE_V2 = 0x00000200
2404 } CLUSTER_CHANGE_GROUP_V2;
2405
2406 typedef enum {
2407 CLUSTER_CHANGE_RESOURCE_COMMON_PROPERTY_V2 = 0x00000001,
2408 CLUSTER_CHANGE_RESOURCE_PRIVATE_PROPERTY_V2 = 0x00000002,
2409 CLUSTER_CHANGE_RESOURCE_STATE_V2 = 0x00000004,
2410 CLUSTER_CHANGE_RESOURCE_OWNER_GROUP_V2 = 0x00000008,
2411 CLUSTER_CHANGE_RESOURCE_DEPENDENCIES_V2 = 0x00000010,
2412 CLUSTER_CHANGE_RESOURCE_DEPENDENTS_V2 = 0x00000020,
2413 CLUSTER_CHANGE_RESOURCE_POSSIBLE_OWNERS_V2 = 0x00000040,
2414 CLUSTER_CHANGE_RESOURCE_DELETED_V2 = 0x00000080,
2415 CLUSTER_CHANGE_RESOURCE_DLL_UPGRADED_V2 = 0x00000100,
2416 CLUSTER_CHANGE_RESOURCE_HANDLE_CLOSE_V2 = 0x00000200
2417 } CLUSTER_CHANGE_RESOURCE_V2;
2418
2419 typedef enum {
2420 CLUSTER_CHANGE_RESOURCE_TYPE_DELETED_V2 = 0x00000001,
2421 CLUSTER_CHANGE_RESOURCE_TYPE_COMMON_PROPERTY_V2 = 0x00000002,
2422 CLUSTER_CHANGE_RESOURCE_TYPE_PRIVATE_PROPERTY_V2 = 0x00000004,
2423 CLUSTER_CHANGE_RESOURCE_TYPE_POSSIBLE_OWNERS_V2 = 0x00000008,
2424 CLUSTER_CHANGE_RESOURCE_TYPE_DLL_UPGRADED_V2 = 0x00000010
2425 } CHANGE_RESOURCE_TYPE_V2;
2426
2427 typedef enum {
2428 CLUSTER_CHANGE_NETINTERFACE_DELETED_V2 = 0x00000001,
2429 CLUSTER_CHANGE_NETINTERFACE_COMMON_PROPERTY_V2 = 0x00000002,
2430 CLUSTER_CHANGE_NETINTERFACE_PRIVATE_PROPERTY_V2 = 0x00000004,
2431 CLUSTER_CHANGE_NETINTERFACE_STATE_V2 = 0x00000008,
2432 CLUSTER_CHANGE_NETINTERFACE_HANDLE_CLOSE_V2 = 0x00000010
2433 } CLUSTER_CHANGE_NETINTERFACE_V2;
2434
2435 typedef enum {
2436 CLUSTER_CHANGE_NETWORK_DELETED_V2 = 0x00000001,
2437 CLUSTER_CHANGE_NETWORK_COMMON_PROPERTY_V2 = 0x00000002,
2438 CLUSTER_CHANGE_NETWORK_PRIVATE_PROPERTY_V2 = 0x00000004,
2439 CLUSTER_CHANGE_NETWORK_STATE_V2 = 0x00000008,
2440 CLUSTER_CHANGE_NETWORK_HANDLE_CLOSE_V2 = 0x00000010
2441 } CLUSTER_CHANGE_NETWORK_V2;
2442
2443 typedef enum {
2444 CLUSTER_CHANGE_NODE_NETINTERFACE_ADDED_V2 = 0x00000001,
2445 CLUSTER_CHANGE_NODE_DELETED_V2 = 0x00000002,
2446 CLUSTER_CHANGE_NODE_COMMON_PROPERTY_V2 = 0x00000004,
2447 CLUSTER_CHANGE_NODE_PRIVATE_PROPERTY_V2 = 0x00000008,
2448 CLUSTER_CHANGE_NODE_STATE_V2 = 0x00000010,
2449 CLUSTER_CHANGE_NODE_GROUP_GAINED_V2 = 0x00000020,
2450 CLUSTER_CHANGE_NODE_GROUP_LOST_V2 = 0x00000040,
2451 CLUSTER_CHANGE_NODE_HANDLE_CLOSE_V2 = 0x00000080
2452 } CLUSTER_CHANGE_NODE_V2;
2453
2454 typedef enum {
2455 CLUSTER_CHANGE_REGISTRY_ATTRIBUTES_V2 = 0x00000001,
2456 CLUSTER_CHANGE_REGISTRY_NAME_V2 = 0x00000002,
2457 CLUSTER_CHANGE_REGISTRY_SUBTREE_V2 = 0x00000004,
2458 CLUSTER_CHANGE_REGISTRY_VALUE_V2 = 0x00000008,
2459 CLUSTER_CHANGE_REGISTRY_HANDLE_CLOSE_V2 = 0x00000010
2460 } CLUSTER_CHANGE_REGISTRY_V2;
2461
2462 typedef enum {
2463 CLUSTER_CHANGE_QUORUM_STATE_V2 = 0x00000001
2464 } CLUSTER_CHANGE_QUORUM_V2;
2465
2466 typedef enum {
2467 CLUSTER_CHANGE_SHARED_VOLUME_STATE_V2 = 0x00000001
2468 } CLUSTER_CHANGE_SHARED_VOLUME_V2;
2469#if 0
2470 typedef enum {
2471 DiskIdSignature = 0x00000001,
2472 DiskIdGuid = 0x00000002,
2473 DiskIdUnKnown = 0x00001388
2474 } CLUSDSK_DISKID_ENUM;
2475#endif
2476}
Note: See TracBrowser for help on using the repository browser.