The branch, master has been updated via e80891db4123a2ae326517c27c559ace18b0f05b (commit) via 25ab8828a191bf67c85be1c8e21dc7d17c2f65d1 (commit) via cd82d4ba569a5048e506f8455d9c496a47805fc1 (commit) via c6a7ecf28b5d531b8f8921643b3aa3a01b74151b (commit) via bbc71486a7baa086309d877b3ff4f67657053500 (commit) via 347eb9b970b8a97efab2aa6fe6f719ec569f9748 (commit) via ad836c4d48e7c7a8a6f1d240f20cca730487a651 (commit) from 98245727c9a314849248e5419b347b444e79a2f7 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit e80891db4123a2ae326517c27c559ace18b0f05b Author: Günther Deschner <g...@samba.org> Date: Thu Oct 1 10:21:17 2009 +0200 s3-perfcount: more cleanup. Guenther commit 25ab8828a191bf67c85be1c8e21dc7d17c2f65d1 Author: Günther Deschner <g...@samba.org> Date: Thu Oct 1 03:39:07 2009 +0200 s3-perfcount: only pass down prs_struct when really required. Guenther commit cd82d4ba569a5048e506f8455d9c496a47805fc1 Author: Günther Deschner <g...@samba.org> Date: Thu Oct 1 02:09:33 2009 +0200 s3: add perfcount idl and generated files. Guenther commit c6a7ecf28b5d531b8f8921643b3aa3a01b74151b Author: Günther Deschner <g...@samba.org> Date: Thu Oct 1 01:30:45 2009 +0200 s3-registry: move rpccli_winreg_Connect to the only file it belongs. Guenther commit bbc71486a7baa086309d877b3ff4f67657053500 Author: Günther Deschner <g...@samba.org> Date: Wed Sep 30 20:01:54 2009 +0200 s3: remove unused rpcstr_pull and rpcstr_pull_talloc. Guenther commit 347eb9b970b8a97efab2aa6fe6f719ec569f9748 Author: Günther Deschner <g...@samba.org> Date: Wed Sep 30 20:01:35 2009 +0200 s3-printing: more use of pull_reg_sz(). Guenther commit ad836c4d48e7c7a8a6f1d240f20cca730487a651 Author: Günther Deschner <g...@samba.org> Date: Wed Sep 30 20:00:52 2009 +0200 s3-registry: use pull_reg_sz() where appropriate. (and move away from rpcstr_pull and rpcstr_pull_talloc). Guenther ----------------------------------------------------------------------- Summary of changes: examples/perfcounter/Makefile | 6 +- examples/perfcounter/perf.h | 4 +- source3/Makefile.in | 6 +- source3/include/includes.h | 3 +- source3/include/proto.h | 30 +-- source3/include/rpc_perfcount.h | 126 -------- source3/include/rpc_perfcount_defs.h | 93 ------ source3/lib/util_unistr.c | 35 --- source3/librpc/gen_ndr/ndr_perfcount.c | 493 +++++++++++++++++++++++++++++++ source3/librpc/gen_ndr/ndr_perfcount.h | 26 ++ source3/librpc/gen_ndr/perfcount.h | 129 ++++++++ source3/librpc/idl/perfcount.idl | 172 +++++++++++ source3/printing/nt_printing.c | 9 +- source3/registry/reg_backend_printing.c | 39 ++- source3/registry/reg_objects.c | 9 +- source3/registry/reg_perfcount.c | 235 +++++++++------ source3/rpc_client/cli_reg.c | 62 ---- source3/rpc_parse/parse_misc.c | 42 --- source3/rpcclient/cmd_spoolss.c | 12 +- source3/services/services_db.c | 14 +- source3/utils/net_rpc_printer.c | 12 +- source3/utils/net_rpc_registry.c | 50 +++- 22 files changed, 1071 insertions(+), 536 deletions(-) delete mode 100644 source3/include/rpc_perfcount.h delete mode 100644 source3/include/rpc_perfcount_defs.h create mode 100644 source3/librpc/gen_ndr/ndr_perfcount.c create mode 100644 source3/librpc/gen_ndr/ndr_perfcount.h create mode 100644 source3/librpc/gen_ndr/perfcount.h create mode 100644 source3/librpc/idl/perfcount.idl delete mode 100644 source3/rpc_client/cli_reg.c Changeset truncated at 500 lines: diff --git a/examples/perfcounter/Makefile b/examples/perfcounter/Makefile index 925e2ea..bb7022e 100644 --- a/examples/perfcounter/Makefile +++ b/examples/perfcounter/Makefile @@ -15,10 +15,10 @@ # along with this program; if not, see <http://www.gnu.org/licenses/>. # -SAMBA_SRC_DIR=../../source -TDB_SRC_DIR=$(SAMBA_SRC_DIR)/tdb +SAMBA_SRC_DIR=../../source3 +TDB_SRC_DIR=$(SAMBA_SRC_DIR)/../lib/tdb -CFLAGS = -g -I$(SAMBA_SRC_DIR)/include -I$(TDB_SRC_DIR)/include +CFLAGS = -g -I$(SAMBA_SRC_DIR) -I$(SAMBA_SRC_DIR)/include -I$(TDB_SRC_DIR)/include -I../../ CC = gcc PROGS = perfcount diff --git a/examples/perfcounter/perf.h b/examples/perfcounter/perf.h index 2c24d31..7f06b05 100644 --- a/examples/perfcounter/perf.h +++ b/examples/perfcounter/perf.h @@ -36,8 +36,8 @@ #include <sys/time.h> #include <sys/wait.h> #include <limits.h> -#include "tdb.h" -#include <rpc_perfcount_defs.h> +#include <tdb.h> +#include "librpc/gen_ndr/perfcount.h" #include <sys/statfs.h> #include <sys/times.h> #include <sys/sysinfo.h> diff --git a/source3/Makefile.in b/source3/Makefile.in index 0a48b01..b552a9b 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -519,7 +519,8 @@ RPC_CLIENT_OBJ1 = rpc_client/cli_netlogon.o \ $(SCHANNEL_OBJ) LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \ - $(RPC_CLIENT_OBJ1) rpc_client/cli_reg.o $(RPC_CLIENT_OBJ) \ + $(RPC_CLIENT_OBJ1) \ + $(RPC_CLIENT_OBJ) \ rpc_client/cli_spoolss.o \ rpc_client/init_spoolss.o \ rpc_client/init_samr.o \ @@ -592,6 +593,7 @@ REG_FULL_OBJ = $(REG_SMBCONF_OBJ) \ $(REG_INIT_FULL_OBJ) \ registry/reg_eventlog.o \ registry/reg_perfcount.o \ + librpc/gen_ndr/ndr_perfcount.o \ registry/reg_util_legacy.o LIB_EVENTLOG_OBJ = lib/eventlog/eventlog.o @@ -1394,7 +1396,7 @@ samba3-idl:: @PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \ srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh \ librpc/idl/messaging.idl librpc/idl/libnetapi.idl librpc/idl/notify.idl \ - librpc/idl/wbint.idl + librpc/idl/wbint.idl librpc/idl/perfcount.idl ##################################################################### diff --git a/source3/include/includes.h b/source3/include/includes.h index 7112514..453c8b3 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -672,8 +672,7 @@ struct smb_iconv_convenience *lp_iconv_convenience(void *lp_ctx); #include "ntdomain.h" #include "reg_objects.h" #include "reg_db.h" -#include "rpc_perfcount.h" -#include "rpc_perfcount_defs.h" +#include "librpc/gen_ndr/perfcount.h" #include "librpc/gen_ndr/notify.h" #include "librpc/gen_ndr/xattr.h" #include "librpc/gen_ndr/messaging.h" diff --git a/source3/include/proto.h b/source3/include/proto.h index 25b04fe..c9f57b4 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1576,12 +1576,6 @@ void load_case_tables(void); void init_valid_table(void); size_t dos_PutUniCode(char *dst,const char *src, size_t len, bool null_terminate); char *skip_unibuf(char *src, size_t len); -int rpcstr_pull(char* dest, void *src, int dest_len, int src_len, int flags); -int rpcstr_pull_talloc(TALLOC_CTX *ctx, - char **dest, - void *src, - int src_len, - int flags); int rpcstr_push(void *dest, const char *src, size_t dest_len, int flags); int rpcstr_push_talloc(TALLOC_CTX *ctx, smb_ucs2_t **dest, const char *src); smb_ucs2_t toupper_w(smb_ucs2_t val); @@ -5126,7 +5120,7 @@ int regval_ctr_delvalue(struct regval_ctr *ctr, const char *name); struct regval_blob* regval_ctr_getvalue(struct regval_ctr *ctr, const char *name); uint32 regval_dword(struct regval_blob *val); -char *regval_sz(struct regval_blob *val); +const char *regval_sz(struct regval_blob *val); /* The following definitions come from registry/reg_perfcount.c */ @@ -5136,20 +5130,6 @@ uint32 reg_perfcount_get_last_counter(uint32 base_index); uint32 reg_perfcount_get_last_help(uint32 last_counter); uint32 reg_perfcount_get_counter_help(uint32 base_index, char **retbuf); uint32 reg_perfcount_get_counter_names(uint32 base_index, char **retbuf); -bool _reg_perfcount_get_counter_data(TDB_DATA key, TDB_DATA *data); -bool _reg_perfcount_get_instance_info(PERF_INSTANCE_DEFINITION *inst, - prs_struct *ps, - int instId, - PERF_OBJECT_TYPE *obj, - TDB_CONTEXT *names); -bool _reg_perfcount_add_instance(PERF_OBJECT_TYPE *obj, - prs_struct *ps, - int instInd, - TDB_CONTEXT *names); -uint32 reg_perfcount_get_perf_data_block(uint32 base_index, - prs_struct *ps, - PERF_DATA_BLOCK *block, - const char *object_ids); WERROR reg_perfcount_get_hkpd(prs_struct *ps, uint32 max_buf_size, uint32 *outbuf_len, const char *object_ids); /* The following definitions come from registry/reg_util.c */ @@ -5422,12 +5402,6 @@ NTSTATUS rpc_transport_smbd_init(TALLOC_CTX *mem_ctx, NTSTATUS rpc_transport_sock_init(TALLOC_CTX *mem_ctx, int fd, struct rpc_cli_transport **presult); -/* The following definitions come from rpc_client/cli_reg.c */ - -NTSTATUS rpccli_winreg_Connect(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - uint32 reg_type, uint32 access_mask, - struct policy_handle *reg_hnd); - /* The following definitions come from rpc_client/cli_samr.c */ NTSTATUS rpccli_samr_chgpasswd_user(struct rpc_pipe_client *cli, @@ -5648,8 +5622,6 @@ NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli, /* The following definitions come from rpc_parse/parse_misc.c */ bool smb_io_time(const char *desc, NTTIME *nttime, prs_struct *ps, int depth); -bool smb_io_system_time(const char *desc, prs_struct *ps, int depth, SYSTEMTIME *systime); -bool make_systemtime(SYSTEMTIME *systime, struct tm *unixtime); bool smb_io_uuid(const char *desc, struct GUID *uuid, prs_struct *ps, int depth); diff --git a/source3/include/rpc_perfcount.h b/source3/include/rpc_perfcount.h deleted file mode 100644 index 0cb2fdc..0000000 --- a/source3/include/rpc_perfcount.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef _RPC_PERFCOUNT_H -#define _RPC_PERFCOUNT_H -/* - * Unix SMB/CIFS implementation. - * Virtual Windows Registry Layer - * - * Copyright (C) Marcin Krzysztof Porwit 2005, - * Copyright (C) Gerald (Jerry) Carter 2005. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -typedef struct perf_counter_definition -{ - /* sizeof(PERF_COUNTER_DEFINITION) */ - uint32 ByteLength; - uint32 CounterNameTitleIndex; - uint32 CounterNameTitlePointer; - uint32 CounterHelpTitleIndex; - uint32 CounterHelpTitlePointer; - uint32 DefaultScale; - uint32 DetailLevel; - uint32 CounterType; - uint32 CounterSize; - uint32 CounterOffset; -} -PERF_COUNTER_DEFINITION; - -typedef struct perf_counter_block -{ - /* Total size of the data block, including all data plus this header */ - uint32 ByteLength; - uint8 *data; -} -PERF_COUNTER_BLOCK; - -typedef struct perf_instance_definition -{ - /* Total size of the instance definition, including the length of the terminated Name string */ - uint32 ByteLength; - uint32 ParentObjectTitleIndex; - uint32 ParentObjectTitlePointer; - uint32 UniqueID; - /* From the start of the PERF_INSTANCE_DEFINITION, the byte offset to the start of the Name string */ - uint32 NameOffset; - uint32 NameLength; - /* Unicode string containing the name for the instance */ - uint8 *data; - PERF_COUNTER_BLOCK counter_data; -} -PERF_INSTANCE_DEFINITION; - -typedef struct perf_object_type -{ - /* Total size of the object block, including all PERF_INSTANCE_DEFINITIONs, - PERF_COUNTER_DEFINITIONs and PERF_COUNTER_BLOCKs in bytes */ - uint32 TotalByteLength; - /* Size of this PERF_OBJECT_TYPE plus all PERF_COUNTER_DEFINITIONs in bytes */ - uint32 DefinitionLength; - /* Size of this PERF_OBJECT_TYPE */ - uint32 HeaderLength; - uint32 ObjectNameTitleIndex; - uint32 ObjectNameTitlePointer; - uint32 ObjectHelpTitleIndex; - uint32 ObjectHelpTitlePointer; - uint32 DetailLevel; - uint32 NumCounters; - uint32 DefaultCounter; - uint32 NumInstances; - uint32 CodePage; - uint64 PerfTime; - uint64 PerfFreq; - PERF_COUNTER_DEFINITION *counters; - PERF_INSTANCE_DEFINITION *instances; - PERF_COUNTER_BLOCK counter_data; -} -PERF_OBJECT_TYPE; - -/* PerfCounter Inner Buffer structs */ -typedef struct perf_data_block -{ - /* hardcoded to read "P.E.R.F" */ - uint16 Signature[4]; - uint32 LittleEndian; - /* both currently hardcoded to 1 */ - uint32 Version; - uint32 Revision; - /* bytes of PERF_OBJECT_TYPE data, does NOT include the PERF_DATA_BLOCK */ - uint32 TotalByteLength; - /* size of PERF_DATA_BLOCK including the uint8 *data */ - uint32 HeaderLength; - /* number of PERF_OBJECT_TYPE structures encoded */ - uint32 NumObjectTypes; - uint32 DefaultObject; - SYSTEMTIME SystemTime; - /* This will guarantee that we're on a 64-bit boundary before we encode - PerfTime, and having it there will make my offset math much easier. */ - uint32 Padding; - /* Now when I'm marshalling this, I'll need to call prs_align_uint64() - before I start encodint the uint64 structs */ - /* clock rate * seconds uptime */ - uint64 PerfTime; - /* The clock rate of the CPU */ - uint64 PerfFreq; - /* used for high-res timers -- for now PerfTime * 10e7 */ - uint64 PerfTime100nSec; - uint32 SystemNameLength; - uint32 SystemNameOffset; - /* The SystemName, in unicode, terminated */ - uint8* data; - PERF_OBJECT_TYPE *objects; -} -PERF_DATA_BLOCK; - -#endif /* _RPC_PERFCOUNT_H */ diff --git a/source3/include/rpc_perfcount_defs.h b/source3/include/rpc_perfcount_defs.h deleted file mode 100644 index 6c84c27..0000000 --- a/source3/include/rpc_perfcount_defs.h +++ /dev/null @@ -1,93 +0,0 @@ -#ifndef _RPC_PERFCOUNT_DEFS_H -#define _RPC_PERFCOUNT_DEFS_H -/* - * Unix SMB/CIFS implementation. - * Virtual Windows Registry Layer - * - * Copyright (C) Marcin Krzysztof Porwit 2005, - * Copyright (C) Gerald (Jerry) Carter 2005. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -/* - * The following #defines match what is in winperf.h. - * See that include file for more details, or look up - * "Performance Data Format" on MSDN - * - * Rather than including them in rpc_perfcount.h, they - * were broken out into a separate .h file so that they - * can be included by other programs that need this info - * without pulling in everything else samba-related. - */ - -#define PERF_NO_INSTANCES -1 -#define PERF_NO_UNIQUE_ID -1 - -/* These determine the data size */ -#define PERF_SIZE_DWORD 0x00000000 -#define PERF_SIZE_LARGE 0x00000100 -#define PERF_SIZE_ZERO 0x00000200 -#define PERF_SIZE_VARIABLE_LEN 0x00000300 - -/* These determine the usage of the counter */ -#define PERF_TYPE_NUMBER 0x00000000 -#define PERF_TYPE_COUNTER 0x00000400 -#define PERF_TYPE_TEXT 0x00000800 -#define PERF_TYPE_ZERO 0x00000C00 - -/* If PERF_TYPE_NUMBER was selected, these provide display information */ -#define PERF_NUMBER_HEX 0x00000000 -#define PERF_NUMBER_DECIMAL 0x00010000 -#define PERF_NUMBER_DEC_1000 0x00020000 - -/* If PERF_TYPE_COUNTER was selected, these provide display information */ -#define PERF_COUNTER_VALUE 0x00000000 -#define PERF_COUNTER_RATE 0x00010000 -#define PERF_COUNTER_FRACTION 0x00020000 -#define PERF_COUNTER_BASE 0x00030000 -#define PERF_COUNTER_ELAPSED 0x00040000 -#define PERF_COUNTER_QUEUELEN 0x00050000 -#define PERF_COUNTER_HISTOGRAM 0x00060000 -#define PERF_COUNTER_PRECISION 0x00070000 - -/* If PERF_TYPE_TEXT was selected, these provide display information */ -#define PERF_TEXT_UNICODE 0x00000000 -#define PERF_TEXT_ASCII 0x00010000 - -/* These provide information for which tick count to use when computing elapsed interval */ -#define PERF_TIMER_TICK 0x00000000 -#define PERF_TIMER_100NS 0x00100000 -#define PERF_OBJECT_TIMER 0x00200000 - -/* These affect how the data is manipulated prior to being displayed */ -#define PERF_DELTA_COUNTER 0x00400000 -#define PERF_DELTA_BASE 0x00800000 -#define PERF_INVERSE_COUNTER 0x01000000 -#define PERF_MULTI_COUNTER 0x02000000 - -/* These determine if any text gets added when the value is displayed */ -#define PERF_DISPLAY_NO_SUFFIX 0x00000000 -#define PERF_DISPLAY_PER_SEC 0x10000000 -#define PERF_DISPLAY_PERCENT 0x20000000 -#define PERF_DISPLAY_SECONDS 0x30000000 -#define PERF_DISPLAY_NOSHOW 0x40000000 - -/* These determine the DetailLevel of the counter */ -#define PERF_DETAIL_NOVICE 100 -#define PERF_DETAIL_ADVANCED 200 -#define PERF_DETAIL_EXPERT 300 -#define PERF_DETAIL_WIZARD 400 - -#endif /* _RPC_PERFCOUNT_DEFS_H */ diff --git a/source3/lib/util_unistr.c b/source3/lib/util_unistr.c index 7d80b3c..f53ef94 100644 --- a/source3/lib/util_unistr.c +++ b/source3/lib/util_unistr.c @@ -256,41 +256,6 @@ char *skip_unibuf(char *src, size_t len) return src; } -/* Copy a string from little-endian or big-endian unicode source (depending - * on flags) to internal samba format destination - */ - -int rpcstr_pull(char* dest, void *src, int dest_len, int src_len, int flags) -{ - if (!src) { - dest[0] = 0; - return 0; - } - if(dest_len==-1) { - dest_len=MAXUNI-3; - } - return pull_ucs2(NULL, dest, src, dest_len, src_len, flags|STR_UNICODE|STR_NOALIGN); -} - -/* Copy a string from little-endian or big-endian unicode source (depending - * on flags) to internal samba format destination. Allocates on talloc ctx. - */ - -int rpcstr_pull_talloc(TALLOC_CTX *ctx, - char **dest, - void *src, - int src_len, - int flags) -{ - return pull_ucs2_base_talloc(ctx, - NULL, - dest, - src, - src_len, - flags|STR_UNICODE|STR_NOALIGN); - -} - /* Converts a string from internal samba format to unicode */ diff --git a/source3/librpc/gen_ndr/ndr_perfcount.c b/source3/librpc/gen_ndr/ndr_perfcount.c new file mode 100644 index 0000000..9944434 --- /dev/null +++ b/source3/librpc/gen_ndr/ndr_perfcount.c @@ -0,0 +1,493 @@ +/* parser auto-generated by pidl */ + +#include "includes.h" +#include "librpc/gen_ndr/ndr_perfcount.h" + +static enum ndr_err_code ndr_push_SYSTEMTIME(struct ndr_push *ndr, int ndr_flags, const struct SYSTEMTIME *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 2)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->dayofweek)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->milliseconds)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_SYSTEMTIME(struct ndr_pull *ndr, int ndr_flags, struct SYSTEMTIME *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 2)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dayofweek)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->milliseconds)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_SYSTEMTIME(struct ndr_print *ndr, const char *name, const struct SYSTEMTIME *r) +{ + ndr_print_struct(ndr, name, "SYSTEMTIME"); + ndr->depth++; + ndr_print_uint16(ndr, "year", r->year); + ndr_print_uint16(ndr, "month", r->month); + ndr_print_uint16(ndr, "dayofweek", r->dayofweek); + ndr_print_uint16(ndr, "day", r->day); + ndr_print_uint16(ndr, "hour", r->hour); + ndr_print_uint16(ndr, "minute", r->minute); + ndr_print_uint16(ndr, "second", r->second); + ndr_print_uint16(ndr, "milliseconds", r->milliseconds); + ndr->depth--; +} + +_PUBLIC_ enum ndr_err_code ndr_push_PERF_COUNTER_DEFINITION(struct ndr_push *ndr, int ndr_flags, const struct PERF_COUNTER_DEFINITION *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ByteLength)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->CounterNameTitleIndex)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->CounterNameTitlePointer)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->CounterHelpTitleIndex)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->CounterHelpTitlePointer)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DefaultScale)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DetailLevel)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->CounterType)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->CounterSize)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->CounterOffset)); -- Samba Shared Repository