[SCM] Samba Shared Repository - branch master updated - 67018ed8bdd867f0612f2c559267cba6a67e4b2d

Günther Deschner gd at samba.org
Wed Nov 12 09:20:25 GMT 2008


The branch, master has been updated
       via  67018ed8bdd867f0612f2c559267cba6a67e4b2d (commit)
       via  92f64d3df59845edc421ea3607d0fee9059d39e8 (commit)
       via  663c1d52f60f7ca3ffe3b0ea537e37541c936583 (commit)
       via  1f87fc798d58dc27152b236e6e66c89684007b2a (commit)
       via  0bb86657311cc753f258b9f10c2204ded3832c2c (commit)
       via  2ea5e222c581fd7709345dfbc51c8f0565f7bb67 (commit)
       via  0afcf4d8f7093b3b78d71ec0aa00b6487a2917f5 (commit)
       via  0a77b1827d62945b4a308ae6cf23e9fb2bacdb24 (commit)
       via  0241b2cbdaf3f7f33ac5c15326957de7be734305 (commit)
       via  8d8386cc4d3347b145768ed81ea97559a3912fef (commit)
       via  17fe93f94b461c980d2deac648067101b22dae6a (commit)
       via  365a703d1395ac69633711edd00f91e9ef8adc97 (commit)
       via  aa6af1fe26c9d54e512549fc631fe3087920a677 (commit)
      from  e6f8fd994567f85efd88b56e438816ee337f4f6e (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 67018ed8bdd867f0612f2c559267cba6a67e4b2d
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 11 12:36:07 2008 +0100

    s4-smbtorture: add very basic RPC-NTSVCS test.
    
    Guenther

commit 92f64d3df59845edc421ea3607d0fee9059d39e8
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 12 09:30:46 2008 +0100

    s3-build: re-run make samba3-idl.
    
    Guenther

commit 663c1d52f60f7ca3ffe3b0ea537e37541c936583
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 11 01:31:48 2008 +0100

    ntsvcs: fill in some more formerly unknowns in PNP_GetHwProfInfo.
    
    Guenther

commit 1f87fc798d58dc27152b236e6e66c89684007b2a
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 12 09:21:53 2008 +0100

    ntsvcs: use both named-pipe endpoints.
    
    Guenther

commit 0bb86657311cc753f258b9f10c2204ded3832c2c
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 12 09:28:05 2008 +0100

    s3-rpcclient: correct some former unknonws in cmd_ntsvcs_hw_prof_flags command.
    
    Guenther

commit 2ea5e222c581fd7709345dfbc51c8f0565f7bb67
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 12 09:36:08 2008 +0100

    s3-build: re-run make samba3-idl.
    
    Guenther

commit 0afcf4d8f7093b3b78d71ec0aa00b6487a2917f5
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 11 01:31:01 2008 +0100

    ntsvcs: fill in more unknowns in PNP_HwProfFlags IDL.
    
    Guenther

commit 0a77b1827d62945b4a308ae6cf23e9fb2bacdb24
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 12 09:18:55 2008 +0100

    s3-build: re-run make samba3-idl.
    
    Guenther

commit 0241b2cbdaf3f7f33ac5c15326957de7be734305
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 12 09:23:38 2008 +0100

    s3-rpcclient: some corrections for the PNP_GetDeviceRegProp client.
    
    Guenther

commit 8d8386cc4d3347b145768ed81ea97559a3912fef
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 11 00:59:35 2008 +0100

    ntsvcs: some corrections for the PNP_GetDeviceRegProp IDL.
    
    Guenther

commit 17fe93f94b461c980d2deac648067101b22dae6a
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 11 00:50:35 2008 +0100

    s3-rpcclient: add ntsvcs_getdevlist command.
    
    Guenther

commit 365a703d1395ac69633711edd00f91e9ef8adc97
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 11 00:06:07 2008 +0100

    s3-rpcclient: add ntsvcs_getdevlistsize command.
    
    Guenther

commit aa6af1fe26c9d54e512549fc631fe3087920a677
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 12 09:06:36 2008 +0100

    errors: add WERR_CM_BUFFER_SMALL.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 libcli/util/werror.h                |    1 +
 librpc/idl/ntsvcs.idl               |   27 +++--
 source3/librpc/gen_ndr/cli_ntsvcs.c |   40 ++++----
 source3/librpc/gen_ndr/cli_ntsvcs.h |   18 ++--
 source3/librpc/gen_ndr/ndr_ntsvcs.c |  196 ++++++++++++++++++-----------------
 source3/librpc/gen_ndr/ntsvcs.h     |   31 +++---
 source3/librpc/gen_ndr/srv_ntsvcs.c |    4 +-
 source3/rpcclient/cmd_ntsvcs.c      |  148 ++++++++++++++++++---------
 source4/selftest/skip               |    1 +
 source4/torture/config.mk           |    4 +-
 source4/torture/rpc/ntsvcs.c        |  129 +++++++++++++++++++++++
 source4/torture/rpc/rpc.c           |    1 +
 12 files changed, 394 insertions(+), 206 deletions(-)
 create mode 100644 source4/torture/rpc/ntsvcs.c


Changeset truncated at 500 lines:

diff --git a/libcli/util/werror.h b/libcli/util/werror.h
index 0d99c7b..d22516a 100644
--- a/libcli/util/werror.h
+++ b/libcli/util/werror.h
@@ -181,6 +181,7 @@ typedef uint32_t WERROR;
 /* Configuration Manager Errors */
 /* Basically Win32 errors meanings are specific to the \ntsvcs pipe */
 
+#define WERR_CM_BUFFER_SMALL W_ERROR(26)
 #define WERR_CM_NO_MORE_HW_PROFILES W_ERROR(35)
 #define WERR_CM_NO_SUCH_VALUE W_ERROR(37)
 
diff --git a/librpc/idl/ntsvcs.idl b/librpc/idl/ntsvcs.idl
index 809ead9..d502435 100644
--- a/librpc/idl/ntsvcs.idl
+++ b/librpc/idl/ntsvcs.idl
@@ -2,9 +2,12 @@
   plug and play services
 */
 
+import "winreg.idl";
+
 [
   uuid("8d9f4e40-a03d-11ce-8f69-08003e30051b"),
   version(1.0),
+  endpoint("ncacn_np:[\\pipe\\ntsvcs]","ncacn_np:[\\pipe\\plugplay]"),
   helpstring("Plug and Play services")
 ]
 interface ntsvcs
@@ -96,7 +99,7 @@ interface ntsvcs
 	WERROR PNP_GetDeviceRegProp(
 		[in,ref] [string,charset(UTF16)] uint16 *devicepath,
 		[in] uint32 property,
-		[in,out,ref] uint32 *reg_data_type,
+		[in,out,ref] winreg_Type *reg_data_type,
 		[out,ref] [size_is(*buffer_size)] [length_is(*buffer_size)] uint8 *buffer,
 		[in,out,ref] uint32 *buffer_size,
 		[in,out,ref] uint32 *needed,
@@ -237,31 +240,31 @@ interface ntsvcs
 	/* Function: 0x28 */
 
 	WERROR PNP_HwProfFlags(
-		[in] uint32 unknown1,
+		[in] uint32 action,
 		[in,ref] [string,charset(UTF16)] uint16 *devicepath,
-		[in] uint32 unknown2,
-		[in,out,ref] uint32 *unknown3,
-		[in,out,unique] uint16 *unknown4,
+		[in] uint32 config,
+		[in,out,ref] uint32 *profile_flags,
+		[in,out,unique] uint16 *veto_type,
 		[in,unique] [string,charset(UTF16)] uint16 *unknown5,
 		[out,unique] [string,charset(UTF16)] uint16 **unknown5a,
-		[in] uint32 unknown6,
-		[in] uint32 unknown7
+		[in] uint32 name_length,
+		[in] uint32 flags
 		);
 
 	/******************/
 	/* Function: 0x29 */
 
 	typedef struct {
-		uint32 unknown1;
-		uint16 unknown2[160];
-		uint32 unknown3;
+		uint32 profile_handle;
+		uint16 friendly_name[80];
+		uint32 flags;
 	} PNP_HwProfInfo;
 
 	WERROR PNP_GetHwProfInfo(
 		[in] uint32 idx,
 		[in,out,ref] PNP_HwProfInfo *info,
-		[in] uint32 unknown1,
-		[in] uint32 unknown2
+		[in] uint32 size,
+		[in] uint32 flags
 		);
 
 	/******************/
diff --git a/source3/librpc/gen_ndr/cli_ntsvcs.c b/source3/librpc/gen_ndr/cli_ntsvcs.c
index f8ef7a9..0f97970 100644
--- a/source3/librpc/gen_ndr/cli_ntsvcs.c
+++ b/source3/librpc/gen_ndr/cli_ntsvcs.c
@@ -564,7 +564,7 @@ NTSTATUS rpccli_PNP_GetDeviceRegProp(struct rpc_pipe_client *cli,
 				     TALLOC_CTX *mem_ctx,
 				     const char *devicepath /* [in] [ref,charset(UTF16)] */,
 				     uint32_t property /* [in]  */,
-				     uint32_t *reg_data_type /* [in,out] [ref] */,
+				     enum winreg_Type *reg_data_type /* [in,out] [ref] */,
 				     uint8_t *buffer /* [out] [ref,length_is(*buffer_size),size_is(*buffer_size)] */,
 				     uint32_t *buffer_size /* [in,out] [ref] */,
 				     uint32_t *needed /* [in,out] [ref] */,
@@ -1686,29 +1686,29 @@ NTSTATUS rpccli_PNP_RequestEjectPC(struct rpc_pipe_client *cli,
 
 NTSTATUS rpccli_PNP_HwProfFlags(struct rpc_pipe_client *cli,
 				TALLOC_CTX *mem_ctx,
-				uint32_t unknown1 /* [in]  */,
+				uint32_t action /* [in]  */,
 				const char *devicepath /* [in] [ref,charset(UTF16)] */,
-				uint32_t unknown2 /* [in]  */,
-				uint32_t *unknown3 /* [in,out] [ref] */,
-				uint16_t *unknown4 /* [in,out] [unique] */,
+				uint32_t config /* [in]  */,
+				uint32_t *profile_flags /* [in,out] [ref] */,
+				uint16_t *veto_type /* [in,out] [unique] */,
 				const char *unknown5 /* [in] [unique,charset(UTF16)] */,
 				const char **unknown5a /* [out] [unique,charset(UTF16)] */,
-				uint32_t unknown6 /* [in]  */,
-				uint32_t unknown7 /* [in]  */,
+				uint32_t name_length /* [in]  */,
+				uint32_t flags /* [in]  */,
 				WERROR *werror)
 {
 	struct PNP_HwProfFlags r;
 	NTSTATUS status;
 
 	/* In parameters */
-	r.in.unknown1 = unknown1;
+	r.in.action = action;
 	r.in.devicepath = devicepath;
-	r.in.unknown2 = unknown2;
-	r.in.unknown3 = unknown3;
-	r.in.unknown4 = unknown4;
+	r.in.config = config;
+	r.in.profile_flags = profile_flags;
+	r.in.veto_type = veto_type;
 	r.in.unknown5 = unknown5;
-	r.in.unknown6 = unknown6;
-	r.in.unknown7 = unknown7;
+	r.in.name_length = name_length;
+	r.in.flags = flags;
 
 	if (DEBUGLEVEL >= 10) {
 		NDR_PRINT_IN_DEBUG(PNP_HwProfFlags, &r);
@@ -1733,9 +1733,9 @@ NTSTATUS rpccli_PNP_HwProfFlags(struct rpc_pipe_client *cli,
 	}
 
 	/* Return variables */
-	*unknown3 = *r.out.unknown3;
-	if (unknown4 && r.out.unknown4) {
-		*unknown4 = *r.out.unknown4;
+	*profile_flags = *r.out.profile_flags;
+	if (veto_type && r.out.veto_type) {
+		*veto_type = *r.out.veto_type;
 	}
 	if (unknown5a && r.out.unknown5a) {
 		*unknown5a = *r.out.unknown5a;
@@ -1753,8 +1753,8 @@ NTSTATUS rpccli_PNP_GetHwProfInfo(struct rpc_pipe_client *cli,
 				  TALLOC_CTX *mem_ctx,
 				  uint32_t idx /* [in]  */,
 				  struct PNP_HwProfInfo *info /* [in,out] [ref] */,
-				  uint32_t unknown1 /* [in]  */,
-				  uint32_t unknown2 /* [in]  */,
+				  uint32_t size /* [in]  */,
+				  uint32_t flags /* [in]  */,
 				  WERROR *werror)
 {
 	struct PNP_GetHwProfInfo r;
@@ -1763,8 +1763,8 @@ NTSTATUS rpccli_PNP_GetHwProfInfo(struct rpc_pipe_client *cli,
 	/* In parameters */
 	r.in.idx = idx;
 	r.in.info = info;
-	r.in.unknown1 = unknown1;
-	r.in.unknown2 = unknown2;
+	r.in.size = size;
+	r.in.flags = flags;
 
 	if (DEBUGLEVEL >= 10) {
 		NDR_PRINT_IN_DEBUG(PNP_GetHwProfInfo, &r);
diff --git a/source3/librpc/gen_ndr/cli_ntsvcs.h b/source3/librpc/gen_ndr/cli_ntsvcs.h
index 4ed8a40..fc4a9f4 100644
--- a/source3/librpc/gen_ndr/cli_ntsvcs.h
+++ b/source3/librpc/gen_ndr/cli_ntsvcs.h
@@ -54,7 +54,7 @@ NTSTATUS rpccli_PNP_GetDeviceRegProp(struct rpc_pipe_client *cli,
 				     TALLOC_CTX *mem_ctx,
 				     const char *devicepath /* [in] [ref,charset(UTF16)] */,
 				     uint32_t property /* [in]  */,
-				     uint32_t *reg_data_type /* [in,out] [ref] */,
+				     enum winreg_Type *reg_data_type /* [in,out] [ref] */,
 				     uint8_t *buffer /* [out] [ref,length_is(*buffer_size),size_is(*buffer_size)] */,
 				     uint32_t *buffer_size /* [in,out] [ref] */,
 				     uint32_t *needed /* [in,out] [ref] */,
@@ -140,22 +140,22 @@ NTSTATUS rpccli_PNP_RequestEjectPC(struct rpc_pipe_client *cli,
 				   WERROR *werror);
 NTSTATUS rpccli_PNP_HwProfFlags(struct rpc_pipe_client *cli,
 				TALLOC_CTX *mem_ctx,
-				uint32_t unknown1 /* [in]  */,
+				uint32_t action /* [in]  */,
 				const char *devicepath /* [in] [ref,charset(UTF16)] */,
-				uint32_t unknown2 /* [in]  */,
-				uint32_t *unknown3 /* [in,out] [ref] */,
-				uint16_t *unknown4 /* [in,out] [unique] */,
+				uint32_t config /* [in]  */,
+				uint32_t *profile_flags /* [in,out] [ref] */,
+				uint16_t *veto_type /* [in,out] [unique] */,
 				const char *unknown5 /* [in] [unique,charset(UTF16)] */,
 				const char **unknown5a /* [out] [unique,charset(UTF16)] */,
-				uint32_t unknown6 /* [in]  */,
-				uint32_t unknown7 /* [in]  */,
+				uint32_t name_length /* [in]  */,
+				uint32_t flags /* [in]  */,
 				WERROR *werror);
 NTSTATUS rpccli_PNP_GetHwProfInfo(struct rpc_pipe_client *cli,
 				  TALLOC_CTX *mem_ctx,
 				  uint32_t idx /* [in]  */,
 				  struct PNP_HwProfInfo *info /* [in,out] [ref] */,
-				  uint32_t unknown1 /* [in]  */,
-				  uint32_t unknown2 /* [in]  */,
+				  uint32_t size /* [in]  */,
+				  uint32_t flags /* [in]  */,
 				  WERROR *werror);
 NTSTATUS rpccli_PNP_AddEmptyLogConf(struct rpc_pipe_client *cli,
 				    TALLOC_CTX *mem_ctx,
diff --git a/source3/librpc/gen_ndr/ndr_ntsvcs.c b/source3/librpc/gen_ndr/ndr_ntsvcs.c
index 35d02a0..a63ed6f 100644
--- a/source3/librpc/gen_ndr/ndr_ntsvcs.c
+++ b/source3/librpc/gen_ndr/ndr_ntsvcs.c
@@ -3,16 +3,17 @@
 #include "includes.h"
 #include "librpc/gen_ndr/ndr_ntsvcs.h"
 
+#include "librpc/gen_ndr/ndr_winreg.h"
 static enum ndr_err_code ndr_push_PNP_HwProfInfo(struct ndr_push *ndr, int ndr_flags, const struct PNP_HwProfInfo *r)
 {
-	uint32_t cntr_unknown2_0;
+	uint32_t cntr_friendly_name_0;
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
-		for (cntr_unknown2_0 = 0; cntr_unknown2_0 < 160; cntr_unknown2_0++) {
-			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown2[cntr_unknown2_0]));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->profile_handle));
+		for (cntr_friendly_name_0 = 0; cntr_friendly_name_0 < 80; cntr_friendly_name_0++) {
+			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->friendly_name[cntr_friendly_name_0]));
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
 	}
@@ -21,14 +22,14 @@ static enum ndr_err_code ndr_push_PNP_HwProfInfo(struct ndr_push *ndr, int ndr_f
 
 static enum ndr_err_code ndr_pull_PNP_HwProfInfo(struct ndr_pull *ndr, int ndr_flags, struct PNP_HwProfInfo *r)
 {
-	uint32_t cntr_unknown2_0;
+	uint32_t cntr_friendly_name_0;
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 4));
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
-		for (cntr_unknown2_0 = 0; cntr_unknown2_0 < 160; cntr_unknown2_0++) {
-			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown2[cntr_unknown2_0]));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->profile_handle));
+		for (cntr_friendly_name_0 = 0; cntr_friendly_name_0 < 80; cntr_friendly_name_0++) {
+			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->friendly_name[cntr_friendly_name_0]));
 		}
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
 	}
@@ -37,21 +38,21 @@ static enum ndr_err_code ndr_pull_PNP_HwProfInfo(struct ndr_pull *ndr, int ndr_f
 
 _PUBLIC_ void ndr_print_PNP_HwProfInfo(struct ndr_print *ndr, const char *name, const struct PNP_HwProfInfo *r)
 {
-	uint32_t cntr_unknown2_0;
+	uint32_t cntr_friendly_name_0;
 	ndr_print_struct(ndr, name, "PNP_HwProfInfo");
 	ndr->depth++;
-	ndr_print_uint32(ndr, "unknown1", r->unknown1);
-	ndr->print(ndr, "%s: ARRAY(%d)", "unknown2", (int)160);
+	ndr_print_uint32(ndr, "profile_handle", r->profile_handle);
+	ndr->print(ndr, "%s: ARRAY(%d)", "friendly_name", (int)80);
 	ndr->depth++;
-	for (cntr_unknown2_0=0;cntr_unknown2_0<160;cntr_unknown2_0++) {
+	for (cntr_friendly_name_0=0;cntr_friendly_name_0<80;cntr_friendly_name_0++) {
 		char *idx_0=NULL;
-		if (asprintf(&idx_0, "[%d]", cntr_unknown2_0) != -1) {
-			ndr_print_uint16(ndr, "unknown2", r->unknown2[cntr_unknown2_0]);
+		if (asprintf(&idx_0, "[%d]", cntr_friendly_name_0) != -1) {
+			ndr_print_uint16(ndr, "friendly_name", r->friendly_name[cntr_friendly_name_0]);
 			free(idx_0);
 		}
 	}
 	ndr->depth--;
-	ndr_print_uint32(ndr, "unknown3", r->unknown3);
+	ndr_print_uint32(ndr, "flags", r->flags);
 	ndr->depth--;
 }
 
@@ -818,7 +819,7 @@ static enum ndr_err_code ndr_push_PNP_GetDeviceRegProp(struct ndr_push *ndr, int
 		if (r->in.reg_data_type == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.reg_data_type));
+		NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->in.reg_data_type));
 		if (r->in.buffer_size == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
@@ -833,7 +834,7 @@ static enum ndr_err_code ndr_push_PNP_GetDeviceRegProp(struct ndr_push *ndr, int
 		if (r->out.reg_data_type == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.reg_data_type));
+		NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.reg_data_type));
 		if (r->out.buffer == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
@@ -875,7 +876,7 @@ static enum ndr_err_code ndr_pull_PNP_GetDeviceRegProp(struct ndr_pull *ndr, int
 		}
 		_mem_save_reg_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
 		NDR_PULL_SET_MEM_CTX(ndr, r->in.reg_data_type, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.reg_data_type));
+		NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->in.reg_data_type));
 		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reg_data_type_0, LIBNDR_FLAG_REF_ALLOC);
 		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 			NDR_PULL_ALLOC(ndr, r->in.buffer_size);
@@ -907,7 +908,7 @@ static enum ndr_err_code ndr_pull_PNP_GetDeviceRegProp(struct ndr_pull *ndr, int
 		}
 		_mem_save_reg_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
 		NDR_PULL_SET_MEM_CTX(ndr, r->out.reg_data_type, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.reg_data_type));
+		NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.reg_data_type));
 		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reg_data_type_0, LIBNDR_FLAG_REF_ALLOC);
 		NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
 		NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer));
@@ -960,7 +961,7 @@ _PUBLIC_ void ndr_print_PNP_GetDeviceRegProp(struct ndr_print *ndr, const char *
 		ndr_print_uint32(ndr, "property", r->in.property);
 		ndr_print_ptr(ndr, "reg_data_type", r->in.reg_data_type);
 		ndr->depth++;
-		ndr_print_uint32(ndr, "reg_data_type", *r->in.reg_data_type);
+		ndr_print_winreg_Type(ndr, "reg_data_type", *r->in.reg_data_type);
 		ndr->depth--;
 		ndr_print_ptr(ndr, "buffer_size", r->in.buffer_size);
 		ndr->depth++;
@@ -978,7 +979,7 @@ _PUBLIC_ void ndr_print_PNP_GetDeviceRegProp(struct ndr_print *ndr, const char *
 		ndr->depth++;
 		ndr_print_ptr(ndr, "reg_data_type", r->out.reg_data_type);
 		ndr->depth++;
-		ndr_print_uint32(ndr, "reg_data_type", *r->out.reg_data_type);
+		ndr_print_winreg_Type(ndr, "reg_data_type", *r->out.reg_data_type);
 		ndr->depth--;
 		ndr_print_ptr(ndr, "buffer", r->out.buffer);
 		ndr->depth++;
@@ -2067,7 +2068,7 @@ _PUBLIC_ void ndr_print_PNP_RequestEjectPC(struct ndr_print *ndr, const char *na
 static enum ndr_err_code ndr_push_PNP_HwProfFlags(struct ndr_push *ndr, int flags, const struct PNP_HwProfFlags *r)
 {
 	if (flags & NDR_IN) {
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.action));
 		if (r->in.devicepath == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
@@ -2075,14 +2076,14 @@ static enum ndr_err_code ndr_push_PNP_HwProfFlags(struct ndr_push *ndr, int flag
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.devicepath, CH_UTF16)));
 		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.devicepath, ndr_charset_length(r->in.devicepath, CH_UTF16), sizeof(uint16_t), CH_UTF16));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
-		if (r->in.unknown3 == NULL) {
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.config));
+		if (r->in.profile_flags == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.unknown3));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown4));
-		if (r->in.unknown4) {
-			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.unknown4));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.profile_flags));
+		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.veto_type));
+		if (r->in.veto_type) {
+			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.veto_type));
 		}
 		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown5));
 		if (r->in.unknown5) {
@@ -2091,17 +2092,17 @@ static enum ndr_err_code ndr_push_PNP_HwProfFlags(struct ndr_push *ndr, int flag
 			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown5, CH_UTF16)));
 			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.unknown5, ndr_charset_length(r->in.unknown5, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown6));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown7));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.name_length));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
 	}
 	if (flags & NDR_OUT) {
-		if (r->out.unknown3 == NULL) {
+		if (r->out.profile_flags == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.unknown3));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.unknown4));
-		if (r->out.unknown4) {
-			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->out.unknown4));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.profile_flags));
+		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.veto_type));
+		if (r->out.veto_type) {
+			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->out.veto_type));
 		}
 		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.unknown5a));
 		if (r->out.unknown5a) {
@@ -2120,18 +2121,18 @@ static enum ndr_err_code ndr_push_PNP_HwProfFlags(struct ndr_push *ndr, int flag
 
 static enum ndr_err_code ndr_pull_PNP_HwProfFlags(struct ndr_pull *ndr, int flags, struct PNP_HwProfFlags *r)
 {
-	uint32_t _ptr_unknown4;
+	uint32_t _ptr_veto_type;
 	uint32_t _ptr_unknown5;
 	uint32_t _ptr_unknown5a;
-	TALLOC_CTX *_mem_save_unknown3_0;
-	TALLOC_CTX *_mem_save_unknown4_0;
+	TALLOC_CTX *_mem_save_profile_flags_0;
+	TALLOC_CTX *_mem_save_veto_type_0;
 	TALLOC_CTX *_mem_save_unknown5_0;
 	TALLOC_CTX *_mem_save_unknown5a_0;
 	TALLOC_CTX *_mem_save_unknown5a_1;
 	if (flags & NDR_IN) {
 		ZERO_STRUCT(r->out);
 
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.action));
 		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.devicepath));
 		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.devicepath));
 		if (ndr_get_array_length(ndr, &r->in.devicepath) > ndr_get_array_size(ndr, &r->in.devicepath)) {
@@ -2139,25 +2140,25 @@ static enum ndr_err_code ndr_pull_PNP_HwProfFlags(struct ndr_pull *ndr, int flag
 		}
 		NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.devicepath), sizeof(uint16_t)));
 		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicepath, ndr_get_array_length(ndr, &r->in.devicepath), sizeof(uint16_t), CH_UTF16));
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.config));
 		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-			NDR_PULL_ALLOC(ndr, r->in.unknown3);
-		}
-		_mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
-		NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown3, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.unknown3));
-		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
-		if (_ptr_unknown4) {
-			NDR_PULL_ALLOC(ndr, r->in.unknown4);
+			NDR_PULL_ALLOC(ndr, r->in.profile_flags);
+		}
+		_mem_save_profile_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->in.profile_flags, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.profile_flags));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_profile_flags_0, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_veto_type));
+		if (_ptr_veto_type) {
+			NDR_PULL_ALLOC(ndr, r->in.veto_type);
 		} else {
-			r->in.unknown4 = NULL;
+			r->in.veto_type = NULL;
 		}
-		if (r->in.unknown4) {
-			_mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown4, 0);
-			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.unknown4));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
+		if (r->in.veto_type) {
+			_mem_save_veto_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, r->in.veto_type, 0);
+			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.veto_type));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_veto_type_0, 0);
 		}
 		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown5));
 		if (_ptr_unknown5) {
@@ -2177,30 +2178,30 @@ static enum ndr_err_code ndr_pull_PNP_HwProfFlags(struct ndr_pull *ndr, int flag
 			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown5, ndr_get_array_length(ndr, &r->in.unknown5), sizeof(uint16_t), CH_UTF16));
 			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown5_0, 0);
 		}
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown6));
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown7));
-		NDR_PULL_ALLOC(ndr, r->out.unknown3);
-		*r->out.unknown3 = *r->in.unknown3;
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.name_length));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
+		NDR_PULL_ALLOC(ndr, r->out.profile_flags);
+		*r->out.profile_flags = *r->in.profile_flags;
 	}
 	if (flags & NDR_OUT) {
 		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
-			NDR_PULL_ALLOC(ndr, r->out.unknown3);
-		}
-		_mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
-		NDR_PULL_SET_MEM_CTX(ndr, r->out.unknown3, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.unknown3));
-		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
-		if (_ptr_unknown4) {
-			NDR_PULL_ALLOC(ndr, r->out.unknown4);
+			NDR_PULL_ALLOC(ndr, r->out.profile_flags);
+		}
+		_mem_save_profile_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->out.profile_flags, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.profile_flags));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_profile_flags_0, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_veto_type));
+		if (_ptr_veto_type) {
+			NDR_PULL_ALLOC(ndr, r->out.veto_type);
 		} else {
-			r->out.unknown4 = NULL;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list