diff options
-rw-r--r-- | epan/dissectors/packet-dcerpc-winreg.c | 101 | ||||
-rw-r--r-- | epan/dissectors/packet-dcerpc-winreg.h | 4 | ||||
-rw-r--r-- | epan/dissectors/pidl/winreg.idl | 25 |
3 files changed, 92 insertions, 38 deletions
diff --git a/epan/dissectors/packet-dcerpc-winreg.c b/epan/dissectors/packet-dcerpc-winreg.c index 6d0f29ca59..fedf233a21 100644 --- a/epan/dissectors/packet-dcerpc-winreg.c +++ b/epan/dissectors/packet-dcerpc-winreg.c @@ -53,6 +53,7 @@ static gint hf_winreg_winreg_CreateKey_secdesc = -1; static gint hf_winreg_winreg_QueryMultipleValues_buffer = -1; static gint hf_winreg_winreg_GetVersion_version = -1; static gint hf_winreg_winreg_SetKeySecurity_access_mask = -1; +static gint hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY = -1; static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown = -1; static gint hf_winreg_winreg_LoadKey_filename = -1; static gint hf_winreg_winreg_EnumValue_enum_index = -1; @@ -63,6 +64,7 @@ static gint hf_winreg_winreg_CreateKey_keyclass = -1; static gint hf_winreg_system_name = -1; static gint hf_winreg_KeySecurityData_size = -1; static gint hf_winreg_winreg_EnumValue_value = -1; +static gint hf_winreg_winreg_AccessMask_KEY_SET_VALUE = -1; static gint hf_winreg_winreg_InitiateSystemShutdownEx_message = -1; static gint hf_winreg_winreg_QueryInfoKey_secdescsize = -1; static gint hf_winreg_sd_max_size = -1; @@ -74,6 +76,8 @@ static gint hf_winreg_winreg_QueryInfoKey_num_values = -1; static gint hf_winreg_winreg_InitiateSystemShutdown_reboot = -1; static gint hf_winreg_winreg_CreateKey_new_handle = -1; static gint hf_winreg_winreg_QueryValue_type = -1; +static gint hf_winreg_winreg_AccessMask_KEY_CREATE_LINK = -1; +static gint hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY = -1; static gint hf_winreg_KeySecurityData_data = -1; static gint hf_winreg_QueryMultipleValue_length = -1; static gint hf_winreg_winreg_LoadKey_keyname = -1; @@ -92,15 +96,16 @@ static gint hf_winreg_winreg_QueryValue_length = -1; static gint hf_winreg_QueryMultipleValue_offset = -1; static gint hf_winreg_winreg_SecBuf_sd = -1; static gint hf_winreg_werror = -1; +static gint hf_winreg_winreg_QueryInfoKey_num_subkeys = -1; static gint hf_winreg_winreg_String_name_len = -1; static gint hf_winreg_opnum = -1; static gint hf_winreg_QueryMultipleValue_type = -1; -static gint hf_winreg_winreg_QueryInfoKey_num_subkeys = -1; static gint hf_winreg_winreg_QueryInfoKey_class_in = -1; static gint hf_winreg_winreg_InitiateSystemShutdownEx_timeout = -1; static gint hf_winreg_handle = -1; static gint hf_winreg_winreg_GetKeySecurity_sec_info = -1; static gint hf_winreg_winreg_DeleteKey_key = -1; +static gint hf_winreg_winreg_AccessMask_KEY_NOTIFY = -1; static gint hf_winreg_winreg_EnumKey_last_changed_time = -1; static gint hf_winreg_winreg_QueryInfoKey_max_subkeylen = -1; static gint hf_winreg_sd_actual_size = -1; @@ -108,7 +113,6 @@ static gint hf_winreg_winreg_AbortSystemShutdown_server = -1; static gint hf_winreg_sd_offset = -1; static gint hf_winreg_sd = -1; static gint hf_winreg_winreg_EnumKey_enum_index = -1; -static gint hf_winreg_winreg_QueryInfoKey_class_out = -1; static gint hf_winreg_winreg_InitiateSystemShutdownEx_hostname = -1; static gint hf_winreg_winreg_InitiateSystemShutdownEx_force_apps = -1; static gint hf_winreg_winreg_CreateKey_name = -1; @@ -124,8 +128,11 @@ static gint hf_winreg_winreg_OpenKey_access_mask = -1; static gint hf_winreg_winreg_InitiateSystemShutdown_timeout = -1; static gint hf_winreg_winreg_QueryInfoKey_max_valnamelen = -1; static gint hf_winreg_winreg_QueryMultipleValues_num_values = -1; -static gint hf_winreg_winreg_OpenHKCU_access_mask = -1; +static gint hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY = -1; static gint hf_winreg_winreg_String_name_size = -1; +static gint hf_winreg_winreg_OpenHKCU_access_mask = -1; +static gint hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS = -1; +static gint hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE = -1; static gint hf_winreg_winreg_StringBuf_length = -1; static gint hf_winreg_winreg_NotifyChangeKeyValue_string1 = -1; static gint hf_winreg_winreg_NotifyChangeKeyValue_string2 = -1; @@ -140,6 +147,38 @@ static e_uuid_t uuid_dcerpc_winreg = { }; static guint16 ver_dcerpc_winreg = 1; +static const true_false_string winreg_AccessMask_KEY_QUERY_VALUE_tfs = { + "KEY_QUERY_VALUE is SET", + "KEY_QUERY_VALUE is NOT SET", +}; +static const true_false_string winreg_AccessMask_KEY_SET_VALUE_tfs = { + "KEY_SET_VALUE is SET", + "KEY_SET_VALUE is NOT SET", +}; +static const true_false_string winreg_AccessMask_KEY_CREATE_SUB_KEY_tfs = { + "KEY_CREATE_SUB_KEY is SET", + "KEY_CREATE_SUB_KEY is NOT SET", +}; +static const true_false_string winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS_tfs = { + "KEY_ENUMERATE_SUB_KEYS is SET", + "KEY_ENUMERATE_SUB_KEYS is NOT SET", +}; +static const true_false_string winreg_AccessMask_KEY_NOTIFY_tfs = { + "KEY_NOTIFY is SET", + "KEY_NOTIFY is NOT SET", +}; +static const true_false_string winreg_AccessMask_KEY_CREATE_LINK_tfs = { + "KEY_CREATE_LINK is SET", + "KEY_CREATE_LINK is NOT SET", +}; +static const true_false_string winreg_AccessMask_KEY_WOW64_64KEY_tfs = { + "KEY_WOW64_64KEY is SET", + "KEY_WOW64_64KEY is NOT SET", +}; +static const true_false_string winreg_AccessMask_KEY_WOW64_32KEY_tfs = { + "KEY_WOW64_32KEY is SET", + "KEY_WOW64_32KEY is NOT SET", +}; const value_string winreg_winreg_Type_vals[] = { { REG_NONE, "REG_NONE" }, { REG_SZ, "REG_SZ" }, @@ -282,8 +321,7 @@ static int winreg_dissect_element_OpenKey_handle_(tvbuff_t *tvb, int offset, pac static int winreg_dissect_element_QueryInfoKey_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int winreg_dissect_element_QueryInfoKey_handle_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int winreg_dissect_element_QueryInfoKey_class_in(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int winreg_dissect_element_QueryInfoKey_class_out(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); -static int winreg_dissect_element_QueryInfoKey_class_out_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); +static int winreg_dissect_element_QueryInfoKey_class_in_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int winreg_dissect_element_QueryInfoKey_num_subkeys(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int winreg_dissect_element_QueryInfoKey_num_subkeys_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); static int winreg_dissect_element_QueryInfoKey_max_subkeylen(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep); @@ -425,6 +463,14 @@ winreg_dissect_struct_initshutdown_String(tvbuff_t *tvb, int offset, packet_info } /* IDL: typedef bitmap { */ +/* IDL: KEY_QUERY_VALUE = 0x00001 , */ +/* IDL: KEY_SET_VALUE = 0x00002 , */ +/* IDL: KEY_CREATE_SUB_KEY = 0x00004 , */ +/* IDL: KEY_ENUMERATE_SUB_KEYS = 0x00008 , */ +/* IDL: KEY_NOTIFY = 0x00010 , */ +/* IDL: KEY_CREATE_LINK = 0x00020 , */ +/* IDL: KEY_WOW64_64KEY = 0x00100 , */ +/* IDL: KEY_WOW64_32KEY = 0x00200 , */ /* IDL: } winreg_AccessMask; */ /* IDL: typedef enum { */ @@ -2154,23 +2200,15 @@ winreg_dissect_element_QueryInfoKey_handle_(tvbuff_t *tvb, int offset, packet_in static int winreg_dissect_element_QueryInfoKey_class_in(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryInfoKey_class_in,0); + offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_class_in_, NDR_POINTER_REF, "Pointer to Class In (winreg_String)",hf_winreg_winreg_QueryInfoKey_class_in); return offset; } static int -winreg_dissect_element_QueryInfoKey_class_out(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +winreg_dissect_element_QueryInfoKey_class_in_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { - offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_class_out_, NDR_POINTER_UNIQUE, "Pointer to Class Out (winreg_String)",hf_winreg_winreg_QueryInfoKey_class_out); - - return offset; -} - -static int -winreg_dissect_element_QueryInfoKey_class_out_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) -{ - offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryInfoKey_class_out,0); + offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryInfoKey_class_in,0); return offset; } @@ -2305,8 +2343,7 @@ winreg_dissect_element_QueryInfoKey_last_changed_time_(tvbuff_t *tvb, int offset /* IDL: WERROR winreg_QueryInfoKey( */ /* IDL: [in] [ref] policy_handle *handle, */ -/* IDL: [in] winreg_String class_in, */ -/* IDL: [out] [unique(1)] winreg_String *class_out, */ +/* IDL: [out] [in] [ref] winreg_String *class_in, */ /* IDL: [out] [ref] uint32 *num_subkeys, */ /* IDL: [out] [ref] uint32 *max_subkeylen, */ /* IDL: [out] [ref] uint32 *max_subkeysize, */ @@ -2322,7 +2359,7 @@ winreg_dissect_QueryInfoKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_i { guint32 status; - offset = winreg_dissect_element_QueryInfoKey_class_out(tvb, offset, pinfo, tree, drep); + offset = winreg_dissect_element_QueryInfoKey_class_in(tvb, offset, pinfo, tree, drep); offset = dissect_deferred_pointers(pinfo, tvb, offset, drep); offset = winreg_dissect_element_QueryInfoKey_num_subkeys(tvb, offset, pinfo, tree, drep); @@ -3667,6 +3704,8 @@ void proto_register_dcerpc_winreg(void) { "Version", "winreg.winreg_GetVersion.version", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_SetKeySecurity_access_mask, { "Access Mask", "winreg.winreg_SetKeySecurity.access_mask", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY, + { "Key Wow64 64key", "winreg.winreg_AccessMask.KEY_WOW64_64KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_WOW64_64KEY_tfs), ( 0x00100 ), "", HFILL }}, { &hf_winreg_winreg_NotifyChangeKeyValue_unknown, { "Unknown", "winreg.winreg_NotifyChangeKeyValue.unknown", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_LoadKey_filename, @@ -3687,6 +3726,8 @@ void proto_register_dcerpc_winreg(void) { "Size", "winreg.KeySecurityData.size", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_EnumValue_value, { "Value", "winreg.winreg_EnumValue.value", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_SET_VALUE, + { "Key Set Value", "winreg.winreg_AccessMask.KEY_SET_VALUE", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_SET_VALUE_tfs), ( 0x00002 ), "", HFILL }}, { &hf_winreg_winreg_InitiateSystemShutdownEx_message, { "Message", "winreg.winreg_InitiateSystemShutdownEx.message", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_QueryInfoKey_secdescsize, @@ -3709,6 +3750,10 @@ void proto_register_dcerpc_winreg(void) { "New Handle", "winreg.winreg_CreateKey.new_handle", FT_BYTES, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_QueryValue_type, { "Type", "winreg.winreg_QueryValue.type", FT_UINT32, BASE_DEC, VALS(winreg_winreg_Type_vals), 0, "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_CREATE_LINK, + { "Key Create Link", "winreg.winreg_AccessMask.KEY_CREATE_LINK", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_CREATE_LINK_tfs), ( 0x00020 ), "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY, + { "Key Wow64 32key", "winreg.winreg_AccessMask.KEY_WOW64_32KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_WOW64_32KEY_tfs), ( 0x00200 ), "", HFILL }}, { &hf_winreg_KeySecurityData_data, { "Data", "winreg.KeySecurityData.data", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_QueryMultipleValue_length, @@ -3745,14 +3790,14 @@ void proto_register_dcerpc_winreg(void) { "Sd", "winreg.winreg_SecBuf.sd", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_winreg_werror, { "Windows Error", "winreg.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, "", HFILL }}, + { &hf_winreg_winreg_QueryInfoKey_num_subkeys, + { "Num Subkeys", "winreg.winreg_QueryInfoKey.num_subkeys", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_String_name_len, { "Name Len", "winreg.winreg_String.name_len", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_opnum, { "Operation", "winreg.opnum", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_QueryMultipleValue_type, { "Type", "winreg.QueryMultipleValue.type", FT_UINT32, BASE_DEC, VALS(winreg_winreg_Type_vals), 0, "", HFILL }}, - { &hf_winreg_winreg_QueryInfoKey_num_subkeys, - { "Num Subkeys", "winreg.winreg_QueryInfoKey.num_subkeys", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_QueryInfoKey_class_in, { "Class In", "winreg.winreg_QueryInfoKey.class_in", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_InitiateSystemShutdownEx_timeout, @@ -3763,6 +3808,8 @@ void proto_register_dcerpc_winreg(void) { "Sec Info", "winreg.winreg_GetKeySecurity.sec_info", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_DeleteKey_key, { "Key", "winreg.winreg_DeleteKey.key", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_NOTIFY, + { "Key Notify", "winreg.winreg_AccessMask.KEY_NOTIFY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_NOTIFY_tfs), ( 0x00010 ), "", HFILL }}, { &hf_winreg_winreg_EnumKey_last_changed_time, { "Last Changed Time", "winreg.winreg_EnumKey.last_changed_time", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_QueryInfoKey_max_subkeylen, @@ -3777,8 +3824,6 @@ void proto_register_dcerpc_winreg(void) { "KeySecurityData", "winreg.sd", FT_NONE, BASE_NONE, NULL, 0, " ", HFILL }}, { &hf_winreg_winreg_EnumKey_enum_index, { "Enum Index", "winreg.winreg_EnumKey.enum_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_winreg_winreg_QueryInfoKey_class_out, - { "Class Out", "winreg.winreg_QueryInfoKey.class_out", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_InitiateSystemShutdownEx_hostname, { "Hostname", "winreg.winreg_InitiateSystemShutdownEx.hostname", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_InitiateSystemShutdownEx_force_apps, @@ -3809,10 +3854,16 @@ void proto_register_dcerpc_winreg(void) { "Max Valnamelen", "winreg.winreg_QueryInfoKey.max_valnamelen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_QueryMultipleValues_num_values, { "Num Values", "winreg.winreg_QueryMultipleValues.num_values", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_winreg_winreg_OpenHKCU_access_mask, - { "Access Mask", "winreg.winreg_OpenHKCU.access_mask", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY, + { "Key Create Sub Key", "winreg.winreg_AccessMask.KEY_CREATE_SUB_KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_CREATE_SUB_KEY_tfs), ( 0x00004 ), "", HFILL }}, { &hf_winreg_winreg_String_name_size, { "Name Size", "winreg.winreg_String.name_size", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_winreg_winreg_OpenHKCU_access_mask, + { "Access Mask", "winreg.winreg_OpenHKCU.access_mask", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS, + { "Key Enumerate Sub Keys", "winreg.winreg_AccessMask.KEY_ENUMERATE_SUB_KEYS", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS_tfs), ( 0x00008 ), "", HFILL }}, + { &hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE, + { "Key Query Value", "winreg.winreg_AccessMask.KEY_QUERY_VALUE", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_QUERY_VALUE_tfs), ( 0x00001 ), "", HFILL }}, { &hf_winreg_winreg_StringBuf_length, { "Length", "winreg.winreg_StringBuf.length", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_winreg_winreg_NotifyChangeKeyValue_string1, diff --git a/epan/dissectors/packet-dcerpc-winreg.h b/epan/dissectors/packet-dcerpc-winreg.h index 5a3ab42336..7478882c20 100644 --- a/epan/dissectors/packet-dcerpc-winreg.h +++ b/epan/dissectors/packet-dcerpc-winreg.h @@ -14,10 +14,6 @@ #ifndef __PACKET_DCERPC_WINREG_H #define __PACKET_DCERPC_WINREG_H -#include "packet-dcerpc-lsa.h" - -#include "packet-dcerpc-initshutdown.h" - int winreg_dissect_bitmap_AccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); #define REG_NONE (0) #define REG_SZ (1) diff --git a/epan/dissectors/pidl/winreg.idl b/epan/dissectors/pidl/winreg.idl index 2804b19964..c8900f7918 100644 --- a/epan/dissectors/pidl/winreg.idl +++ b/epan/dissectors/pidl/winreg.idl @@ -2,7 +2,7 @@ winreg interface definition */ -import "lsa.idl", "initshutdown.idl", "security.idl"; +/* import "lsa.idl", "initshutdown.idl", "security.idl";*/ [ uuid("338cd001-2244-31f1-aaaa-900038001003"), @@ -16,6 +16,14 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; declare bitmap 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 { @@ -57,7 +65,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; /******************/ /* Function: 0x02 */ - WERROR winreg_OpenHKLM( + [public] WERROR winreg_OpenHKLM( [in] uint16 *system_name, [in] winreg_AccessMask access_mask, [out,ref] policy_handle *handle @@ -81,7 +89,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; /******************/ /* Function: 0x05 */ - WERROR winreg_CloseKey( + [public] WERROR winreg_CloseKey( [in,out,ref] policy_handle *handle ); @@ -106,7 +114,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; REG_OPENED_EXISTING_KEY = 2 } winreg_CreateAction; - WERROR winreg_CreateKey( + [public] WERROR winreg_CreateKey( [in,ref] policy_handle *handle, [in] winreg_String name, [in] winreg_String keyclass, @@ -151,7 +159,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; /******************/ /* Function: 0x0a */ - WERROR winreg_EnumValue( + [public] WERROR winreg_EnumValue( [in,ref] policy_handle *handle, [in] uint32 enum_index, [in,out,ref] winreg_StringBuf *name, @@ -209,8 +217,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; /* Function: 0x10 */ WERROR winreg_QueryInfoKey( [in,ref] policy_handle *handle, - [in] winreg_String class_in, - [out] winreg_String *class_out, + [in,out,ref] winreg_String *class_in, [out,ref] uint32 *num_subkeys, [out,ref] uint32 *max_subkeylen, [out,ref] uint32 *max_subkeysize, @@ -223,7 +230,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; /******************/ /* Function: 0x11 */ - WERROR winreg_QueryValue( + [public] WERROR winreg_QueryValue( [in,ref] policy_handle *handle, [in] winreg_String value_name, [in,out] winreg_Type *type, @@ -318,7 +325,7 @@ import "lsa.idl", "initshutdown.idl", "security.idl"; /******************/ /* Function: 0x1d */ - WERROR winreg_QueryMultipleValues( + [public] WERROR winreg_QueryMultipleValues( [in,ref] policy_handle *key_handle, [in,out,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values, [in] uint32 num_values, |