clusapi: add PROPERTY_LIST IDL.
authorGünther Deschner <gd@samba.org>
Fri, 10 Jul 2015 13:49:33 +0000 (15:49 +0200)
committerJosé A. Rivera <jarrpa@samba.org>
Tue, 4 Aug 2015 17:11:17 +0000 (19:11 +0200)
Note this is hand-marshalled in Windows, seen in ClusterControl reqplies for a
CLUSCTL_CLUSTER_GET_RO_COMMON_PROPERTIES control.

Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: José A. Rivera <jarrpa@samba.org>
librpc/idl/clusapi.idl

index 5cb76109c8105a8007c22554d2dfcbfe573280bd..e6ddd42202b30aaa1692f5ae0447f7bb635b2524 100644 (file)
@@ -1530,6 +1530,54 @@ import "security.idl", "winreg.idl";
                CLUSCTL_CLUSTER_IS_READY_FOR_UPGRADE            = 0x070000d5
        } clusapi_ClusterControlCode;
 
+       typedef [v1_enum] enum {
+               CLUSPROP_SYNTAX_ENDMARK = 0x00000000,
+               CLUSPROP_SYNTAX_NAME = 0x00040003,
+               CLUSPROP_SYNTAX_RESCLASS = 0x00020002,
+               CLUSPROP_SYNTAX_LIST_VALUE_SZ = 0x00010003,
+               CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = 0x00010004,
+               CLUSPROP_SYNTAX_LIST_VALUE_DWORD = 0x00010002,
+               CLUSPROP_SYNTAX_LIST_VALUE_BINARY = 0x00010001,
+               CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = 0x00010005,
+               CLUSPROP_SYNTAX_LIST_VALUE_LONG = 0x00010007,
+               CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = 0x00010008,
+               CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = 0x00010009,
+               CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = 0x0001000a,
+               CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER = 0x00010006,
+               CLUSPROP_SYNTAX_LIST_VALUE_WORD = 0x0001000b,
+               CLUSPROP_SYNTAX_LIST_VALUE_FILETIME = 0x0001000c,
+               CLUSPROP_SYNTAX_DISK_SIGNATURE = 0x00050002,
+               CLUSPROP_SYNTAX_SCSI_ADDRESS = 0x00060002,
+               CLUSPROP_SYNTAX_DISK_NUMBER = 0x00070002,
+               CLUSPROP_SYNTAX_PARTITION_INFO = 0x00080001,
+               CLUSPROP_SYNTAX_DISK_SERIALNUMBER = 0x000a0003,
+               CLUSPROP_SYNTAX_DISK_GUID = 0x000b0003,
+               CLUSPROP_SYNTAX_DISK_SIZE = 0x000c0006,
+               CLUSPROP_SYNTAX_PARTITION_INFO_EX = 0x000d0001
+       } CLUSTER_PROPERTY_SYNTAX;
+
+       typedef struct {
+               CLUSTER_PROPERTY_SYNTAX Syntax;
+               uint32 Size;
+               [subcontext(0),subcontext_size(Size)] [flag(NDR_REMAINING)] DATA_BLOB Buffer;
+               [flag(NDR_ALIGN4)] DATA_BLOB Padding;
+       } clusapi_propertyValues;
+
+       typedef struct {
+               [value(CLUSPROP_SYNTAX_NAME)] CLUSTER_PROPERTY_SYNTAX syntax_name;
+               [value(strlen_m_term(buffer)*2)] uint32 size;
+               nstring buffer;
+               [flag(NDR_ALIGN2)] DATA_BLOB padding;
+               clusapi_propertyValues PropertyValues;
+               [value(CLUSPROP_SYNTAX_ENDMARK)] CLUSTER_PROPERTY_SYNTAX end_mark;
+       } clusapi_propertyValue;
+
+       typedef struct {
+               uint32 propertyCount;
+               clusapi_propertyValue propertyValues[propertyCount];
+               [value(CLUSPROP_SYNTAX_ENDMARK)] CLUSTER_PROPERTY_SYNTAX end_mark;
+       } clusapi_PROPERTY_LIST;
+
        WERROR
        clusapi_ClusterControl(
                [ in ] HCLUSTER_RPC hCluster,
@@ -2196,32 +2244,6 @@ import "security.idl", "winreg.idl";
                CLUSPROP_FORMAT_FILETIME = 0x000c
        } CLUSTER_PROPERTY_FORMAT;
 
-       typedef enum {
-               CLUSPROP_SYNTAX_ENDMARK = 0x00000000,
-               CLUSPROP_SYNTAX_NAME = 0x00040003,
-               CLUSPROP_SYNTAX_RESCLASS = 0x00020002,
-               CLUSPROP_SYNTAX_LIST_VALUE_SZ = 0x00010003,
-               CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = 0x00010004,
-               CLUSPROP_SYNTAX_LIST_VALUE_DWORD = 0x00010002,
-               CLUSPROP_SYNTAX_LIST_VALUE_BINARY = 0x00010001,
-               CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = 0x00010005,
-               CLUSPROP_SYNTAX_LIST_VALUE_LONG = 0x00010007,
-               CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = 0x00010008,
-               CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = 0x00010009,
-               CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = 0x0001000a,
-               CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER = 0x00010006,
-               CLUSPROP_SYNTAX_LIST_VALUE_WORD = 0x0001000b,
-               CLUSPROP_SYNTAX_LIST_VALUE_FILETIME = 0x0001000c,
-               CLUSPROP_SYNTAX_DISK_SIGNATURE = 0x00050002,
-               CLUSPROP_SYNTAX_SCSI_ADDRESS = 0x00060002,
-               CLUSPROP_SYNTAX_DISK_NUMBER = 0x00070002,
-               CLUSPROP_SYNTAX_PARTITION_INFO = 0x00080001,
-               CLUSPROP_SYNTAX_DISK_SERIALNUMBER = 0x000a0003,
-               CLUSPROP_SYNTAX_DISK_GUID = 0x000b0003,
-               CLUSPROP_SYNTAX_DISK_SIZE = 0x000c0006,
-               CLUSPROP_SYNTAX_PARTITION_INFO_EX = 0x000d0001
-       } CLUSTER_PROPERTY_SYNTAX;
-
        typedef enum {
                CLUS_CHAR_UNKNOWN = 0x00000000,
                CLUS_CHAR_QUORUM = 0x00000001,