Fix warnings on FreeBSD-based platforms
[ira/wip.git] / source3 / librpc / idl / winreg.idl
index a69079bf8e57301a2c3879e0241a02840f2bc87b..2f02419af50e5ed5c105f1ce093420d65d1a417c 100644 (file)
@@ -9,13 +9,20 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
   version(1.0),
   endpoint("ncacn_np:[\\pipe\\winreg]","ncacn_ip_tcp:","ncalrpc:"),
   pointer_default(unique),
-  pointer_default_top(unique),
   helpstring("Remote Registry Service")
 ] interface winreg
 {
-       declare bitmap security_secinfo;
+       typedef bitmap security_secinfo security_secinfo;
 
        typedef [bitmap32bit] bitmap {
+               KEY_QUERY_VALUE                 = 0x00001,
+               KEY_SET_VALUE                   = 0x00002,
+               KEY_CREATE_SUB_KEY              = 0x00004,
+               KEY_ENUMERATE_SUB_KEYS  = 0x00008,
+               KEY_NOTIFY                              = 0x00010,
+               KEY_CREATE_LINK                 = 0x00020,
+               KEY_WOW64_64KEY                 = 0x00100,
+               KEY_WOW64_32KEY                 = 0x00200
        } winreg_AccessMask;
 
        typedef [v1_enum] enum {
@@ -42,7 +49,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x00 */
        WERROR winreg_OpenHKCR(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -50,7 +57,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x01 */
        WERROR winreg_OpenHKCU(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -58,7 +65,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x02 */
        WERROR winreg_OpenHKLM(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -66,7 +73,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x03 */
        WERROR winreg_OpenHKPD(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -74,7 +81,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x04 */
        WERROR winreg_OpenHKU(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -140,7 +147,6 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
                [size_is(size/2),length_is(length/2),charset(UTF16)] uint16 *name;
        } winreg_StringBuf;
 
-
        /******************/
        /* Function: 0x09 */
        WERROR winreg_EnumKey(
@@ -151,17 +157,26 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
                [in,out,unique] NTTIME           *last_changed_time
        );
 
+       typedef struct {
+               [value(strlen_m_term(name)*2)] uint16 length; 
+               /* size cannot be auto-set by value() as it is the
+                  amount of space the server is allowed to use for this
+                  string in the reply, not its current size */
+               uint16 size;
+               [size_is(size/2),length_is(length/2),charset(UTF16)] uint16 *name;
+       } winreg_ValNameBuf;
+
        /******************/
        /* Function: 0x0a */
 
        WERROR winreg_EnumValue(
                [in,ref]        policy_handle *handle,
                [in]            uint32 enum_index,
-               [in,out,ref]    winreg_StringBuf *name,
+               [in,out,ref]    winreg_ValNameBuf *name,
                [in,out,unique] winreg_Type *type,
-               [in,out,unique,size_is(*data_size),length_is(*value_length)] uint8 *data,
-               [in,out,unique] uint32 *data_size,
-               [in,out,unique] uint32 *value_length
+               [in,out,unique,size_is(*size),length_is(*length)] uint8 *value,
+               [in,out,unique] uint32 *size,
+               [in,out,unique] uint32 *length
        );
 
        /******************/
@@ -182,8 +197,8 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /* Function: 0x0d */
        WERROR winreg_LoadKey(
                [in,ref] policy_handle *handle,
-               [in] winreg_String *keyname,
-               [in] winreg_String *filename
+               [in,unique] winreg_String *keyname,
+               [in,unique] winreg_String *filename
        );
 
        /******************/
@@ -227,11 +242,11 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /* Function: 0x11 */
        WERROR winreg_QueryValue(
                [in,ref] policy_handle *handle,
-               [in] winreg_String value_name,
-               [in,out] winreg_Type *type,
-               [in,out,size_is(*data_size),length_is(*value_length)] uint8 *data,
-               [in,out] uint32 *data_size,
-               [in,out] uint32 *value_length
+               [in,ref] winreg_String *value_name,
+               [in,out,unique] winreg_Type *type,
+               [in,out,unique,size_is(*data_size),length_is(*value_length)] uint8 *data,
+               [in,out,unique] uint32 *data_size,
+               [in,out,unique] uint32 *value_length
        );
 
        /******************/
@@ -267,7 +282,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        WERROR winreg_SetKeySecurity(
                [in,ref] policy_handle *handle,
                [in] winreg_AccessMask access_mask,
-               [in,out,ref] KeySecurityData *sd
+               [in,ref] KeySecurityData *sd
        );
 
        /******************/
@@ -288,17 +303,17 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x18 */
        WERROR winreg_InitiateSystemShutdown(
-               [in]    uint16 *hostname,
-               [in]    initshutdown_String *message,
+               [in,unique] uint16 *hostname,
+               [in,unique] initshutdown_String *message,
                [in]    uint32 timeout,
                [in]    uint8 force_apps,
-               [in]    uint8 reboot
+               [in]    uint8 do_reboot
        );
 
        /******************/
        /* Function: 0x19 */
        WERROR winreg_AbortSystemShutdown(
-               [in]    uint16 *server
+               [in,unique] uint16 *server
        );
 
        /******************/
@@ -311,7 +326,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x1b */
        WERROR winreg_OpenHKCC(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -319,7 +334,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x1c */
        WERROR winreg_OpenHKDD(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -337,18 +352,18 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
                [in,ref] policy_handle *key_handle, 
                [in,out,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values,
                [in] uint32 num_values,
-               [in,out,size_is(*buffer_size),length_is(*buffer_size)] uint8 *buffer,
+               [in,out,unique,size_is(*buffer_size),length_is(*buffer_size)] uint8 *buffer,
                [in,out,ref] uint32 *buffer_size
        );
 
        /******************/
        /* Function: 0x1e */
        WERROR winreg_InitiateSystemShutdownEx(
-               [in] uint16 *hostname,
-               [in] initshutdown_String *message,
+               [in,unique] uint16 *hostname,
+               [in,unique] initshutdown_String *message,
                [in] uint32 timeout,
                [in] uint8 force_apps,
-               [in] uint8 reboot,
+               [in] uint8 do_reboot,
                [in] uint32 reason
        );
 
@@ -360,7 +375,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x20 */
        WERROR winreg_OpenHKPT(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );
@@ -368,7 +383,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl";
        /******************/
        /* Function: 0x21 */
        WERROR winreg_OpenHKPN(
-               [in]      uint16 *system_name,
+               [in,unique] uint16 *system_name,
                [in]      winreg_AccessMask access_mask,
                [out,ref] policy_handle *handle
        );