diff options
Diffstat (limited to 'source3/include/rpc_reg.h')
-rw-r--r-- | source3/include/rpc_reg.h | 174 |
1 files changed, 121 insertions, 53 deletions
diff --git a/source3/include/rpc_reg.h b/source3/include/rpc_reg.h index 103a7492cd..f65d8d7cc3 100644 --- a/source3/include/rpc_reg.h +++ b/source3/include/rpc_reg.h @@ -26,47 +26,81 @@ /* winreg pipe defines */ -#define REG_OPEN_HKLM 0x02 -#define REG_OPEN_HKU 0x04 -#define REG_FLUSH_KEY 0x0B -#define REG_UNK_1A 0x1a -#define REG_QUERY_KEY 0x10 -#define REG_ENUM_KEY 0x09 -#define REG_CREATE_KEY 0x06 -#define REG_DELETE_KEY 0x07 -#define REG_DELETE_VALUE 0x08 -#define REG_CREATE_VALUE 0x16 -#define REG_GET_KEY_SEC 0x0c -#define REG_SET_KEY_SEC 0x15 -#define REG_ENUM_VALUE 0x0a -#define REG_OPEN_ENTRY 0x0f -#define REG_INFO 0x11 -#define REG_CLOSE 0x05 - -#define HKEY_LOCAL_MACHINE 0x80000000 -#define HKEY_USERS 0x80000003 - -/* REG_Q_OPEN_HKLM */ -typedef struct q_reg_open_policy_info +#define REG_OPEN_HKCR 0x00 +#define _REG_UNK_01 0x01 +#define REG_OPEN_HKLM 0x02 +#define _REG_UNK_03 0x03 +#define REG_OPEN_HKU 0x04 +#define REG_CLOSE 0x05 +#define REG_CREATE_KEY 0x06 +#define REG_DELETE_KEY 0x07 +#define REG_DELETE_VALUE 0x08 +#define REG_ENUM_KEY 0x09 +#define REG_ENUM_VALUE 0x0a +#define REG_FLUSH_KEY 0x0b +#define REG_GET_KEY_SEC 0x0c +#define _REG_UNK_0D 0x0d +#define _REG_UNK_0E 0x0e +#define REG_OPEN_ENTRY 0x0f +#define REG_QUERY_KEY 0x10 +#define REG_INFO 0x11 +#define _REG_UNK_12 0x12 +#define _REG_UNK_13 0x13 +#define _REG_UNK_14 0x14 +#define REG_SET_KEY_SEC 0x15 +#define REG_CREATE_VALUE 0x16 +#define _REG_UNK_17 0x17 +#define REG_SHUTDOWN 0x18 +#define REG_ABORT_SHUTDOWN 0x19 +#define REG_UNK_1A 0x1a + +#define HKEY_CLASSES_ROOT 0x80000000 +#define HKEY_CURRENT_USER 0x80000001 +#define HKEY_LOCAL_MACHINE 0x80000002 +#define HKEY_USERS 0x80000003 + +/* REG_Q_OPEN_HKCR */ +typedef struct q_reg_open_hkcr_info { uint32 ptr; - uint16 unknown_0; /* 0xE084 - 16 bit unknown */ + uint16 unknown_0; /* 0x5428 - 16 bit unknown */ uint16 unknown_1; /* random. changes */ uint32 level; /* 0x0000 0002 - 32 bit unknown */ -} REG_Q_OPEN_HKLM ; +} REG_Q_OPEN_HKCR ; -/* REG_R_OPEN_HKLM */ -typedef struct r_reg_open_policy_info +/* REG_R_OPEN_HKCR */ +typedef struct r_reg_open_hkcr_info { POLICY_HND pol; /* policy handle */ uint32 status; /* return status */ -} REG_R_OPEN_HKLM; +} REG_R_OPEN_HKCR; + + +/* REG_Q_OPEN_HKLM */ +typedef struct q_reg_open_hklm_info +{ + uint32 ptr; + uint16 unknown_0; /* 0xE084 - 16 bit unknown */ + uint16 unknown_1; /* random. changes */ + uint32 access_mask; /* 0x0000 0002 - 32 bit unknown */ + +} +REG_Q_OPEN_HKLM; + +/* REG_R_OPEN_HKLM */ +typedef struct r_reg_open_hklm_info +{ + POLICY_HND pol; /* policy handle */ + uint32 status; /* return status */ + +} +REG_R_OPEN_HKLM; /* REG_Q_OPEN_HKU */ -typedef struct q_reg_open_unk4_info +typedef struct q_reg_open_hku_info { uint32 ptr; uint16 unknown_0; /* 0xE084 - 16 bit unknown */ @@ -76,7 +110,7 @@ typedef struct q_reg_open_unk4_info } REG_Q_OPEN_HKU; /* REG_R_OPEN_HKU */ -typedef struct r_reg_open_unk4_info +typedef struct r_reg_open_hku_info { POLICY_HND pol; /* policy handle */ uint32 status; /* return status */ @@ -396,43 +430,43 @@ typedef struct r_reg_enum_key_info /* REG_Q_INFO */ typedef struct q_reg_info_info { - POLICY_HND pol; /* policy handle */ + POLICY_HND pol; /* policy handle */ - UNIHDR hdr_type; /* unicode product type header */ - UNISTR2 uni_type; /* unicode product type - "ProductType" */ + UNIHDR hdr_type; /* unicode product type header */ + UNISTR2 uni_type; /* unicode product type - "ProductType" */ - uint32 ptr_reserved; + uint32 ptr_reserved; /* pointer */ - uint32 ptr_buf; /* the next three fields follow if ptr_buf != 0 */ - uint32 ptr_bufsize; - uint32 bufsize; - uint32 buf_unk; - - uint32 unk1; - uint32 ptr_buflen; - uint32 buflen; + uint32 ptr_buf; /* the next three fields follow if ptr_buf != 0 */ + uint32 ptr_bufsize; + uint32 bufsize; + uint32 buf_unk; + + uint32 unk1; + uint32 ptr_buflen; + uint32 buflen; - uint32 ptr_buflen2; - uint32 buflen2; + uint32 ptr_buflen2; + uint32 buflen2; } REG_Q_INFO; /* REG_R_INFO */ typedef struct r_reg_info_info { - uint32 ptr_type; /* keyvalue pointer */ - uint32 type; /* keyvalue datatype */ - - uint32 ptr_uni_val; /* pointer to o/s type */ - BUFFER2 *uni_val; /* unicode string o/s type - "LanmanNT" */ + uint32 ptr_type; /* key type pointer */ + uint32 type; /* key datatype */ - uint32 ptr_max_len; /* pointer to unknown_0 */ - uint32 buf_max_len; /* 0x12 */ + uint32 ptr_uni_val; /* key value pointer */ + BUFFER2 *uni_val; /* key value */ - uint32 ptr_len; /* pointer to unknown_1 */ - uint32 buf_len; /* 0x12 */ + uint32 ptr_max_len; + uint32 buf_max_len; - uint32 status; /* return status */ + uint32 ptr_len; + uint32 buf_len; + + uint32 status; /* return status */ } REG_R_INFO; @@ -460,6 +494,40 @@ typedef struct r_reg_open_entry_info } REG_R_OPEN_ENTRY; +/* REG_Q_SHUTDOWN */ +typedef struct q_reg_shutdown_info +{ + uint32 ptr_0; + uint32 ptr_1; + uint32 ptr_2; + UNIHDR hdr_msg; /* shutdown message */ + UNISTR2 uni_msg; /* seconds */ + uint32 timeout; /* seconds */ + uint16 flags; + +} REG_Q_SHUTDOWN; + +/* REG_R_SHUTDOWN */ +typedef struct r_reg_shutdown_info +{ + uint32 status; /* return status */ + +} REG_R_SHUTDOWN; + +/* REG_Q_ABORT_SHUTDOWN */ +typedef struct q_reg_abort_shutdown_info +{ + uint32 ptr_server; + uint16 server; + +} REG_Q_ABORT_SHUTDOWN; + +/* REG_R_ABORT_SHUTDOWN */ +typedef struct r_reg_abort_shutdown_info +{ + uint32 status; /* return status */ + +} REG_R_ABORT_SHUTDOWN; #endif /* _RPC_REG_H */ |