summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1999-10-29 16:24:11 +0000
committerLuke Leighton <lkcl@samba.org>1999-10-29 16:24:11 +0000
commit3d096e1b8f5a253b61cbfa6155b0a16a5394c847 (patch)
tree14d6ab4f91467f5f9ff10f82dc7d18f36ee938d5 /source3/include
parent97993e4973333b504abd2de7a23b1a554841d547 (diff)
downloadsamba-3d096e1b8f5a253b61cbfa6155b0a16a5394c847.tar.gz
samba-3d096e1b8f5a253b61cbfa6155b0a16a5394c847.tar.bz2
samba-3d096e1b8f5a253b61cbfa6155b0a16a5394c847.zip
added HKEY_CLASSES_ROOT MSRPC open call. reg_open_hkcr etc. supported
in rpcclient, regenum HKEY_CLASSES_ROOT or regenum HKCR to test. (This used to be commit b0aa933ef4c0b58840430cf3b3cb3cbeb5c7f704)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h8
-rw-r--r--source3/include/rpc_reg.h32
2 files changed, 34 insertions, 6 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index e83e0320de..74d81ad7f1 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1816,6 +1816,8 @@ void cli_nt_session_close(struct cli_state *cli, uint16 nt_pipe_fnum);
BOOL do_reg_connect(struct cli_state *cli, uint16 fnum, char *full_keyname, char *key_name,
POLICY_HND *reg_hnd);
+BOOL do_reg_open_hkcr(struct cli_state *cli, uint16 fnum, uint16 unknown_0, uint32 level,
+ POLICY_HND *hnd);
BOOL do_reg_open_hklm(struct cli_state *cli, uint16 fnum, uint16 unknown_0, uint32 level,
POLICY_HND *hnd);
BOOL do_reg_open_hku(struct cli_state *cli, uint16 fnum, uint16 unknown_0, uint32 level,
@@ -2334,6 +2336,10 @@ BOOL _prs_uint32_post(char *name, prs_struct *ps, int depth, uint32 *data32,
/*The following definitions come from rpc_parse/parse_reg.c */
+BOOL make_reg_q_open_hkcr(REG_Q_OPEN_HKCR *q_o,
+ uint16 unknown_0, uint32 level);
+BOOL reg_io_q_open_hkcr(char *desc, REG_Q_OPEN_HKCR *r_q, prs_struct *ps, int depth);
+BOOL reg_io_r_open_hkcr(char *desc, REG_R_OPEN_HKCR *r_r, prs_struct *ps, int depth);
BOOL make_reg_q_open_hklm(REG_Q_OPEN_HKLM *q_o,
uint16 unknown_0, uint32 level);
BOOL reg_io_q_open_hklm(char *desc, REG_Q_OPEN_HKLM *r_q, prs_struct *ps, int depth);
@@ -3245,7 +3251,7 @@ BOOL sam_query_groupmem(struct cli_state *cli, uint16 fnum,
uint32 msrpc_sam_enum_groups(struct client_info *info,
struct acct_info **sam,
uint32 *num_sam_entries,
- BOOL request_member_info,
+ void(*grp_mem_fn)(uint32, char*, uint32, uint32*, char**, uint32*),
BOOL request_group_info);
void cmd_sam_enum_groups(struct client_info *info);
diff --git a/source3/include/rpc_reg.h b/source3/include/rpc_reg.h
index cc163540d7..f74856193d 100644
--- a/source3/include/rpc_reg.h
+++ b/source3/include/rpc_reg.h
@@ -26,6 +26,7 @@
/* winreg pipe defines */
+#define REG_OPEN_HKCR 0x00
#define REG_OPEN_HKLM 0x02
#define REG_OPEN_HKU 0x04
#define REG_FLUSH_KEY 0x0B
@@ -44,11 +45,32 @@
#define REG_CLOSE 0x05
#define REG_SHUTDOWN 0x18
-#define HKEY_LOCAL_MACHINE 0x80000000
+#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; /* 0x5428 - 16 bit unknown */
+ uint16 unknown_1; /* random. changes */
+ uint32 level; /* 0x0200 0000 */
+
+} REG_Q_OPEN_HKCR;
+
+/* REG_R_OPEN_HKCR */
+typedef struct r_reg_open_hkcr_info
+{
+ POLICY_HND pol; /* policy handle */
+ uint32 status; /* return status */
+
+} REG_R_OPEN_HKCR;
+
+
/* REG_Q_OPEN_HKLM */
-typedef struct q_reg_open_policy_info
+typedef struct q_reg_open_hklm_info
{
uint32 ptr;
uint16 unknown_0; /* 0xE084 - 16 bit unknown */
@@ -58,7 +80,7 @@ typedef struct q_reg_open_policy_info
} REG_Q_OPEN_HKLM ;
/* REG_R_OPEN_HKLM */
-typedef struct r_reg_open_policy_info
+typedef struct r_reg_open_hklm_info
{
POLICY_HND pol; /* policy handle */
uint32 status; /* return status */
@@ -67,7 +89,7 @@ typedef struct r_reg_open_policy_info
/* 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 */
@@ -77,7 +99,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 */