From 7557964bee3c868181fd74e9448833fbfc95426d Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Fri, 30 Nov 2007 01:44:44 +0100 Subject: Merge recent wkssvc changes from samba4. Guenther (This used to be commit 7539fb4c840a9b4429f347cebbda9c631746267a) --- source3/librpc/gen_ndr/cli_wkssvc.c | 319 +- source3/librpc/gen_ndr/cli_wkssvc.h | 50 +- source3/librpc/gen_ndr/ndr_wkssvc.c | 9766 ++++++++++++++++++++++++++++------- source3/librpc/gen_ndr/ndr_wkssvc.h | 99 +- source3/librpc/gen_ndr/srv_wkssvc.c | 396 +- source3/librpc/gen_ndr/srv_wkssvc.h | 44 +- source3/librpc/gen_ndr/wkssvc.h | 581 ++- source3/librpc/idl/wkssvc.idl | 543 +- source3/rpc_server/srv_wkssvc_nt.c | 54 +- 9 files changed, 9334 insertions(+), 2518 deletions(-) diff --git a/source3/librpc/gen_ndr/cli_wkssvc.c b/source3/librpc/gen_ndr/cli_wkssvc.c index 16b11277a2..8c58b6dbee 100644 --- a/source3/librpc/gen_ndr/cli_wkssvc.c +++ b/source3/librpc/gen_ndr/cli_wkssvc.c @@ -72,17 +72,16 @@ NTSTATUS rpccli_wkssvc_NetWkstaSetInfo(struct rpc_pipe_client *cli, TALLOC_CTX * return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, union WKS_USER_ENUM_UNION *users, uint32_t prefmaxlen, uint32_t *entriesread, uint32_t *totalentries, uint32_t *resumehandle) +NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, struct wkssvc_NetWkstaEnumUsersInfo *info, uint32_t prefmaxlen, uint32_t *entries_read, uint32_t *resume_handle) { struct wkssvc_NetWkstaEnumUsers r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; - r.in.level = level; - r.in.users = users; + r.in.info = info; r.in.prefmaxlen = prefmaxlen; - r.in.resumehandle = resumehandle; + r.in.resume_handle = resume_handle; if (DEBUGLEVEL >= 10) NDR_PRINT_IN_DEBUG(wkssvc_NetWkstaEnumUsers, &r); @@ -101,28 +100,27 @@ NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers(struct rpc_pipe_client *cli, TALLOC_CTX } /* Return variables */ - *users = *r.out.users; - if (entriesread && r.out.entriesread) { - *entriesread = *r.out.entriesread; - } - if (totalentries && r.out.totalentries) { - *totalentries = *r.out.totalentries; + *info = *r.out.info; + *entries_read = *r.out.entries_read; + if (resume_handle && r.out.resume_handle) { + *resume_handle = *r.out.resume_handle; } - *resumehandle = *r.out.resumehandle; /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRWKSTAUSERGETINFO(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrWkstaUserGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *unknown, uint32_t level, union wkssvc_NetrWkstaUserInfo *info) { - struct WKSSVC_NETRWKSTAUSERGETINFO r; + struct wkssvc_NetrWkstaUserGetInfo r; NTSTATUS status; /* In parameters */ + r.in.unknown = unknown; + r.in.level = level; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTAUSERGETINFO, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaUserGetInfo, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTAUSERGETINFO, &r); @@ -131,27 +129,32 @@ NTSTATUS rpccli_WKSSVC_NETRWKSTAUSERGETINFO(struct rpc_pipe_client *cli, TALLOC_ } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTAUSERGETINFO, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaUserGetInfo, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *info = *r.out.info; /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRWKSTAUSERSETINFO(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrWkstaUserSetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *unknown, uint32_t level, union wkssvc_NetrWkstaUserInfo *info, uint32_t *parm_err) { - struct WKSSVC_NETRWKSTAUSERSETINFO r; + struct wkssvc_NetrWkstaUserSetInfo r; NTSTATUS status; /* In parameters */ + r.in.unknown = unknown; + r.in.level = level; + r.in.info = info; + r.in.parm_err = parm_err; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTAUSERSETINFO, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaUserSetInfo, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTAUSERSETINFO, &r); @@ -160,27 +163,29 @@ NTSTATUS rpccli_WKSSVC_NETRWKSTAUSERSETINFO(struct rpc_pipe_client *cli, TALLOC_ } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTAUSERSETINFO, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaUserSetInfo, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + if (parm_err && r.out.parm_err) { + *parm_err = *r.out.parm_err; + } /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t *level, union wkssvc_NetWkstaTransportCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle) +NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, struct wkssvc_NetWkstaTransportInfo *info, uint32_t max_buffer, uint32_t *total_entries, uint32_t *resume_handle) { struct wkssvc_NetWkstaTransportEnum r; NTSTATUS status; /* In parameters */ r.in.server_name = server_name; - r.in.level = level; - r.in.ctr = ctr; + r.in.info = info; r.in.max_buffer = max_buffer; r.in.resume_handle = resume_handle; @@ -201,26 +206,29 @@ NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum(struct rpc_pipe_client *cli, TALLOC } /* Return variables */ - *level = *r.out.level; - *ctr = *r.out.ctr; - if (totalentries && r.out.totalentries) { - *totalentries = *r.out.totalentries; + *info = *r.out.info; + *total_entries = *r.out.total_entries; + if (resume_handle && r.out.resume_handle) { + *resume_handle = *r.out.resume_handle; } - *resume_handle = *r.out.resume_handle; /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRWKSTATRANSPORTADD(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrWkstaTransportAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, struct wkssvc_NetWkstaTransportInfo0 *info0, uint32_t *parm_err) { - struct WKSSVC_NETRWKSTATRANSPORTADD r; + struct wkssvc_NetrWkstaTransportAdd r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.level = level; + r.in.info0 = info0; + r.in.parm_err = parm_err; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTATRANSPORTADD, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaTransportAdd, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTATRANSPORTADD, &r); @@ -229,27 +237,33 @@ NTSTATUS rpccli_WKSSVC_NETRWKSTATRANSPORTADD(struct rpc_pipe_client *cli, TALLOC } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTATRANSPORTADD, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaTransportAdd, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + if (parm_err && r.out.parm_err) { + *parm_err = *r.out.parm_err; + } /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRWKSTATRANSPORTDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrWkstaTransportDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *transport_name, uint32_t unknown3) { - struct WKSSVC_NETRWKSTATRANSPORTDEL r; + struct wkssvc_NetrWkstaTransportDel r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.transport_name = transport_name; + r.in.unknown3 = unknown3; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTATRANSPORTDEL, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaTransportDel, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRWKSTATRANSPORTDEL, &r); @@ -258,7 +272,7 @@ NTSTATUS rpccli_WKSSVC_NETRWKSTATRANSPORTDEL(struct rpc_pipe_client *cli, TALLOC } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTATRANSPORTDEL, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaTransportDel, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -270,15 +284,19 @@ NTSTATUS rpccli_WKSSVC_NETRWKSTATRANSPORTDEL(struct rpc_pipe_client *cli, TALLOC return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRUSEADD(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrUseAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, union wkssvc_NetrUseGetInfoCtr *ctr, uint32_t *parm_err) { - struct WKSSVC_NETRUSEADD r; + struct wkssvc_NetrUseAdd r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.level = level; + r.in.ctr = ctr; + r.in.parm_err = parm_err; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEADD, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseAdd, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEADD, &r); @@ -287,27 +305,33 @@ NTSTATUS rpccli_WKSSVC_NETRUSEADD(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEADD, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseAdd, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + if (parm_err && r.out.parm_err) { + *parm_err = *r.out.parm_err; + } /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRUSEGETINFO(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrUseGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *use_name, uint32_t level, union wkssvc_NetrUseGetInfoCtr *ctr) { - struct WKSSVC_NETRUSEGETINFO r; + struct wkssvc_NetrUseGetInfo r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.use_name = use_name; + r.in.level = level; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEGETINFO, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseGetInfo, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEGETINFO, &r); @@ -316,27 +340,31 @@ NTSTATUS rpccli_WKSSVC_NETRUSEGETINFO(struct rpc_pipe_client *cli, TALLOC_CTX *m } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEGETINFO, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseGetInfo, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *ctr = *r.out.ctr; /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRUSEDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrUseDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *use_name, uint32_t force_cond) { - struct WKSSVC_NETRUSEDEL r; + struct wkssvc_NetrUseDel r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.use_name = use_name; + r.in.force_cond = force_cond; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEDEL, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseDel, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEDEL, &r); @@ -345,7 +373,7 @@ NTSTATUS rpccli_WKSSVC_NETRUSEDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEDEL, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseDel, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -357,15 +385,19 @@ NTSTATUS rpccli_WKSSVC_NETRUSEDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRUSEENUM(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrUseEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, struct wkssvc_NetrUseEnumInfo *info, uint32_t prefmaxlen, uint32_t *entries_read, uint32_t *resume_handle) { - struct WKSSVC_NETRUSEENUM r; + struct wkssvc_NetrUseEnum r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.info = info; + r.in.prefmaxlen = prefmaxlen; + r.in.resume_handle = resume_handle; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEENUM, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseEnum, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRUSEENUM, &r); @@ -374,27 +406,37 @@ NTSTATUS rpccli_WKSSVC_NETRUSEENUM(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEENUM, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseEnum, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *info = *r.out.info; + *entries_read = *r.out.entries_read; + if (resume_handle && r.out.resume_handle) { + *resume_handle = *r.out.resume_handle; + } /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRMESSAGEBUFFERSEND(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrMessageBufferSend(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *message_name, const char *message_sender_name, uint8_t *message_buffer, uint32_t message_size) { - struct WKSSVC_NETRMESSAGEBUFFERSEND r; + struct wkssvc_NetrMessageBufferSend r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.message_name = message_name; + r.in.message_sender_name = message_sender_name; + r.in.message_buffer = message_buffer; + r.in.message_size = message_size; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRMESSAGEBUFFERSEND, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrMessageBufferSend, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRMESSAGEBUFFERSEND, &r); @@ -403,7 +445,7 @@ NTSTATUS rpccli_WKSSVC_NETRMESSAGEBUFFERSEND(struct rpc_pipe_client *cli, TALLOC } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRMESSAGEBUFFERSEND, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrMessageBufferSend, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -415,15 +457,19 @@ NTSTATUS rpccli_WKSSVC_NETRMESSAGEBUFFERSEND(struct rpc_pipe_client *cli, TALLOC return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrWorkstationStatisticsGet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *unknown2, uint32_t unknown3, uint32_t unknown4, struct wkssvc_NetrWorkstationStatistics **info) { - struct WKSSVC_NETRWORKSTATIONSTATISTICSGET r; + struct wkssvc_NetrWorkstationStatisticsGet r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.unknown2 = unknown2; + r.in.unknown3 = unknown3; + r.in.unknown4 = unknown4; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWORKSTATIONSTATISTICSGET, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWorkstationStatisticsGet, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET, &r); @@ -432,27 +478,29 @@ NTSTATUS rpccli_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct rpc_pipe_client *cli, } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWORKSTATIONSTATISTICSGET, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWorkstationStatisticsGet, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *info = *r.out.info; /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEADD(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrLogonDomainNameAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *domain_name) { - struct WKSSVC_NETRLOGONDOMAINNAMEADD r; + struct wkssvc_NetrLogonDomainNameAdd r; NTSTATUS status; /* In parameters */ + r.in.domain_name = domain_name; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEADD, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrLogonDomainNameAdd, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRLOGONDOMAINNAMEADD, &r); @@ -461,7 +509,7 @@ NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEADD(struct rpc_pipe_client *cli, TALLO } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEADD, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrLogonDomainNameAdd, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -473,15 +521,16 @@ NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEADD(struct rpc_pipe_client *cli, TALLO return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrLogonDomainNameDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *domain_name) { - struct WKSSVC_NETRLOGONDOMAINNAMEDEL r; + struct wkssvc_NetrLogonDomainNameDel r; NTSTATUS status; /* In parameters */ + r.in.domain_name = domain_name; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEDEL, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrLogonDomainNameDel, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL, &r); @@ -490,7 +539,7 @@ NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct rpc_pipe_client *cli, TALLO } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEDEL, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrLogonDomainNameDel, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -502,15 +551,21 @@ NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct rpc_pipe_client *cli, TALLO return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrJoinDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *account_ou, const char *Account, const char *password, uint32_t join_flags) { - struct WKSSVC_NETRJOINDOMAIN r; + struct wkssvc_NetrJoinDomain r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.domain_name = domain_name; + r.in.account_ou = account_ou; + r.in.Account = Account; + r.in.password = password; + r.in.join_flags = join_flags; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRJOINDOMAIN, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrJoinDomain, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRJOINDOMAIN, &r); @@ -519,7 +574,7 @@ NTSTATUS rpccli_WKSSVC_NETRJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *m } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRJOINDOMAIN, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrJoinDomain, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -531,15 +586,19 @@ NTSTATUS rpccli_WKSSVC_NETRJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *m return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRUNJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrUnjoinDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *Account, const char *password, uint32_t unjoin_flags) { - struct WKSSVC_NETRUNJOINDOMAIN r; + struct wkssvc_NetrUnjoinDomain r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.Account = Account; + r.in.password = password; + r.in.unjoin_flags = unjoin_flags; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUNJOINDOMAIN, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUnjoinDomain, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRUNJOINDOMAIN, &r); @@ -548,7 +607,7 @@ NTSTATUS rpccli_WKSSVC_NETRUNJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUNJOINDOMAIN, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUnjoinDomain, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -560,15 +619,20 @@ NTSTATUS rpccli_WKSSVC_NETRUNJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *NewMachineName, const char *Account, const char *password, uint32_t RenameOptions) { - struct WKSSVC_NETRRENAMEMACHINEINDOMAIN r; + struct wkssvc_NetrRenameMachineInDomain r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.NewMachineName = NewMachineName; + r.in.Account = Account; + r.in.password = password; + r.in.RenameOptions = RenameOptions; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRRENAMEMACHINEINDOMAIN, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrRenameMachineInDomain, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN, &r); @@ -577,7 +641,7 @@ NTSTATUS rpccli_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct rpc_pipe_client *cli, TA } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRRENAMEMACHINEINDOMAIN, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrRenameMachineInDomain, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -589,15 +653,20 @@ NTSTATUS rpccli_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct rpc_pipe_client *cli, TA return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrValidateName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *name, const char *Account, const char *Password, enum wkssvc_NetValidateNameType name_type) { - struct WKSSVC_NETRVALIDATENAME r; + struct wkssvc_NetrValidateName r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.name = name; + r.in.Account = Account; + r.in.Password = Password; + r.in.name_type = name_type; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRVALIDATENAME, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrValidateName, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRVALIDATENAME, &r); @@ -606,7 +675,7 @@ NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME(struct rpc_pipe_client *cli, TALLOC_CTX } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRVALIDATENAME, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrValidateName, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -618,15 +687,17 @@ NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME(struct rpc_pipe_client *cli, TALLOC_CTX return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRGETJOININFORMATION(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrGetJoinInformation(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char **name_buffer, enum wkssvc_NetJoinStatus *name_type) { - struct WKSSVC_NETRGETJOININFORMATION r; + struct wkssvc_NetrGetJoinInformation r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.name_buffer = name_buffer; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRGETJOININFORMATION, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinInformation, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOININFORMATION, &r); @@ -635,27 +706,34 @@ NTSTATUS rpccli_WKSSVC_NETRGETJOININFORMATION(struct rpc_pipe_client *cli, TALLO } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRGETJOININFORMATION, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrGetJoinInformation, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *name_buffer = *r.out.name_buffer; + *name_type = *r.out.name_type; /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRGETJOINABLEOUS(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrGetJoinableOus(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *Account, const char *unknown, uint32_t *num_ous, const char ***ous) { - struct WKSSVC_NETRGETJOINABLEOUS r; + struct wkssvc_NetrGetJoinableOus r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.domain_name = domain_name; + r.in.Account = Account; + r.in.unknown = unknown; + r.in.num_ous = num_ous; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRGETJOINABLEOUS, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinableOus, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOINABLEOUS, &r); @@ -664,19 +742,21 @@ NTSTATUS rpccli_WKSSVC_NETRGETJOINABLEOUS(struct rpc_pipe_client *cli, TALLOC_CT } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRGETJOINABLEOUS, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrGetJoinableOus, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *num_ous = *r.out.num_ous; + memcpy(ous, r.out.ous, *r.in.num_ous); /* Return result */ return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_wkssvc_NetrJoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *account_name, const char *admin_account, struct wkssvc_PasswordBuffer *encrypted_password, uint32_t join_flags) +NTSTATUS rpccli_wkssvc_NetrJoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *account_ou, const char *admin_account, struct wkssvc_PasswordBuffer *encrypted_password, uint32_t join_flags) { struct wkssvc_NetrJoinDomain2 r; NTSTATUS status; @@ -684,7 +764,7 @@ NTSTATUS rpccli_wkssvc_NetrJoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX * /* In parameters */ r.in.server_name = server_name; r.in.domain_name = domain_name; - r.in.account_name = account_name; + r.in.account_ou = account_ou; r.in.admin_account = admin_account; r.in.encrypted_password = encrypted_password; r.in.join_flags = join_flags; @@ -778,15 +858,20 @@ NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain2(struct rpc_pipe_client *cli, T return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrValidateName2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *name, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, enum wkssvc_NetValidateNameType name_type) { - struct WKSSVC_NETRVALIDATENAME2 r; + struct wkssvc_NetrValidateName2 r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.name = name; + r.in.Account = Account; + r.in.EncryptedPassword = EncryptedPassword; + r.in.name_type = name_type; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRVALIDATENAME2, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrValidateName2, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRVALIDATENAME2, &r); @@ -795,7 +880,7 @@ NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME2(struct rpc_pipe_client *cli, TALLOC_CTX } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRVALIDATENAME2, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrValidateName2, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -807,15 +892,20 @@ NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME2(struct rpc_pipe_client *cli, TALLOC_CTX return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRGETJOINABLEOUS2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrGetJoinableOus2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t *num_ous, const char ***ous) { - struct WKSSVC_NETRGETJOINABLEOUS2 r; + struct wkssvc_NetrGetJoinableOus2 r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.domain_name = domain_name; + r.in.Account = Account; + r.in.EncryptedPassword = EncryptedPassword; + r.in.num_ous = num_ous; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRGETJOINABLEOUS2, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinableOus2, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRGETJOINABLEOUS2, &r); @@ -824,13 +914,15 @@ NTSTATUS rpccli_WKSSVC_NETRGETJOINABLEOUS2(struct rpc_pipe_client *cli, TALLOC_C } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRGETJOINABLEOUS2, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrGetJoinableOus2, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *num_ous = *r.out.num_ous; + memcpy(ous, r.out.ous, *r.in.num_ous); /* Return result */ return werror_to_ntstatus(r.out.result); @@ -904,15 +996,20 @@ NTSTATUS rpccli_wkssvc_NetrRemoveAlternateComputerName(struct rpc_pipe_client *c return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrSetPrimaryComputername(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *primary_name, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t Reserved) { - struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME r; + struct wkssvc_NetrSetPrimaryComputername r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.primary_name = primary_name; + r.in.Account = Account; + r.in.EncryptedPassword = EncryptedPassword; + r.in.Reserved = Reserved; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRSETPRIMARYCOMPUTERNAME, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrSetPrimaryComputername, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, &r); @@ -921,7 +1018,7 @@ NTSTATUS rpccli_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct rpc_pipe_client *cli, T } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRSETPRIMARYCOMPUTERNAME, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrSetPrimaryComputername, &r); if (NT_STATUS_IS_ERR(status)) { return status; @@ -933,15 +1030,18 @@ NTSTATUS rpccli_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct rpc_pipe_client *cli, T return werror_to_ntstatus(r.out.result); } -NTSTATUS rpccli_WKSSVC_NETRENUMERATECOMPUTERNAMES(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx) +NTSTATUS rpccli_wkssvc_NetrEnumerateComputerNames(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, enum wkssvc_ComputerNameType name_type, uint32_t Reserved, struct wkssvc_ComputerNamesCtr **ctr) { - struct WKSSVC_NETRENUMERATECOMPUTERNAMES r; + struct wkssvc_NetrEnumerateComputerNames r; NTSTATUS status; /* In parameters */ + r.in.server_name = server_name; + r.in.name_type = name_type; + r.in.Reserved = Reserved; if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRENUMERATECOMPUTERNAMES, &r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrEnumerateComputerNames, &r); status = cli_do_rpc_ndr(cli, mem_ctx, PI_WKSSVC, &ndr_table_wkssvc, NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES, &r); @@ -950,13 +1050,14 @@ NTSTATUS rpccli_WKSSVC_NETRENUMERATECOMPUTERNAMES(struct rpc_pipe_client *cli, T } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRENUMERATECOMPUTERNAMES, &r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrEnumerateComputerNames, &r); if (NT_STATUS_IS_ERR(status)) { return status; } /* Return variables */ + *ctr = *r.out.ctr; /* Return result */ return werror_to_ntstatus(r.out.result); diff --git a/source3/librpc/gen_ndr/cli_wkssvc.h b/source3/librpc/gen_ndr/cli_wkssvc.h index 1cbe0dd23e..62deb10c21 100644 --- a/source3/librpc/gen_ndr/cli_wkssvc.h +++ b/source3/librpc/gen_ndr/cli_wkssvc.h @@ -3,33 +3,33 @@ #define __CLI_WKSSVC__ NTSTATUS rpccli_wkssvc_NetWkstaGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, union wkssvc_NetWkstaInfo *info); NTSTATUS rpccli_wkssvc_NetWkstaSetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, union wkssvc_NetWkstaInfo *info, uint32_t *parm_error); -NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, union WKS_USER_ENUM_UNION *users, uint32_t prefmaxlen, uint32_t *entriesread, uint32_t *totalentries, uint32_t *resumehandle); -NTSTATUS rpccli_WKSSVC_NETRWKSTAUSERGETINFO(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRWKSTAUSERSETINFO(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t *level, union wkssvc_NetWkstaTransportCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle); -NTSTATUS rpccli_WKSSVC_NETRWKSTATRANSPORTADD(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRWKSTATRANSPORTDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRUSEADD(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRUSEGETINFO(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRUSEDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRUSEENUM(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRMESSAGEBUFFERSEND(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEADD(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRUNJOINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRGETJOININFORMATION(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRGETJOINABLEOUS(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_wkssvc_NetrJoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *account_name, const char *admin_account, struct wkssvc_PasswordBuffer *encrypted_password, uint32_t join_flags); +NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, struct wkssvc_NetWkstaEnumUsersInfo *info, uint32_t prefmaxlen, uint32_t *entries_read, uint32_t *resume_handle); +NTSTATUS rpccli_wkssvc_NetrWkstaUserGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *unknown, uint32_t level, union wkssvc_NetrWkstaUserInfo *info); +NTSTATUS rpccli_wkssvc_NetrWkstaUserSetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *unknown, uint32_t level, union wkssvc_NetrWkstaUserInfo *info, uint32_t *parm_err); +NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, struct wkssvc_NetWkstaTransportInfo *info, uint32_t max_buffer, uint32_t *total_entries, uint32_t *resume_handle); +NTSTATUS rpccli_wkssvc_NetrWkstaTransportAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, struct wkssvc_NetWkstaTransportInfo0 *info0, uint32_t *parm_err); +NTSTATUS rpccli_wkssvc_NetrWkstaTransportDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *transport_name, uint32_t unknown3); +NTSTATUS rpccli_wkssvc_NetrUseAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, uint32_t level, union wkssvc_NetrUseGetInfoCtr *ctr, uint32_t *parm_err); +NTSTATUS rpccli_wkssvc_NetrUseGetInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *use_name, uint32_t level, union wkssvc_NetrUseGetInfoCtr *ctr); +NTSTATUS rpccli_wkssvc_NetrUseDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *use_name, uint32_t force_cond); +NTSTATUS rpccli_wkssvc_NetrUseEnum(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, struct wkssvc_NetrUseEnumInfo *info, uint32_t prefmaxlen, uint32_t *entries_read, uint32_t *resume_handle); +NTSTATUS rpccli_wkssvc_NetrMessageBufferSend(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *message_name, const char *message_sender_name, uint8_t *message_buffer, uint32_t message_size); +NTSTATUS rpccli_wkssvc_NetrWorkstationStatisticsGet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *unknown2, uint32_t unknown3, uint32_t unknown4, struct wkssvc_NetrWorkstationStatistics **info); +NTSTATUS rpccli_wkssvc_NetrLogonDomainNameAdd(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *domain_name); +NTSTATUS rpccli_wkssvc_NetrLogonDomainNameDel(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *domain_name); +NTSTATUS rpccli_wkssvc_NetrJoinDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *account_ou, const char *Account, const char *password, uint32_t join_flags); +NTSTATUS rpccli_wkssvc_NetrUnjoinDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *Account, const char *password, uint32_t unjoin_flags); +NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *NewMachineName, const char *Account, const char *password, uint32_t RenameOptions); +NTSTATUS rpccli_wkssvc_NetrValidateName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *name, const char *Account, const char *Password, enum wkssvc_NetValidateNameType name_type); +NTSTATUS rpccli_wkssvc_NetrGetJoinInformation(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char **name_buffer, enum wkssvc_NetJoinStatus *name_type); +NTSTATUS rpccli_wkssvc_NetrGetJoinableOus(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *Account, const char *unknown, uint32_t *num_ous, const char ***ous); +NTSTATUS rpccli_wkssvc_NetrJoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *account_ou, const char *admin_account, struct wkssvc_PasswordBuffer *encrypted_password, uint32_t join_flags); NTSTATUS rpccli_wkssvc_NetrUnjoinDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *account, struct wkssvc_PasswordBuffer *encrypted_password, uint32_t unjoin_flags); NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *NewMachineName, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t RenameOptions); -NTSTATUS rpccli_WKSSVC_NETRVALIDATENAME2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRGETJOINABLEOUS2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); +NTSTATUS rpccli_wkssvc_NetrValidateName2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *name, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, enum wkssvc_NetValidateNameType name_type); +NTSTATUS rpccli_wkssvc_NetrGetJoinableOus2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *domain_name, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t *num_ous, const char ***ous); NTSTATUS rpccli_wkssvc_NetrAddAlternateComputerName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *NewAlternateMachineName, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t Reserved); NTSTATUS rpccli_wkssvc_NetrRemoveAlternateComputerName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *AlternateMachineNameToRemove, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t Reserved); -NTSTATUS rpccli_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); -NTSTATUS rpccli_WKSSVC_NETRENUMERATECOMPUTERNAMES(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx); +NTSTATUS rpccli_wkssvc_NetrSetPrimaryComputername(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, const char *primary_name, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t Reserved); +NTSTATUS rpccli_wkssvc_NetrEnumerateComputerNames(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name, enum wkssvc_ComputerNameType name_type, uint32_t Reserved, struct wkssvc_ComputerNamesCtr **ctr); #endif /* __CLI_WKSSVC__ */ diff --git a/source3/librpc/gen_ndr/ndr_wkssvc.c b/source3/librpc/gen_ndr/ndr_wkssvc.c index 026a446e8c..c3a1f706cd 100644 --- a/source3/librpc/gen_ndr/ndr_wkssvc.c +++ b/source3/librpc/gen_ndr/ndr_wkssvc.c @@ -4,11 +4,12 @@ #include "librpc/gen_ndr/ndr_wkssvc.h" #include "librpc/gen_ndr/ndr_srvsvc.h" +#include "librpc/gen_ndr/ndr_lsa.h" static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo100(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo100 *r) { if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->platform_id)); + NDR_CHECK(ndr_push_srvsvc_PlatformId(ndr, NDR_SCALARS, r->platform_id)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version_major)); @@ -39,7 +40,7 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo100(struct ndr_pull *ndr, i TALLOC_CTX *_mem_save_domain_name_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->platform_id)); + NDR_CHECK(ndr_pull_srvsvc_PlatformId(ndr, NDR_SCALARS, &r->platform_id)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); if (_ptr_server_name) { NDR_PULL_ALLOC(ndr, r->server_name); @@ -88,7 +89,7 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo100(struct ndr_print *ndr, const char { ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo100"); ndr->depth++; - ndr_print_uint16(ndr, "platform_id", r->platform_id); + ndr_print_srvsvc_PlatformId(ndr, "platform_id", r->platform_id); ndr_print_ptr(ndr, "server_name", r->server_name); ndr->depth++; if (r->server_name) { @@ -110,7 +111,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo101(struct ndr_push *ndr, i { if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->platform_id)); + NDR_CHECK(ndr_push_srvsvc_PlatformId(ndr, NDR_SCALARS, r->platform_id)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version_major)); @@ -150,7 +151,7 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo101(struct ndr_pull *ndr, i TALLOC_CTX *_mem_save_lan_root_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->platform_id)); + NDR_CHECK(ndr_pull_srvsvc_PlatformId(ndr, NDR_SCALARS, &r->platform_id)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); if (_ptr_server_name) { NDR_PULL_ALLOC(ndr, r->server_name); @@ -217,7 +218,7 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo101(struct ndr_print *ndr, const char { ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo101"); ndr->depth++; - ndr_print_uint16(ndr, "platform_id", r->platform_id); + ndr_print_srvsvc_PlatformId(ndr, "platform_id", r->platform_id); ndr_print_ptr(ndr, "server_name", r->server_name); ndr->depth++; if (r->server_name) { @@ -245,7 +246,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo102(struct ndr_push *ndr, i { if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->platform_id)); + NDR_CHECK(ndr_push_srvsvc_PlatformId(ndr, NDR_SCALARS, r->platform_id)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version_major)); @@ -286,7 +287,7 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo102(struct ndr_pull *ndr, i TALLOC_CTX *_mem_save_lan_root_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->platform_id)); + NDR_CHECK(ndr_pull_srvsvc_PlatformId(ndr, NDR_SCALARS, &r->platform_id)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); if (_ptr_server_name) { NDR_PULL_ALLOC(ndr, r->server_name); @@ -354,7 +355,7 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo102(struct ndr_print *ndr, const char { ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo102"); ndr->depth++; - ndr_print_uint16(ndr, "platform_id", r->platform_id); + ndr_print_srvsvc_PlatformId(ndr, "platform_id", r->platform_id); ndr_print_ptr(ndr, "server_name", r->server_name); ndr->depth++; if (r->server_name) { @@ -721,6 +722,66 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1027(struct ndr_print *ndr, const cha ndr->depth--; } +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1028(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1028 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->print_buf_time)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1028(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1028 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->print_buf_time)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1028(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1028 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1028"); + ndr->depth++; + ndr_print_uint32(ndr, "print_buf_time", r->print_buf_time); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1032(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1032 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->wrk_heuristics)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1032(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1032 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->wrk_heuristics)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1032(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1032 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1032"); + ndr->depth++; + ndr_print_uint32(ndr, "wrk_heuristics", r->wrk_heuristics); + ndr->depth--; +} + static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1033(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1033 *r) { if (ndr_flags & NDR_SCALARS) { @@ -751,918 +812,4863 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1033(struct ndr_print *ndr, const cha ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetWkstaInfo *r) +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1041(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1041 *r) { if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); - switch (level) { - case 100: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info100)); - break; - - case 101: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info101)); - break; + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lock_quota)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 102: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info102)); - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1041(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1041 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lock_quota)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 502: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info502)); - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1041(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1041 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1041"); + ndr->depth++; + ndr_print_uint32(ndr, "lock_quota", r->lock_quota); + ndr->depth--; +} - case 1010: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1010)); - break; +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1042(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1042 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lock_increment)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1011: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1011)); - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1042(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1042 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lock_increment)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1012: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1012)); - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1042(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1042 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1042"); + ndr->depth++; + ndr_print_uint32(ndr, "lock_increment", r->lock_increment); + ndr->depth--; +} - case 1013: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1013)); - break; +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1043(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1043 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lock_maximum)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1018: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1018)); - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1043(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1043 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lock_maximum)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1023: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1023)); - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1043(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1043 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1043"); + ndr->depth++; + ndr_print_uint32(ndr, "lock_maximum", r->lock_maximum); + ndr->depth--; +} - case 1027: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1027)); - break; +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1044(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1044 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pipe_increment)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1033: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1033)); - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1044(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1044 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pipe_increment)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - default: - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1044(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1044 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1044"); + ndr->depth++; + ndr_print_uint32(ndr, "pipe_increment", r->pipe_increment); + ndr->depth--; +} - } +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1045(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1045 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pipe_maximum)); } if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 100: - if (r->info100) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo100(ndr, NDR_SCALARS|NDR_BUFFERS, r->info100)); - } - break; + } + return NDR_ERR_SUCCESS; +} - case 101: - if (r->info101) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo101(ndr, NDR_SCALARS|NDR_BUFFERS, r->info101)); - } - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1045(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1045 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pipe_maximum)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 102: - if (r->info102) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo102(ndr, NDR_SCALARS|NDR_BUFFERS, r->info102)); - } - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1045(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1045 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1045"); + ndr->depth++; + ndr_print_uint32(ndr, "pipe_maximum", r->pipe_maximum); + ndr->depth--; +} - case 502: - if (r->info502) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo502(ndr, NDR_SCALARS, r->info502)); - } - break; +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1046(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1046 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dormant_file_limit)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1010: - if (r->info1010) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1010(ndr, NDR_SCALARS, r->info1010)); - } - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1046(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1046 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dormant_file_limit)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1011: - if (r->info1011) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1011(ndr, NDR_SCALARS, r->info1011)); - } - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1046(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1046 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1046"); + ndr->depth++; + ndr_print_uint32(ndr, "dormant_file_limit", r->dormant_file_limit); + ndr->depth--; +} - case 1012: - if (r->info1012) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1012(ndr, NDR_SCALARS, r->info1012)); - } - break; - - case 1013: - if (r->info1013) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1013(ndr, NDR_SCALARS, r->info1013)); - } - break; +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1047(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1047 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cache_file_timeout)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1018: - if (r->info1018) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1018(ndr, NDR_SCALARS, r->info1018)); - } - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1047(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1047 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cache_file_timeout)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1023: - if (r->info1023) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1023(ndr, NDR_SCALARS, r->info1023)); - } - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1047(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1047 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1047"); + ndr->depth++; + ndr_print_uint32(ndr, "cache_file_timeout", r->cache_file_timeout); + ndr->depth--; +} - case 1027: - if (r->info1027) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1027(ndr, NDR_SCALARS, r->info1027)); - } - break; +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1048(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1048 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_opportunistic_locking)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1033: - if (r->info1033) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1033(ndr, NDR_SCALARS, r->info1033)); - } - break; +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1048(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1048 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_opportunistic_locking)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - default: - break; +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1048(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1048 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1048"); + ndr->depth++; + ndr_print_uint32(ndr, "use_opportunistic_locking", r->use_opportunistic_locking); + ndr->depth--; +} - } +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1049(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1049 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_unlock_behind)); + } + if (ndr_flags & NDR_BUFFERS) { } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetWkstaInfo *r) +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1049(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1049 *r) { - int level; - uint32_t _level; - TALLOC_CTX *_mem_save_info100_0; - TALLOC_CTX *_mem_save_info101_0; - TALLOC_CTX *_mem_save_info102_0; - TALLOC_CTX *_mem_save_info502_0; - TALLOC_CTX *_mem_save_info1010_0; - TALLOC_CTX *_mem_save_info1011_0; - TALLOC_CTX *_mem_save_info1012_0; - TALLOC_CTX *_mem_save_info1013_0; - TALLOC_CTX *_mem_save_info1018_0; - TALLOC_CTX *_mem_save_info1023_0; - TALLOC_CTX *_mem_save_info1027_0; - TALLOC_CTX *_mem_save_info1033_0; - level = ndr_pull_get_switch_value(ndr, r); if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 100: { - uint32_t _ptr_info100; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info100)); - if (_ptr_info100) { - NDR_PULL_ALLOC(ndr, r->info100); - } else { - r->info100 = NULL; - } - break; } + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_unlock_behind)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 101: { - uint32_t _ptr_info101; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info101)); - if (_ptr_info101) { - NDR_PULL_ALLOC(ndr, r->info101); - } else { - r->info101 = NULL; - } - break; } +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1049(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1049 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1049"); + ndr->depth++; + ndr_print_uint32(ndr, "use_unlock_behind", r->use_unlock_behind); + ndr->depth--; +} - case 102: { - uint32_t _ptr_info102; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info102)); - if (_ptr_info102) { - NDR_PULL_ALLOC(ndr, r->info102); - } else { - r->info102 = NULL; - } - break; } +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1050(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1050 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_close_behind)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 502: { - uint32_t _ptr_info502; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info502)); - if (_ptr_info502) { - NDR_PULL_ALLOC(ndr, r->info502); - } else { - r->info502 = NULL; - } - break; } +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1050(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1050 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_close_behind)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1010: { - uint32_t _ptr_info1010; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1010)); - if (_ptr_info1010) { - NDR_PULL_ALLOC(ndr, r->info1010); - } else { - r->info1010 = NULL; - } - break; } +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1050(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1050 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1050"); + ndr->depth++; + ndr_print_uint32(ndr, "use_close_behind", r->use_close_behind); + ndr->depth--; +} - case 1011: { - uint32_t _ptr_info1011; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1011)); - if (_ptr_info1011) { - NDR_PULL_ALLOC(ndr, r->info1011); - } else { - r->info1011 = NULL; - } - break; } +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1051(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1051 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_named_pipes)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1012: { - uint32_t _ptr_info1012; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1012)); - if (_ptr_info1012) { - NDR_PULL_ALLOC(ndr, r->info1012); - } else { - r->info1012 = NULL; - } - break; } +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1051(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1051 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_named_pipes)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1013: { - uint32_t _ptr_info1013; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1013)); - if (_ptr_info1013) { - NDR_PULL_ALLOC(ndr, r->info1013); - } else { - r->info1013 = NULL; - } - break; } +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1051(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1051 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1051"); + ndr->depth++; + ndr_print_uint32(ndr, "buf_named_pipes", r->buf_named_pipes); + ndr->depth--; +} - case 1018: { - uint32_t _ptr_info1018; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1018)); - if (_ptr_info1018) { - NDR_PULL_ALLOC(ndr, r->info1018); - } else { - r->info1018 = NULL; - } - break; } +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1052(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1052 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_lock_read_unlock)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1023: { +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1052(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1052 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_lock_read_unlock)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1052(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1052 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1052"); + ndr->depth++; + ndr_print_uint32(ndr, "use_lock_read_unlock", r->use_lock_read_unlock); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1053(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1053 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->utilize_nt_caching)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1053(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1053 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->utilize_nt_caching)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1053(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1053 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1053"); + ndr->depth++; + ndr_print_uint32(ndr, "utilize_nt_caching", r->utilize_nt_caching); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1054(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1054 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_raw_read)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1054(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1054 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_raw_read)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1054(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1054 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1054"); + ndr->depth++; + ndr_print_uint32(ndr, "use_raw_read", r->use_raw_read); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1055(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1055 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_raw_write)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1055(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1055 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_raw_write)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1055(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1055 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1055"); + ndr->depth++; + ndr_print_uint32(ndr, "use_raw_write", r->use_raw_write); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1056(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1056 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_write_raw_data)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1056(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1056 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_write_raw_data)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1056(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1056 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1056"); + ndr->depth++; + ndr_print_uint32(ndr, "use_write_raw_data", r->use_write_raw_data); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1057(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1057 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_encryption)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1057(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1057 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_encryption)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1057(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1057 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1057"); + ndr->depth++; + ndr_print_uint32(ndr, "use_encryption", r->use_encryption); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1058(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1058 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_files_deny_write)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1058(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1058 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_files_deny_write)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1058(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1058 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1058"); + ndr->depth++; + ndr_print_uint32(ndr, "buf_files_deny_write", r->buf_files_deny_write); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1059(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1059 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_read_only_files)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1059(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1059 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_read_only_files)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1059(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1059 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1059"); + ndr->depth++; + ndr_print_uint32(ndr, "buf_read_only_files", r->buf_read_only_files); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1060(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1060 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->force_core_create_mode)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1060(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1060 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->force_core_create_mode)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1060(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1060 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1060"); + ndr->depth++; + ndr_print_uint32(ndr, "force_core_create_mode", r->force_core_create_mode); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1061(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1061 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_512_byte_max_transfer)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1061(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1061 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_512_byte_max_transfer)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1061(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1061 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1061"); + ndr->depth++; + ndr_print_uint32(ndr, "use_512_byte_max_transfer", r->use_512_byte_max_transfer); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo1062(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaInfo1062 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->read_ahead_throughput)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo1062(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo1062 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->read_ahead_throughput)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo1062(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1062 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaInfo1062"); + ndr->depth++; + ndr_print_uint32(ndr, "read_ahead_throughput", r->read_ahead_throughput); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetWkstaInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); + switch (level) { + case 100: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info100)); + break; + + case 101: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info101)); + break; + + case 102: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info102)); + break; + + case 502: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info502)); + break; + + case 1010: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1010)); + break; + + case 1011: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1011)); + break; + + case 1012: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1012)); + break; + + case 1013: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1013)); + break; + + case 1018: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1018)); + break; + + case 1023: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1023)); + break; + + case 1027: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1027)); + break; + + case 1028: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1028)); + break; + + case 1032: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1032)); + break; + + case 1033: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1033)); + break; + + case 1041: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1041)); + break; + + case 1042: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1042)); + break; + + case 1043: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1043)); + break; + + case 1044: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1044)); + break; + + case 1045: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1045)); + break; + + case 1046: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1046)); + break; + + case 1047: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1047)); + break; + + case 1048: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1048)); + break; + + case 1049: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1049)); + break; + + case 1050: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1050)); + break; + + case 1051: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1051)); + break; + + case 1052: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1052)); + break; + + case 1053: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1053)); + break; + + case 1054: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1054)); + break; + + case 1055: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1055)); + break; + + case 1056: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1056)); + break; + + case 1057: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1057)); + break; + + case 1058: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1058)); + break; + + case 1059: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1059)); + break; + + case 1060: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1060)); + break; + + case 1061: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1061)); + break; + + case 1062: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1062)); + break; + + default: + break; + + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 100: + if (r->info100) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo100(ndr, NDR_SCALARS|NDR_BUFFERS, r->info100)); + } + break; + + case 101: + if (r->info101) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo101(ndr, NDR_SCALARS|NDR_BUFFERS, r->info101)); + } + break; + + case 102: + if (r->info102) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo102(ndr, NDR_SCALARS|NDR_BUFFERS, r->info102)); + } + break; + + case 502: + if (r->info502) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo502(ndr, NDR_SCALARS, r->info502)); + } + break; + + case 1010: + if (r->info1010) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1010(ndr, NDR_SCALARS, r->info1010)); + } + break; + + case 1011: + if (r->info1011) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1011(ndr, NDR_SCALARS, r->info1011)); + } + break; + + case 1012: + if (r->info1012) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1012(ndr, NDR_SCALARS, r->info1012)); + } + break; + + case 1013: + if (r->info1013) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1013(ndr, NDR_SCALARS, r->info1013)); + } + break; + + case 1018: + if (r->info1018) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1018(ndr, NDR_SCALARS, r->info1018)); + } + break; + + case 1023: + if (r->info1023) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1023(ndr, NDR_SCALARS, r->info1023)); + } + break; + + case 1027: + if (r->info1027) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1027(ndr, NDR_SCALARS, r->info1027)); + } + break; + + case 1028: + if (r->info1028) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1028(ndr, NDR_SCALARS, r->info1028)); + } + break; + + case 1032: + if (r->info1032) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1032(ndr, NDR_SCALARS, r->info1032)); + } + break; + + case 1033: + if (r->info1033) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1033(ndr, NDR_SCALARS, r->info1033)); + } + break; + + case 1041: + if (r->info1041) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1041(ndr, NDR_SCALARS, r->info1041)); + } + break; + + case 1042: + if (r->info1042) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1042(ndr, NDR_SCALARS, r->info1042)); + } + break; + + case 1043: + if (r->info1043) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1043(ndr, NDR_SCALARS, r->info1043)); + } + break; + + case 1044: + if (r->info1044) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1044(ndr, NDR_SCALARS, r->info1044)); + } + break; + + case 1045: + if (r->info1045) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1045(ndr, NDR_SCALARS, r->info1045)); + } + break; + + case 1046: + if (r->info1046) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1046(ndr, NDR_SCALARS, r->info1046)); + } + break; + + case 1047: + if (r->info1047) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1047(ndr, NDR_SCALARS, r->info1047)); + } + break; + + case 1048: + if (r->info1048) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1048(ndr, NDR_SCALARS, r->info1048)); + } + break; + + case 1049: + if (r->info1049) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1049(ndr, NDR_SCALARS, r->info1049)); + } + break; + + case 1050: + if (r->info1050) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1050(ndr, NDR_SCALARS, r->info1050)); + } + break; + + case 1051: + if (r->info1051) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1051(ndr, NDR_SCALARS, r->info1051)); + } + break; + + case 1052: + if (r->info1052) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1052(ndr, NDR_SCALARS, r->info1052)); + } + break; + + case 1053: + if (r->info1053) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1053(ndr, NDR_SCALARS, r->info1053)); + } + break; + + case 1054: + if (r->info1054) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1054(ndr, NDR_SCALARS, r->info1054)); + } + break; + + case 1055: + if (r->info1055) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1055(ndr, NDR_SCALARS, r->info1055)); + } + break; + + case 1056: + if (r->info1056) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1056(ndr, NDR_SCALARS, r->info1056)); + } + break; + + case 1057: + if (r->info1057) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1057(ndr, NDR_SCALARS, r->info1057)); + } + break; + + case 1058: + if (r->info1058) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1058(ndr, NDR_SCALARS, r->info1058)); + } + break; + + case 1059: + if (r->info1059) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1059(ndr, NDR_SCALARS, r->info1059)); + } + break; + + case 1060: + if (r->info1060) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1060(ndr, NDR_SCALARS, r->info1060)); + } + break; + + case 1061: + if (r->info1061) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1061(ndr, NDR_SCALARS, r->info1061)); + } + break; + + case 1062: + if (r->info1062) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo1062(ndr, NDR_SCALARS, r->info1062)); + } + break; + + default: + break; + + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetWkstaInfo *r) +{ + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info100_0; + TALLOC_CTX *_mem_save_info101_0; + TALLOC_CTX *_mem_save_info102_0; + TALLOC_CTX *_mem_save_info502_0; + TALLOC_CTX *_mem_save_info1010_0; + TALLOC_CTX *_mem_save_info1011_0; + TALLOC_CTX *_mem_save_info1012_0; + TALLOC_CTX *_mem_save_info1013_0; + TALLOC_CTX *_mem_save_info1018_0; + TALLOC_CTX *_mem_save_info1023_0; + TALLOC_CTX *_mem_save_info1027_0; + TALLOC_CTX *_mem_save_info1028_0; + TALLOC_CTX *_mem_save_info1032_0; + TALLOC_CTX *_mem_save_info1033_0; + TALLOC_CTX *_mem_save_info1041_0; + TALLOC_CTX *_mem_save_info1042_0; + TALLOC_CTX *_mem_save_info1043_0; + TALLOC_CTX *_mem_save_info1044_0; + TALLOC_CTX *_mem_save_info1045_0; + TALLOC_CTX *_mem_save_info1046_0; + TALLOC_CTX *_mem_save_info1047_0; + TALLOC_CTX *_mem_save_info1048_0; + TALLOC_CTX *_mem_save_info1049_0; + TALLOC_CTX *_mem_save_info1050_0; + TALLOC_CTX *_mem_save_info1051_0; + TALLOC_CTX *_mem_save_info1052_0; + TALLOC_CTX *_mem_save_info1053_0; + TALLOC_CTX *_mem_save_info1054_0; + TALLOC_CTX *_mem_save_info1055_0; + TALLOC_CTX *_mem_save_info1056_0; + TALLOC_CTX *_mem_save_info1057_0; + TALLOC_CTX *_mem_save_info1058_0; + TALLOC_CTX *_mem_save_info1059_0; + TALLOC_CTX *_mem_save_info1060_0; + TALLOC_CTX *_mem_save_info1061_0; + TALLOC_CTX *_mem_save_info1062_0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); + if (_level != level) { + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); + } + switch (level) { + case 100: { + uint32_t _ptr_info100; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info100)); + if (_ptr_info100) { + NDR_PULL_ALLOC(ndr, r->info100); + } else { + r->info100 = NULL; + } + break; } + + case 101: { + uint32_t _ptr_info101; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info101)); + if (_ptr_info101) { + NDR_PULL_ALLOC(ndr, r->info101); + } else { + r->info101 = NULL; + } + break; } + + case 102: { + uint32_t _ptr_info102; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info102)); + if (_ptr_info102) { + NDR_PULL_ALLOC(ndr, r->info102); + } else { + r->info102 = NULL; + } + break; } + + case 502: { + uint32_t _ptr_info502; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info502)); + if (_ptr_info502) { + NDR_PULL_ALLOC(ndr, r->info502); + } else { + r->info502 = NULL; + } + break; } + + case 1010: { + uint32_t _ptr_info1010; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1010)); + if (_ptr_info1010) { + NDR_PULL_ALLOC(ndr, r->info1010); + } else { + r->info1010 = NULL; + } + break; } + + case 1011: { + uint32_t _ptr_info1011; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1011)); + if (_ptr_info1011) { + NDR_PULL_ALLOC(ndr, r->info1011); + } else { + r->info1011 = NULL; + } + break; } + + case 1012: { + uint32_t _ptr_info1012; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1012)); + if (_ptr_info1012) { + NDR_PULL_ALLOC(ndr, r->info1012); + } else { + r->info1012 = NULL; + } + break; } + + case 1013: { + uint32_t _ptr_info1013; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1013)); + if (_ptr_info1013) { + NDR_PULL_ALLOC(ndr, r->info1013); + } else { + r->info1013 = NULL; + } + break; } + + case 1018: { + uint32_t _ptr_info1018; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1018)); + if (_ptr_info1018) { + NDR_PULL_ALLOC(ndr, r->info1018); + } else { + r->info1018 = NULL; + } + break; } + + case 1023: { uint32_t _ptr_info1023; NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1023)); if (_ptr_info1023) { NDR_PULL_ALLOC(ndr, r->info1023); } else { - r->info1023 = NULL; + r->info1023 = NULL; + } + break; } + + case 1027: { + uint32_t _ptr_info1027; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1027)); + if (_ptr_info1027) { + NDR_PULL_ALLOC(ndr, r->info1027); + } else { + r->info1027 = NULL; + } + break; } + + case 1028: { + uint32_t _ptr_info1028; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1028)); + if (_ptr_info1028) { + NDR_PULL_ALLOC(ndr, r->info1028); + } else { + r->info1028 = NULL; + } + break; } + + case 1032: { + uint32_t _ptr_info1032; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1032)); + if (_ptr_info1032) { + NDR_PULL_ALLOC(ndr, r->info1032); + } else { + r->info1032 = NULL; + } + break; } + + case 1033: { + uint32_t _ptr_info1033; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1033)); + if (_ptr_info1033) { + NDR_PULL_ALLOC(ndr, r->info1033); + } else { + r->info1033 = NULL; + } + break; } + + case 1041: { + uint32_t _ptr_info1041; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1041)); + if (_ptr_info1041) { + NDR_PULL_ALLOC(ndr, r->info1041); + } else { + r->info1041 = NULL; + } + break; } + + case 1042: { + uint32_t _ptr_info1042; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1042)); + if (_ptr_info1042) { + NDR_PULL_ALLOC(ndr, r->info1042); + } else { + r->info1042 = NULL; + } + break; } + + case 1043: { + uint32_t _ptr_info1043; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1043)); + if (_ptr_info1043) { + NDR_PULL_ALLOC(ndr, r->info1043); + } else { + r->info1043 = NULL; + } + break; } + + case 1044: { + uint32_t _ptr_info1044; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1044)); + if (_ptr_info1044) { + NDR_PULL_ALLOC(ndr, r->info1044); + } else { + r->info1044 = NULL; + } + break; } + + case 1045: { + uint32_t _ptr_info1045; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1045)); + if (_ptr_info1045) { + NDR_PULL_ALLOC(ndr, r->info1045); + } else { + r->info1045 = NULL; + } + break; } + + case 1046: { + uint32_t _ptr_info1046; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1046)); + if (_ptr_info1046) { + NDR_PULL_ALLOC(ndr, r->info1046); + } else { + r->info1046 = NULL; + } + break; } + + case 1047: { + uint32_t _ptr_info1047; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1047)); + if (_ptr_info1047) { + NDR_PULL_ALLOC(ndr, r->info1047); + } else { + r->info1047 = NULL; + } + break; } + + case 1048: { + uint32_t _ptr_info1048; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1048)); + if (_ptr_info1048) { + NDR_PULL_ALLOC(ndr, r->info1048); + } else { + r->info1048 = NULL; + } + break; } + + case 1049: { + uint32_t _ptr_info1049; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1049)); + if (_ptr_info1049) { + NDR_PULL_ALLOC(ndr, r->info1049); + } else { + r->info1049 = NULL; + } + break; } + + case 1050: { + uint32_t _ptr_info1050; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1050)); + if (_ptr_info1050) { + NDR_PULL_ALLOC(ndr, r->info1050); + } else { + r->info1050 = NULL; + } + break; } + + case 1051: { + uint32_t _ptr_info1051; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1051)); + if (_ptr_info1051) { + NDR_PULL_ALLOC(ndr, r->info1051); + } else { + r->info1051 = NULL; + } + break; } + + case 1052: { + uint32_t _ptr_info1052; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1052)); + if (_ptr_info1052) { + NDR_PULL_ALLOC(ndr, r->info1052); + } else { + r->info1052 = NULL; + } + break; } + + case 1053: { + uint32_t _ptr_info1053; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1053)); + if (_ptr_info1053) { + NDR_PULL_ALLOC(ndr, r->info1053); + } else { + r->info1053 = NULL; + } + break; } + + case 1054: { + uint32_t _ptr_info1054; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1054)); + if (_ptr_info1054) { + NDR_PULL_ALLOC(ndr, r->info1054); + } else { + r->info1054 = NULL; + } + break; } + + case 1055: { + uint32_t _ptr_info1055; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1055)); + if (_ptr_info1055) { + NDR_PULL_ALLOC(ndr, r->info1055); + } else { + r->info1055 = NULL; + } + break; } + + case 1056: { + uint32_t _ptr_info1056; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1056)); + if (_ptr_info1056) { + NDR_PULL_ALLOC(ndr, r->info1056); + } else { + r->info1056 = NULL; + } + break; } + + case 1057: { + uint32_t _ptr_info1057; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1057)); + if (_ptr_info1057) { + NDR_PULL_ALLOC(ndr, r->info1057); + } else { + r->info1057 = NULL; + } + break; } + + case 1058: { + uint32_t _ptr_info1058; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1058)); + if (_ptr_info1058) { + NDR_PULL_ALLOC(ndr, r->info1058); + } else { + r->info1058 = NULL; + } + break; } + + case 1059: { + uint32_t _ptr_info1059; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1059)); + if (_ptr_info1059) { + NDR_PULL_ALLOC(ndr, r->info1059); + } else { + r->info1059 = NULL; + } + break; } + + case 1060: { + uint32_t _ptr_info1060; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1060)); + if (_ptr_info1060) { + NDR_PULL_ALLOC(ndr, r->info1060); + } else { + r->info1060 = NULL; + } + break; } + + case 1061: { + uint32_t _ptr_info1061; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1061)); + if (_ptr_info1061) { + NDR_PULL_ALLOC(ndr, r->info1061); + } else { + r->info1061 = NULL; + } + break; } + + case 1062: { + uint32_t _ptr_info1062; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1062)); + if (_ptr_info1062) { + NDR_PULL_ALLOC(ndr, r->info1062); + } else { + r->info1062 = NULL; + } + break; } + + default: { + break; } + + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 100: + if (r->info100) { + _mem_save_info100_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info100, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo100(ndr, NDR_SCALARS|NDR_BUFFERS, r->info100)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info100_0, 0); + } + break; + + case 101: + if (r->info101) { + _mem_save_info101_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info101, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo101(ndr, NDR_SCALARS|NDR_BUFFERS, r->info101)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info101_0, 0); + } + break; + + case 102: + if (r->info102) { + _mem_save_info102_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info102, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo102(ndr, NDR_SCALARS|NDR_BUFFERS, r->info102)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info102_0, 0); + } + break; + + case 502: + if (r->info502) { + _mem_save_info502_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info502, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo502(ndr, NDR_SCALARS, r->info502)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info502_0, 0); + } + break; + + case 1010: + if (r->info1010) { + _mem_save_info1010_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1010, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1010(ndr, NDR_SCALARS, r->info1010)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1010_0, 0); + } + break; + + case 1011: + if (r->info1011) { + _mem_save_info1011_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1011, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1011(ndr, NDR_SCALARS, r->info1011)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1011_0, 0); + } + break; + + case 1012: + if (r->info1012) { + _mem_save_info1012_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1012, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1012(ndr, NDR_SCALARS, r->info1012)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1012_0, 0); + } + break; + + case 1013: + if (r->info1013) { + _mem_save_info1013_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1013, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1013(ndr, NDR_SCALARS, r->info1013)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1013_0, 0); + } + break; + + case 1018: + if (r->info1018) { + _mem_save_info1018_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1018, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1018(ndr, NDR_SCALARS, r->info1018)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1018_0, 0); + } + break; + + case 1023: + if (r->info1023) { + _mem_save_info1023_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1023, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1023(ndr, NDR_SCALARS, r->info1023)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1023_0, 0); + } + break; + + case 1027: + if (r->info1027) { + _mem_save_info1027_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1027, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1027(ndr, NDR_SCALARS, r->info1027)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1027_0, 0); + } + break; + + case 1028: + if (r->info1028) { + _mem_save_info1028_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1028, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1028(ndr, NDR_SCALARS, r->info1028)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1028_0, 0); + } + break; + + case 1032: + if (r->info1032) { + _mem_save_info1032_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1032, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1032(ndr, NDR_SCALARS, r->info1032)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1032_0, 0); + } + break; + + case 1033: + if (r->info1033) { + _mem_save_info1033_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1033, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1033(ndr, NDR_SCALARS, r->info1033)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1033_0, 0); + } + break; + + case 1041: + if (r->info1041) { + _mem_save_info1041_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1041, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1041(ndr, NDR_SCALARS, r->info1041)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1041_0, 0); + } + break; + + case 1042: + if (r->info1042) { + _mem_save_info1042_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1042, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1042(ndr, NDR_SCALARS, r->info1042)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1042_0, 0); + } + break; + + case 1043: + if (r->info1043) { + _mem_save_info1043_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1043, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1043(ndr, NDR_SCALARS, r->info1043)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1043_0, 0); + } + break; + + case 1044: + if (r->info1044) { + _mem_save_info1044_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1044, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1044(ndr, NDR_SCALARS, r->info1044)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1044_0, 0); + } + break; + + case 1045: + if (r->info1045) { + _mem_save_info1045_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1045, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1045(ndr, NDR_SCALARS, r->info1045)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1045_0, 0); + } + break; + + case 1046: + if (r->info1046) { + _mem_save_info1046_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1046, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1046(ndr, NDR_SCALARS, r->info1046)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1046_0, 0); + } + break; + + case 1047: + if (r->info1047) { + _mem_save_info1047_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1047, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1047(ndr, NDR_SCALARS, r->info1047)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1047_0, 0); + } + break; + + case 1048: + if (r->info1048) { + _mem_save_info1048_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1048, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1048(ndr, NDR_SCALARS, r->info1048)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1048_0, 0); + } + break; + + case 1049: + if (r->info1049) { + _mem_save_info1049_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1049, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1049(ndr, NDR_SCALARS, r->info1049)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1049_0, 0); + } + break; + + case 1050: + if (r->info1050) { + _mem_save_info1050_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1050, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1050(ndr, NDR_SCALARS, r->info1050)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1050_0, 0); + } + break; + + case 1051: + if (r->info1051) { + _mem_save_info1051_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1051, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1051(ndr, NDR_SCALARS, r->info1051)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1051_0, 0); + } + break; + + case 1052: + if (r->info1052) { + _mem_save_info1052_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1052, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1052(ndr, NDR_SCALARS, r->info1052)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1052_0, 0); + } + break; + + case 1053: + if (r->info1053) { + _mem_save_info1053_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1053, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1053(ndr, NDR_SCALARS, r->info1053)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1053_0, 0); + } + break; + + case 1054: + if (r->info1054) { + _mem_save_info1054_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1054, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1054(ndr, NDR_SCALARS, r->info1054)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1054_0, 0); + } + break; + + case 1055: + if (r->info1055) { + _mem_save_info1055_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1055, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1055(ndr, NDR_SCALARS, r->info1055)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1055_0, 0); + } + break; + + case 1056: + if (r->info1056) { + _mem_save_info1056_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1056, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1056(ndr, NDR_SCALARS, r->info1056)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1056_0, 0); + } + break; + + case 1057: + if (r->info1057) { + _mem_save_info1057_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1057, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1057(ndr, NDR_SCALARS, r->info1057)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1057_0, 0); + } + break; + + case 1058: + if (r->info1058) { + _mem_save_info1058_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1058, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1058(ndr, NDR_SCALARS, r->info1058)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1058_0, 0); + } + break; + + case 1059: + if (r->info1059) { + _mem_save_info1059_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1059, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1059(ndr, NDR_SCALARS, r->info1059)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1059_0, 0); + } + break; + + case 1060: + if (r->info1060) { + _mem_save_info1060_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1060, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1060(ndr, NDR_SCALARS, r->info1060)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1060_0, 0); + } + break; + + case 1061: + if (r->info1061) { + _mem_save_info1061_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1061, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1061(ndr, NDR_SCALARS, r->info1061)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1061_0, 0); + } + break; + + case 1062: + if (r->info1062) { + _mem_save_info1062_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1062, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1062(ndr, NDR_SCALARS, r->info1062)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1062_0, 0); + } + break; + + default: + break; + + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaInfo *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "wkssvc_NetWkstaInfo"); + switch (level) { + case 100: + ndr_print_ptr(ndr, "info100", r->info100); + ndr->depth++; + if (r->info100) { + ndr_print_wkssvc_NetWkstaInfo100(ndr, "info100", r->info100); + } + ndr->depth--; + break; + + case 101: + ndr_print_ptr(ndr, "info101", r->info101); + ndr->depth++; + if (r->info101) { + ndr_print_wkssvc_NetWkstaInfo101(ndr, "info101", r->info101); + } + ndr->depth--; + break; + + case 102: + ndr_print_ptr(ndr, "info102", r->info102); + ndr->depth++; + if (r->info102) { + ndr_print_wkssvc_NetWkstaInfo102(ndr, "info102", r->info102); + } + ndr->depth--; + break; + + case 502: + ndr_print_ptr(ndr, "info502", r->info502); + ndr->depth++; + if (r->info502) { + ndr_print_wkssvc_NetWkstaInfo502(ndr, "info502", r->info502); + } + ndr->depth--; + break; + + case 1010: + ndr_print_ptr(ndr, "info1010", r->info1010); + ndr->depth++; + if (r->info1010) { + ndr_print_wkssvc_NetWkstaInfo1010(ndr, "info1010", r->info1010); + } + ndr->depth--; + break; + + case 1011: + ndr_print_ptr(ndr, "info1011", r->info1011); + ndr->depth++; + if (r->info1011) { + ndr_print_wkssvc_NetWkstaInfo1011(ndr, "info1011", r->info1011); + } + ndr->depth--; + break; + + case 1012: + ndr_print_ptr(ndr, "info1012", r->info1012); + ndr->depth++; + if (r->info1012) { + ndr_print_wkssvc_NetWkstaInfo1012(ndr, "info1012", r->info1012); + } + ndr->depth--; + break; + + case 1013: + ndr_print_ptr(ndr, "info1013", r->info1013); + ndr->depth++; + if (r->info1013) { + ndr_print_wkssvc_NetWkstaInfo1013(ndr, "info1013", r->info1013); + } + ndr->depth--; + break; + + case 1018: + ndr_print_ptr(ndr, "info1018", r->info1018); + ndr->depth++; + if (r->info1018) { + ndr_print_wkssvc_NetWkstaInfo1018(ndr, "info1018", r->info1018); + } + ndr->depth--; + break; + + case 1023: + ndr_print_ptr(ndr, "info1023", r->info1023); + ndr->depth++; + if (r->info1023) { + ndr_print_wkssvc_NetWkstaInfo1023(ndr, "info1023", r->info1023); + } + ndr->depth--; + break; + + case 1027: + ndr_print_ptr(ndr, "info1027", r->info1027); + ndr->depth++; + if (r->info1027) { + ndr_print_wkssvc_NetWkstaInfo1027(ndr, "info1027", r->info1027); + } + ndr->depth--; + break; + + case 1028: + ndr_print_ptr(ndr, "info1028", r->info1028); + ndr->depth++; + if (r->info1028) { + ndr_print_wkssvc_NetWkstaInfo1028(ndr, "info1028", r->info1028); + } + ndr->depth--; + break; + + case 1032: + ndr_print_ptr(ndr, "info1032", r->info1032); + ndr->depth++; + if (r->info1032) { + ndr_print_wkssvc_NetWkstaInfo1032(ndr, "info1032", r->info1032); + } + ndr->depth--; + break; + + case 1033: + ndr_print_ptr(ndr, "info1033", r->info1033); + ndr->depth++; + if (r->info1033) { + ndr_print_wkssvc_NetWkstaInfo1033(ndr, "info1033", r->info1033); + } + ndr->depth--; + break; + + case 1041: + ndr_print_ptr(ndr, "info1041", r->info1041); + ndr->depth++; + if (r->info1041) { + ndr_print_wkssvc_NetWkstaInfo1041(ndr, "info1041", r->info1041); + } + ndr->depth--; + break; + + case 1042: + ndr_print_ptr(ndr, "info1042", r->info1042); + ndr->depth++; + if (r->info1042) { + ndr_print_wkssvc_NetWkstaInfo1042(ndr, "info1042", r->info1042); + } + ndr->depth--; + break; + + case 1043: + ndr_print_ptr(ndr, "info1043", r->info1043); + ndr->depth++; + if (r->info1043) { + ndr_print_wkssvc_NetWkstaInfo1043(ndr, "info1043", r->info1043); + } + ndr->depth--; + break; + + case 1044: + ndr_print_ptr(ndr, "info1044", r->info1044); + ndr->depth++; + if (r->info1044) { + ndr_print_wkssvc_NetWkstaInfo1044(ndr, "info1044", r->info1044); + } + ndr->depth--; + break; + + case 1045: + ndr_print_ptr(ndr, "info1045", r->info1045); + ndr->depth++; + if (r->info1045) { + ndr_print_wkssvc_NetWkstaInfo1045(ndr, "info1045", r->info1045); + } + ndr->depth--; + break; + + case 1046: + ndr_print_ptr(ndr, "info1046", r->info1046); + ndr->depth++; + if (r->info1046) { + ndr_print_wkssvc_NetWkstaInfo1046(ndr, "info1046", r->info1046); + } + ndr->depth--; + break; + + case 1047: + ndr_print_ptr(ndr, "info1047", r->info1047); + ndr->depth++; + if (r->info1047) { + ndr_print_wkssvc_NetWkstaInfo1047(ndr, "info1047", r->info1047); + } + ndr->depth--; + break; + + case 1048: + ndr_print_ptr(ndr, "info1048", r->info1048); + ndr->depth++; + if (r->info1048) { + ndr_print_wkssvc_NetWkstaInfo1048(ndr, "info1048", r->info1048); + } + ndr->depth--; + break; + + case 1049: + ndr_print_ptr(ndr, "info1049", r->info1049); + ndr->depth++; + if (r->info1049) { + ndr_print_wkssvc_NetWkstaInfo1049(ndr, "info1049", r->info1049); + } + ndr->depth--; + break; + + case 1050: + ndr_print_ptr(ndr, "info1050", r->info1050); + ndr->depth++; + if (r->info1050) { + ndr_print_wkssvc_NetWkstaInfo1050(ndr, "info1050", r->info1050); + } + ndr->depth--; + break; + + case 1051: + ndr_print_ptr(ndr, "info1051", r->info1051); + ndr->depth++; + if (r->info1051) { + ndr_print_wkssvc_NetWkstaInfo1051(ndr, "info1051", r->info1051); + } + ndr->depth--; + break; + + case 1052: + ndr_print_ptr(ndr, "info1052", r->info1052); + ndr->depth++; + if (r->info1052) { + ndr_print_wkssvc_NetWkstaInfo1052(ndr, "info1052", r->info1052); + } + ndr->depth--; + break; + + case 1053: + ndr_print_ptr(ndr, "info1053", r->info1053); + ndr->depth++; + if (r->info1053) { + ndr_print_wkssvc_NetWkstaInfo1053(ndr, "info1053", r->info1053); + } + ndr->depth--; + break; + + case 1054: + ndr_print_ptr(ndr, "info1054", r->info1054); + ndr->depth++; + if (r->info1054) { + ndr_print_wkssvc_NetWkstaInfo1054(ndr, "info1054", r->info1054); + } + ndr->depth--; + break; + + case 1055: + ndr_print_ptr(ndr, "info1055", r->info1055); + ndr->depth++; + if (r->info1055) { + ndr_print_wkssvc_NetWkstaInfo1055(ndr, "info1055", r->info1055); + } + ndr->depth--; + break; + + case 1056: + ndr_print_ptr(ndr, "info1056", r->info1056); + ndr->depth++; + if (r->info1056) { + ndr_print_wkssvc_NetWkstaInfo1056(ndr, "info1056", r->info1056); + } + ndr->depth--; + break; + + case 1057: + ndr_print_ptr(ndr, "info1057", r->info1057); + ndr->depth++; + if (r->info1057) { + ndr_print_wkssvc_NetWkstaInfo1057(ndr, "info1057", r->info1057); + } + ndr->depth--; + break; + + case 1058: + ndr_print_ptr(ndr, "info1058", r->info1058); + ndr->depth++; + if (r->info1058) { + ndr_print_wkssvc_NetWkstaInfo1058(ndr, "info1058", r->info1058); + } + ndr->depth--; + break; + + case 1059: + ndr_print_ptr(ndr, "info1059", r->info1059); + ndr->depth++; + if (r->info1059) { + ndr_print_wkssvc_NetWkstaInfo1059(ndr, "info1059", r->info1059); + } + ndr->depth--; + break; + + case 1060: + ndr_print_ptr(ndr, "info1060", r->info1060); + ndr->depth++; + if (r->info1060) { + ndr_print_wkssvc_NetWkstaInfo1060(ndr, "info1060", r->info1060); + } + ndr->depth--; + break; + + case 1061: + ndr_print_ptr(ndr, "info1061", r->info1061); + ndr->depth++; + if (r->info1061) { + ndr_print_wkssvc_NetWkstaInfo1061(ndr, "info1061", r->info1061); + } + ndr->depth--; + break; + + case 1062: + ndr_print_ptr(ndr, "info1062", r->info1062); + ndr->depth++; + if (r->info1062) { + ndr_print_wkssvc_NetWkstaInfo1062(ndr, "info1062", r->info1062); + } + ndr->depth--; + break; + + default: + break; + + } +} + +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserInfo0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrWkstaUserInfo0 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrWkstaUserInfo0 *r) +{ + uint32_t _ptr_user_name; + TALLOC_CTX *_mem_save_user_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name)); + if (_ptr_user_name) { + NDR_PULL_ALLOC(ndr, r->user_name); + } else { + r->user_name = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user_name) { + _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name)); + if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaUserInfo0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWkstaUserInfo0 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrWkstaUserInfo0"); + ndr->depth++; + ndr_print_ptr(ndr, "user_name", r->user_name); + ndr->depth++; + if (r->user_name) { + ndr_print_string(ndr, "user_name", r->user_name); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsersCtr0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaEnumUsersCtr0 *r) +{ + uint32_t cntr_user0_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->user0)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user0) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); + for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1])); + } + for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1])); + } + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaEnumUsersCtr0 *r) +{ + uint32_t _ptr_user0; + uint32_t cntr_user0_1; + TALLOC_CTX *_mem_save_user0_0; + TALLOC_CTX *_mem_save_user0_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entries_read)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user0)); + if (_ptr_user0) { + NDR_PULL_ALLOC(ndr, r->user0); + } else { + r->user0 = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user0) { + _mem_save_user0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user0)); + NDR_PULL_ALLOC_N(ndr, r->user0, ndr_get_array_size(ndr, &r->user0)); + _mem_save_user0_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); + for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1])); + } + for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_0, 0); + } + if (r->user0) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->user0, r->entries_read)); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaEnumUsersCtr0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaEnumUsersCtr0 *r) +{ + uint32_t cntr_user0_1; + ndr_print_struct(ndr, name, "wkssvc_NetWkstaEnumUsersCtr0"); + ndr->depth++; + ndr_print_uint32(ndr, "entries_read", r->entries_read); + ndr_print_ptr(ndr, "user0", r->user0); + ndr->depth++; + if (r->user0) { + ndr->print(ndr, "%s: ARRAY(%d)", "user0", r->entries_read); + ndr->depth++; + for (cntr_user0_1=0;cntr_user0_1entries_read;cntr_user0_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_user0_1); + if (idx_1) { + ndr_print_wkssvc_NetrWkstaUserInfo0(ndr, "user0", &r->user0[cntr_user0_1]); + free(idx_1); + } + } + ndr->depth--; + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserInfo1(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrWkstaUserInfo1 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->logon_domain)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_domains)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->logon_server)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->logon_domain) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_domain, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_domain, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->logon_domain, ndr_charset_length(r->logon_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->other_domains) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->other_domains, ndr_charset_length(r->other_domains, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->logon_server) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_server, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_server, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->logon_server, ndr_charset_length(r->logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrWkstaUserInfo1 *r) +{ + uint32_t _ptr_user_name; + TALLOC_CTX *_mem_save_user_name_0; + uint32_t _ptr_logon_domain; + TALLOC_CTX *_mem_save_logon_domain_0; + uint32_t _ptr_other_domains; + TALLOC_CTX *_mem_save_other_domains_0; + uint32_t _ptr_logon_server; + TALLOC_CTX *_mem_save_logon_server_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name)); + if (_ptr_user_name) { + NDR_PULL_ALLOC(ndr, r->user_name); + } else { + r->user_name = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_domain)); + if (_ptr_logon_domain) { + NDR_PULL_ALLOC(ndr, r->logon_domain); + } else { + r->logon_domain = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_other_domains)); + if (_ptr_other_domains) { + NDR_PULL_ALLOC(ndr, r->other_domains); + } else { + r->other_domains = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); + if (_ptr_logon_server) { + NDR_PULL_ALLOC(ndr, r->logon_server); + } else { + r->logon_server = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user_name) { + _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name)); + if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0); + } + if (r->logon_domain) { + _mem_save_logon_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->logon_domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->logon_domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->logon_domain)); + if (ndr_get_array_length(ndr, &r->logon_domain) > ndr_get_array_size(ndr, &r->logon_domain)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->logon_domain), ndr_get_array_length(ndr, &r->logon_domain)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->logon_domain), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_domain, ndr_get_array_length(ndr, &r->logon_domain), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_domain_0, 0); + } + if (r->other_domains) { + _mem_save_other_domains_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->other_domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->other_domains)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->other_domains)); + if (ndr_get_array_length(ndr, &r->other_domains) > ndr_get_array_size(ndr, &r->other_domains)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->other_domains), ndr_get_array_length(ndr, &r->other_domains)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->other_domains, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_domains_0, 0); + } + if (r->logon_server) { + _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->logon_server)); + if (ndr_get_array_length(ndr, &r->logon_server) > ndr_get_array_size(ndr, &r->logon_server)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->logon_server), ndr_get_array_length(ndr, &r->logon_server)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->logon_server), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_server, ndr_get_array_length(ndr, &r->logon_server), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaUserInfo1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWkstaUserInfo1 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrWkstaUserInfo1"); + ndr->depth++; + ndr_print_ptr(ndr, "user_name", r->user_name); + ndr->depth++; + if (r->user_name) { + ndr_print_string(ndr, "user_name", r->user_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "logon_domain", r->logon_domain); + ndr->depth++; + if (r->logon_domain) { + ndr_print_string(ndr, "logon_domain", r->logon_domain); + } + ndr->depth--; + ndr_print_ptr(ndr, "other_domains", r->other_domains); + ndr->depth++; + if (r->other_domains) { + ndr_print_string(ndr, "other_domains", r->other_domains); + } + ndr->depth--; + ndr_print_ptr(ndr, "logon_server", r->logon_server); + ndr->depth++; + if (r->logon_server) { + ndr_print_string(ndr, "logon_server", r->logon_server); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsersCtr1(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaEnumUsersCtr1 *r) +{ + uint32_t cntr_user1_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->user1)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user1) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); + for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo1(ndr, NDR_SCALARS, &r->user1[cntr_user1_1])); + } + for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo1(ndr, NDR_BUFFERS, &r->user1[cntr_user1_1])); + } + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaEnumUsersCtr1 *r) +{ + uint32_t _ptr_user1; + uint32_t cntr_user1_1; + TALLOC_CTX *_mem_save_user1_0; + TALLOC_CTX *_mem_save_user1_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entries_read)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user1)); + if (_ptr_user1) { + NDR_PULL_ALLOC(ndr, r->user1); + } else { + r->user1 = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->user1) { + _mem_save_user1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user1)); + NDR_PULL_ALLOC_N(ndr, r->user1, ndr_get_array_size(ndr, &r->user1)); + _mem_save_user1_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); + for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo1(ndr, NDR_SCALARS, &r->user1[cntr_user1_1])); + } + for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo1(ndr, NDR_BUFFERS, &r->user1[cntr_user1_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_0, 0); + } + if (r->user1) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->user1, r->entries_read)); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaEnumUsersCtr1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaEnumUsersCtr1 *r) +{ + uint32_t cntr_user1_1; + ndr_print_struct(ndr, name, "wkssvc_NetWkstaEnumUsersCtr1"); + ndr->depth++; + ndr_print_uint32(ndr, "entries_read", r->entries_read); + ndr_print_ptr(ndr, "user1", r->user1); + ndr->depth++; + if (r->user1) { + ndr->print(ndr, "%s: ARRAY(%d)", "user1", r->entries_read); + ndr->depth++; + for (cntr_user1_1=0;cntr_user1_1entries_read;cntr_user1_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_user1_1); + if (idx_1) { + ndr_print_wkssvc_NetrWkstaUserInfo1(ndr, "user1", &r->user1[cntr_user1_1]); + free(idx_1); + } + } + ndr->depth--; + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsersCtr(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetWkstaEnumUsersCtr *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); + switch (level) { + case 0: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->user0)); + break; + + case 1: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->user1)); + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + if (r->user0) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaEnumUsersCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->user0)); + } + break; + + case 1: + if (r->user1) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaEnumUsersCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->user1)); + } + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetWkstaEnumUsersCtr *r) +{ + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_user0_0; + TALLOC_CTX *_mem_save_user1_0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); + if (_level != level) { + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); + } + switch (level) { + case 0: { + uint32_t _ptr_user0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user0)); + if (_ptr_user0) { + NDR_PULL_ALLOC(ndr, r->user0); + } else { + r->user0 = NULL; + } + break; } + + case 1: { + uint32_t _ptr_user1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user1)); + if (_ptr_user1) { + NDR_PULL_ALLOC(ndr, r->user1); + } else { + r->user1 = NULL; + } + break; } + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + if (r->user0) { + _mem_save_user0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaEnumUsersCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->user0)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_0, 0); + } + break; + + case 1: + if (r->user1) { + _mem_save_user1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaEnumUsersCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->user1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_0, 0); + } + break; + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaEnumUsersCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaEnumUsersCtr *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "wkssvc_NetWkstaEnumUsersCtr"); + switch (level) { + case 0: + ndr_print_ptr(ndr, "user0", r->user0); + ndr->depth++; + if (r->user0) { + ndr_print_wkssvc_NetWkstaEnumUsersCtr0(ndr, "user0", r->user0); + } + ndr->depth--; + break; + + case 1: + ndr_print_ptr(ndr, "user1", r->user1); + ndr->depth++; + if (r->user1) { + ndr_print_wkssvc_NetWkstaEnumUsersCtr1(ndr, "user1", r->user1); + } + ndr->depth--; + break; + + default: + ndr_print_bad_level(ndr, name, level); + } +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsersInfo(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaEnumUsersInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level)); + NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level)); + NDR_CHECK(ndr_push_wkssvc_NetWkstaEnumUsersCtr(ndr, NDR_SCALARS, &r->ctr)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaEnumUsersCtr(ndr, NDR_BUFFERS, &r->ctr)); + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersInfo(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaEnumUsersInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level)); + NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level)); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaEnumUsersCtr(ndr, NDR_SCALARS, &r->ctr)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_pull_wkssvc_NetWkstaEnumUsersCtr(ndr, NDR_BUFFERS, &r->ctr)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaEnumUsersInfo(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaEnumUsersInfo *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaEnumUsersInfo"); + ndr->depth++; + ndr_print_uint32(ndr, "level", r->level); + ndr_print_set_switch_value(ndr, &r->ctr, r->level); + ndr_print_wkssvc_NetWkstaEnumUsersCtr(ndr, "ctr", &r->ctr); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserInfo1101(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrWkstaUserInfo1101 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_domains)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->other_domains) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->other_domains, ndr_charset_length(r->other_domains, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1101(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrWkstaUserInfo1101 *r) +{ + uint32_t _ptr_other_domains; + TALLOC_CTX *_mem_save_other_domains_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_other_domains)); + if (_ptr_other_domains) { + NDR_PULL_ALLOC(ndr, r->other_domains); + } else { + r->other_domains = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->other_domains) { + _mem_save_other_domains_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->other_domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->other_domains)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->other_domains)); + if (ndr_get_array_length(ndr, &r->other_domains) > ndr_get_array_size(ndr, &r->other_domains)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->other_domains), ndr_get_array_length(ndr, &r->other_domains)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->other_domains, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_domains_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaUserInfo1101(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWkstaUserInfo1101 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrWkstaUserInfo1101"); + ndr->depth++; + ndr_print_ptr(ndr, "other_domains", r->other_domains); + ndr->depth++; + if (r->other_domains) { + ndr_print_string(ndr, "other_domains", r->other_domains); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserInfo(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetrWkstaUserInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); + switch (level) { + case 0: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0)); + break; + + case 1: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1)); + break; + + case 1101: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1101)); + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + if (r->info0) { + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0)); + } + break; + + case 1: + if (r->info1) { + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); + } + break; + + case 1101: + if (r->info1101) { + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo1101(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1101)); + } + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetrWkstaUserInfo *r) +{ + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; + TALLOC_CTX *_mem_save_info1_0; + TALLOC_CTX *_mem_save_info1101_0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); + if (_level != level) { + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); + } + switch (level) { + case 0: { + uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); + } else { + r->info0 = NULL; + } + break; } + + case 1: { + uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); + } else { + r->info1 = NULL; + } + break; } + + case 1101: { + uint32_t _ptr_info1101; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1101)); + if (_ptr_info1101) { + NDR_PULL_ALLOC(ndr, r->info1101); + } else { + r->info1101 = NULL; + } + break; } + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + if (r->info0) { + _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0); + } + break; + + case 1: + if (r->info1) { + _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0); + } + break; + + case 1101: + if (r->info1101) { + _mem_save_info1101_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1101, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo1101(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1101)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1101_0, 0); + } + break; + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaUserInfo(struct ndr_print *ndr, const char *name, const union wkssvc_NetrWkstaUserInfo *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "wkssvc_NetrWkstaUserInfo"); + switch (level) { + case 0: + ndr_print_ptr(ndr, "info0", r->info0); + ndr->depth++; + if (r->info0) { + ndr_print_wkssvc_NetrWkstaUserInfo0(ndr, "info0", r->info0); + } + ndr->depth--; + break; + + case 1: + ndr_print_ptr(ndr, "info1", r->info1); + ndr->depth++; + if (r->info1) { + ndr_print_wkssvc_NetrWkstaUserInfo1(ndr, "info1", r->info1); + } + ndr->depth--; + break; + + case 1101: + ndr_print_ptr(ndr, "info1101", r->info1101); + ndr->depth++; + if (r->info1101) { + ndr_print_wkssvc_NetrWkstaUserInfo1101(ndr, "info1101", r->info1101); + } + ndr->depth--; + break; + + default: + ndr_print_bad_level(ndr, name, level); + } +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportInfo0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaTransportInfo0 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->quality_of_service)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vc_count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->name)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->address)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->wan_link)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->address) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->address, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->address, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->address, ndr_charset_length(r->address, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportInfo0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaTransportInfo0 *r) +{ + uint32_t _ptr_name; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_address; + TALLOC_CTX *_mem_save_address_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->quality_of_service)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vc_count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name)); + if (_ptr_name) { + NDR_PULL_ALLOC(ndr, r->name); + } else { + r->name = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_address)); + if (_ptr_address) { + NDR_PULL_ALLOC(ndr, r->address); + } else { + r->address = NULL; + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->wan_link)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->name) { + _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); + if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->address) { + _mem_save_address_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->address, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->address)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->address)); + if (ndr_get_array_length(ndr, &r->address) > ndr_get_array_size(ndr, &r->address)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->address), ndr_get_array_length(ndr, &r->address)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->address), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->address, ndr_get_array_length(ndr, &r->address), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_address_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportInfo0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportInfo0 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaTransportInfo0"); + ndr->depth++; + ndr_print_uint32(ndr, "quality_of_service", r->quality_of_service); + ndr_print_uint32(ndr, "vc_count", r->vc_count); + ndr_print_ptr(ndr, "name", r->name); + ndr->depth++; + if (r->name) { + ndr_print_string(ndr, "name", r->name); + } + ndr->depth--; + ndr_print_ptr(ndr, "address", r->address); + ndr->depth++; + if (r->address) { + ndr_print_string(ndr, "address", r->address); + } + ndr->depth--; + ndr_print_uint32(ndr, "wan_link", r->wan_link); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportCtr0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaTransportCtr0 *r) +{ + uint32_t cntr_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->array)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaTransportCtr0 *r) +{ + uint32_t _ptr_array; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array)); + if (_ptr_array) { + NDR_PULL_ALLOC(ndr, r->array); + } else { + r->array = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); + NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0); + } + if (r->array) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count)); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportCtr0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportCtr0 *r) +{ + uint32_t cntr_array_1; + ndr_print_struct(ndr, name, "wkssvc_NetWkstaTransportCtr0"); + ndr->depth++; + ndr_print_uint32(ndr, "count", r->count); + ndr_print_ptr(ndr, "array", r->array); + ndr->depth++; + if (r->array) { + ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count); + ndr->depth++; + for (cntr_array_1=0;cntr_array_1count;cntr_array_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_array_1); + if (idx_1) { + ndr_print_wkssvc_NetWkstaTransportInfo0(ndr, "array", &r->array[cntr_array_1]); + free(idx_1); + } + } + ndr->depth--; + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportCtr(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetWkstaTransportCtr *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); + switch (level) { + case 0: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr0)); + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + if (r->ctr0) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr0)); + } + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetWkstaTransportCtr *r) +{ + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); + if (_level != level) { + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); + } + switch (level) { + case 0: { + uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); + } else { + r->ctr0 = NULL; + } + break; } + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + if (r->ctr0) { + _mem_save_ctr0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->ctr0, 0); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr0)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr0_0, 0); + } + break; + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaTransportCtr *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "wkssvc_NetWkstaTransportCtr"); + switch (level) { + case 0: + ndr_print_ptr(ndr, "ctr0", r->ctr0); + ndr->depth++; + if (r->ctr0) { + ndr_print_wkssvc_NetWkstaTransportCtr0(ndr, "ctr0", r->ctr0); + } + ndr->depth--; + break; + + default: + ndr_print_bad_level(ndr, name, level); + } +} + +static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportInfo(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaTransportInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level)); + NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level)); + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportCtr(ndr, NDR_SCALARS, &r->ctr)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportCtr(ndr, NDR_BUFFERS, &r->ctr)); + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportInfo(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaTransportInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level)); + NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level)); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportCtr(ndr, NDR_SCALARS, &r->ctr)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportCtr(ndr, NDR_BUFFERS, &r->ctr)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportInfo(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportInfo *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetWkstaTransportInfo"); + ndr->depth++; + ndr_print_uint32(ndr, "level", r->level); + ndr_print_set_switch_value(ndr, &r->ctr, r->level); + ndr_print_wkssvc_NetWkstaTransportCtr(ndr, "ctr", &r->ctr); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo3(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseInfo3 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->unknown1) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->unknown2) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo3(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo3 *r) +{ + uint32_t _ptr_unknown1; + TALLOC_CTX *_mem_save_unknown1_0; + uint32_t _ptr_unknown2; + TALLOC_CTX *_mem_save_unknown2_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1)); + if (_ptr_unknown1) { + NDR_PULL_ALLOC(ndr, r->unknown1); + } else { + r->unknown1 = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2)); + if (_ptr_unknown2) { + NDR_PULL_ALLOC(ndr, r->unknown2); + } else { + r->unknown2 = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->unknown1) { + _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1)); + if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0); + } + if (r->unknown2) { + _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2)); + if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseInfo3(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo3 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrUseInfo3"); + ndr->depth++; + ndr_print_ptr(ndr, "unknown1", r->unknown1); + ndr->depth++; + if (r->unknown1) { + ndr_print_string(ndr, "unknown1", r->unknown1); + } + ndr->depth--; + ndr_print_ptr(ndr, "unknown2", r->unknown2); + ndr->depth++; + if (r->unknown2) { + ndr_print_string(ndr, "unknown2", r->unknown2); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo2(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseInfo2 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->local)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->password)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->asg_type)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_count)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->local) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->local, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->local, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->local, ndr_charset_length(r->local, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->remote) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote, ndr_charset_length(r->remote, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->password) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->password, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->password, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->password, ndr_charset_length(r->password, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->user_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->domain_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo2(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo2 *r) +{ + uint32_t _ptr_local; + TALLOC_CTX *_mem_save_local_0; + uint32_t _ptr_remote; + TALLOC_CTX *_mem_save_remote_0; + uint32_t _ptr_password; + TALLOC_CTX *_mem_save_password_0; + uint32_t _ptr_user_name; + TALLOC_CTX *_mem_save_user_name_0; + uint32_t _ptr_domain_name; + TALLOC_CTX *_mem_save_domain_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local)); + if (_ptr_local) { + NDR_PULL_ALLOC(ndr, r->local); + } else { + r->local = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote)); + if (_ptr_remote) { + NDR_PULL_ALLOC(ndr, r->remote); + } else { + r->remote = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->password); + } else { + r->password = NULL; + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->asg_type)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_count)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name)); + if (_ptr_user_name) { + NDR_PULL_ALLOC(ndr, r->user_name); + } else { + r->user_name = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); + if (_ptr_domain_name) { + NDR_PULL_ALLOC(ndr, r->domain_name); + } else { + r->domain_name = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->local) { + _mem_save_local_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->local, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->local)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->local)); + if (ndr_get_array_length(ndr, &r->local) > ndr_get_array_size(ndr, &r->local)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->local), ndr_get_array_length(ndr, &r->local)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_0, 0); + } + if (r->remote) { + _mem_save_remote_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->remote, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->remote)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->remote)); + if (ndr_get_array_length(ndr, &r->remote) > ndr_get_array_size(ndr, &r->remote)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote), ndr_get_array_length(ndr, &r->remote)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_0, 0); + } + if (r->password) { + _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->password)); + if (ndr_get_array_length(ndr, &r->password) > ndr_get_array_size(ndr, &r->password)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->password), ndr_get_array_length(ndr, &r->password)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + if (r->user_name) { + _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name)); + if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0); + } + if (r->domain_name) { + _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name)); + if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseInfo2(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo2 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrUseInfo2"); + ndr->depth++; + ndr_print_ptr(ndr, "local", r->local); + ndr->depth++; + if (r->local) { + ndr_print_string(ndr, "local", r->local); + } + ndr->depth--; + ndr_print_ptr(ndr, "remote", r->remote); + ndr->depth++; + if (r->remote) { + ndr_print_string(ndr, "remote", r->remote); + } + ndr->depth--; + ndr_print_ptr(ndr, "password", r->password); + ndr->depth++; + if (r->password) { + ndr_print_string(ndr, "password", r->password); + } + ndr->depth--; + ndr_print_uint32(ndr, "status", r->status); + ndr_print_uint32(ndr, "asg_type", r->asg_type); + ndr_print_uint32(ndr, "ref_count", r->ref_count); + ndr_print_uint32(ndr, "use_count", r->use_count); + ndr_print_ptr(ndr, "user_name", r->user_name); + ndr->depth++; + if (r->user_name) { + ndr_print_string(ndr, "user_name", r->user_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "domain_name", r->domain_name); + ndr->depth++; + if (r->domain_name) { + ndr_print_string(ndr, "domain_name", r->domain_name); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo1(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseInfo1 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->local)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->password)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->asg_type)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_count)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->use_count)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->local) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->local, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->local, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->local, ndr_charset_length(r->local, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->remote) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote, ndr_charset_length(r->remote, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->password) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->password, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->password, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->password, ndr_charset_length(r->password, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo1 *r) +{ + uint32_t _ptr_local; + TALLOC_CTX *_mem_save_local_0; + uint32_t _ptr_remote; + TALLOC_CTX *_mem_save_remote_0; + uint32_t _ptr_password; + TALLOC_CTX *_mem_save_password_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local)); + if (_ptr_local) { + NDR_PULL_ALLOC(ndr, r->local); + } else { + r->local = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote)); + if (_ptr_remote) { + NDR_PULL_ALLOC(ndr, r->remote); + } else { + r->remote = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->password); + } else { + r->password = NULL; + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->asg_type)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_count)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->use_count)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->local) { + _mem_save_local_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->local, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->local)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->local)); + if (ndr_get_array_length(ndr, &r->local) > ndr_get_array_size(ndr, &r->local)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->local), ndr_get_array_length(ndr, &r->local)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_0, 0); + } + if (r->remote) { + _mem_save_remote_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->remote, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->remote)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->remote)); + if (ndr_get_array_length(ndr, &r->remote) > ndr_get_array_size(ndr, &r->remote)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote), ndr_get_array_length(ndr, &r->remote)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_0, 0); + } + if (r->password) { + _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->password)); + if (ndr_get_array_length(ndr, &r->password) > ndr_get_array_size(ndr, &r->password)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->password), ndr_get_array_length(ndr, &r->password)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseInfo1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo1 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrUseInfo1"); + ndr->depth++; + ndr_print_ptr(ndr, "local", r->local); + ndr->depth++; + if (r->local) { + ndr_print_string(ndr, "local", r->local); + } + ndr->depth--; + ndr_print_ptr(ndr, "remote", r->remote); + ndr->depth++; + if (r->remote) { + ndr_print_string(ndr, "remote", r->remote); + } + ndr->depth--; + ndr_print_ptr(ndr, "password", r->password); + ndr->depth++; + if (r->password) { + ndr_print_string(ndr, "password", r->password); + } + ndr->depth--; + ndr_print_uint32(ndr, "status", r->status); + ndr_print_uint32(ndr, "asg_type", r->asg_type); + ndr_print_uint32(ndr, "ref_count", r->ref_count); + ndr_print_uint32(ndr, "use_count", r->use_count); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseInfo0 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->local)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->local) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->local, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->local, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->local, ndr_charset_length(r->local, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->remote) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->remote, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote, ndr_charset_length(r->remote, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo0 *r) +{ + uint32_t _ptr_local; + TALLOC_CTX *_mem_save_local_0; + uint32_t _ptr_remote; + TALLOC_CTX *_mem_save_remote_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local)); + if (_ptr_local) { + NDR_PULL_ALLOC(ndr, r->local); + } else { + r->local = NULL; + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote)); + if (_ptr_remote) { + NDR_PULL_ALLOC(ndr, r->remote); + } else { + r->remote = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->local) { + _mem_save_local_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->local, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->local)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->local)); + if (ndr_get_array_length(ndr, &r->local) > ndr_get_array_size(ndr, &r->local)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->local), ndr_get_array_length(ndr, &r->local)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_0, 0); + } + if (r->remote) { + _mem_save_remote_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->remote, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->remote)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->remote)); + if (ndr_get_array_length(ndr, &r->remote) > ndr_get_array_size(ndr, &r->remote)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote), ndr_get_array_length(ndr, &r->remote)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseInfo0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo0 *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrUseInfo0"); + ndr->depth++; + ndr_print_ptr(ndr, "local", r->local); + ndr->depth++; + if (r->local) { + ndr_print_string(ndr, "local", r->local); + } + ndr->depth--; + ndr_print_ptr(ndr, "remote", r->remote); + ndr->depth++; + if (r->remote) { + ndr_print_string(ndr, "remote", r->remote); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseGetInfoCtr(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetrUseGetInfoCtr *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); + switch (level) { + case 0: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0)); + break; + + case 1: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1)); + break; + + case 2: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2)); + break; + + case 3: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3)); + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + if (r->info0) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0)); + } + break; + + case 1: + if (r->info1) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); + } + break; + + case 2: + if (r->info2) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2)); + } + break; + + case 3: + if (r->info3) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3)); + } + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfoCtr(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetrUseGetInfoCtr *r) +{ + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; + TALLOC_CTX *_mem_save_info1_0; + TALLOC_CTX *_mem_save_info2_0; + TALLOC_CTX *_mem_save_info3_0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); + if (_level != level) { + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); + } + switch (level) { + case 0: { + uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); + } else { + r->info0 = NULL; + } + break; } + + case 1: { + uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); + } else { + r->info1 = NULL; + } + break; } + + case 2: { + uint32_t _ptr_info2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); + if (_ptr_info2) { + NDR_PULL_ALLOC(ndr, r->info2); + } else { + r->info2 = NULL; + } + break; } + + case 3: { + uint32_t _ptr_info3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3)); + if (_ptr_info3) { + NDR_PULL_ALLOC(ndr, r->info3); + } else { + r->info3 = NULL; } break; } - case 1027: { - uint32_t _ptr_info1027; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1027)); - if (_ptr_info1027) { - NDR_PULL_ALLOC(ndr, r->info1027); - } else { - r->info1027 = NULL; - } - break; } + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + if (r->info0) { + _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0); + } + break; + + case 1: + if (r->info1) { + _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0); + } + break; + + case 2: + if (r->info2) { + _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0); + } + break; + + case 3: + if (r->info3) { + _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0); + } + break; + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseGetInfoCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetrUseGetInfoCtr *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "wkssvc_NetrUseGetInfoCtr"); + switch (level) { + case 0: + ndr_print_ptr(ndr, "info0", r->info0); + ndr->depth++; + if (r->info0) { + ndr_print_wkssvc_NetrUseInfo0(ndr, "info0", r->info0); + } + ndr->depth--; + break; + + case 1: + ndr_print_ptr(ndr, "info1", r->info1); + ndr->depth++; + if (r->info1) { + ndr_print_wkssvc_NetrUseInfo1(ndr, "info1", r->info1); + } + ndr->depth--; + break; + + case 2: + ndr_print_ptr(ndr, "info2", r->info2); + ndr->depth++; + if (r->info2) { + ndr_print_wkssvc_NetrUseInfo2(ndr, "info2", r->info2); + } + ndr->depth--; + break; + + case 3: + ndr_print_ptr(ndr, "info3", r->info3); + ndr->depth++; + if (r->info3) { + ndr_print_wkssvc_NetrUseInfo3(ndr, "info3", r->info3); + } + ndr->depth--; + break; + + default: + ndr_print_bad_level(ndr, name, level); + } +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumCtr2(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseEnumCtr2 *r) +{ + uint32_t cntr_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->array)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr2(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseEnumCtr2 *r) +{ + uint32_t _ptr_array; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array)); + if (_ptr_array) { + NDR_PULL_ALLOC(ndr, r->array); + } else { + r->array = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); + NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0); + } + if (r->array) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count)); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseEnumCtr2(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumCtr2 *r) +{ + uint32_t cntr_array_1; + ndr_print_struct(ndr, name, "wkssvc_NetrUseEnumCtr2"); + ndr->depth++; + ndr_print_uint32(ndr, "count", r->count); + ndr_print_ptr(ndr, "array", r->array); + ndr->depth++; + if (r->array) { + ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count); + ndr->depth++; + for (cntr_array_1=0;cntr_array_1count;cntr_array_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_array_1); + if (idx_1) { + ndr_print_wkssvc_NetrUseInfo2(ndr, "array", &r->array[cntr_array_1]); + free(idx_1); + } + } + ndr->depth--; + } + ndr->depth--; + ndr->depth--; +} - case 1033: { - uint32_t _ptr_info1033; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1033)); - if (_ptr_info1033) { - NDR_PULL_ALLOC(ndr, r->info1033); - } else { - r->info1033 = NULL; - } - break; } +static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumCtr1(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseEnumCtr1 *r) +{ + uint32_t cntr_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->array)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + } + } + return NDR_ERR_SUCCESS; +} - default: { - break; } +static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseEnumCtr1 *r) +{ + uint32_t _ptr_array; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array)); + if (_ptr_array) { + NDR_PULL_ALLOC(ndr, r->array); + } else { + r->array = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); + NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0); + } + if (r->array) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count)); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseEnumCtr1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumCtr1 *r) +{ + uint32_t cntr_array_1; + ndr_print_struct(ndr, name, "wkssvc_NetrUseEnumCtr1"); + ndr->depth++; + ndr_print_uint32(ndr, "count", r->count); + ndr_print_ptr(ndr, "array", r->array); + ndr->depth++; + if (r->array) { + ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count); + ndr->depth++; + for (cntr_array_1=0;cntr_array_1count;cntr_array_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_array_1); + if (idx_1) { + ndr_print_wkssvc_NetrUseInfo1(ndr, "array", &r->array[cntr_array_1]); + free(idx_1); + } + } + ndr->depth--; + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumCtr0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseEnumCtr0 *r) +{ + uint32_t cntr_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->array)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_push_wkssvc_NetrUseInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + } + } + return NDR_ERR_SUCCESS; +} +static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseEnumCtr0 *r) +{ + uint32_t _ptr_array; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array)); + if (_ptr_array) { + NDR_PULL_ALLOC(ndr, r->array); + } else { + r->array = NULL; } } if (ndr_flags & NDR_BUFFERS) { + if (r->array) { + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); + NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0); + } + if (r->array) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count)); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrUseEnumCtr0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumCtr0 *r) +{ + uint32_t cntr_array_1; + ndr_print_struct(ndr, name, "wkssvc_NetrUseEnumCtr0"); + ndr->depth++; + ndr_print_uint32(ndr, "count", r->count); + ndr_print_ptr(ndr, "array", r->array); + ndr->depth++; + if (r->array) { + ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count); + ndr->depth++; + for (cntr_array_1=0;cntr_array_1count;cntr_array_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_array_1); + if (idx_1) { + ndr_print_wkssvc_NetrUseInfo0(ndr, "array", &r->array[cntr_array_1]); + free(idx_1); + } + } + ndr->depth--; + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumCtr(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetrUseEnumCtr *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); switch (level) { - case 100: - if (r->info100) { - _mem_save_info100_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info100, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo100(ndr, NDR_SCALARS|NDR_BUFFERS, r->info100)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info100_0, 0); - } + case 0: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr0)); break; - case 101: - if (r->info101) { - _mem_save_info101_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info101, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo101(ndr, NDR_SCALARS|NDR_BUFFERS, r->info101)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info101_0, 0); - } + case 1: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr1)); break; - case 102: - if (r->info102) { - _mem_save_info102_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info102, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo102(ndr, NDR_SCALARS|NDR_BUFFERS, r->info102)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info102_0, 0); - } + case 2: + NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr2)); break; - case 502: - if (r->info502) { - _mem_save_info502_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info502, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo502(ndr, NDR_SCALARS, r->info502)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info502_0, 0); + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + if (r->ctr0) { + NDR_CHECK(ndr_push_wkssvc_NetrUseEnumCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr0)); } break; - case 1010: - if (r->info1010) { - _mem_save_info1010_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1010, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1010(ndr, NDR_SCALARS, r->info1010)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1010_0, 0); + case 1: + if (r->ctr1) { + NDR_CHECK(ndr_push_wkssvc_NetrUseEnumCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1)); } break; - case 1011: - if (r->info1011) { - _mem_save_info1011_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1011, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1011(ndr, NDR_SCALARS, r->info1011)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1011_0, 0); + case 2: + if (r->ctr2) { + NDR_CHECK(ndr_push_wkssvc_NetrUseEnumCtr2(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr2)); } break; - case 1012: - if (r->info1012) { - _mem_save_info1012_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1012, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1012(ndr, NDR_SCALARS, r->info1012)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1012_0, 0); + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetrUseEnumCtr *r) +{ + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; + TALLOC_CTX *_mem_save_ctr1_0; + TALLOC_CTX *_mem_save_ctr2_0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); + if (_level != level) { + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); + } + switch (level) { + case 0: { + uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); + } else { + r->ctr0 = NULL; } - break; + break; } - case 1013: - if (r->info1013) { - _mem_save_info1013_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1013, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1013(ndr, NDR_SCALARS, r->info1013)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1013_0, 0); + case 1: { + uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); + } else { + r->ctr1 = NULL; } - break; + break; } - case 1018: - if (r->info1018) { - _mem_save_info1018_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1018, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1018(ndr, NDR_SCALARS, r->info1018)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1018_0, 0); + case 2: { + uint32_t _ptr_ctr2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr2)); + if (_ptr_ctr2) { + NDR_PULL_ALLOC(ndr, r->ctr2); + } else { + r->ctr2 = NULL; } - break; + break; } - case 1023: - if (r->info1023) { - _mem_save_info1023_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1023, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1023(ndr, NDR_SCALARS, r->info1023)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1023_0, 0); + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + if (r->ctr0) { + _mem_save_ctr0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->ctr0, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrUseEnumCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr0)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr0_0, 0); } break; - case 1027: - if (r->info1027) { - _mem_save_info1027_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1027, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1027(ndr, NDR_SCALARS, r->info1027)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1027_0, 0); + case 1: + if (r->ctr1) { + _mem_save_ctr1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->ctr1, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrUseEnumCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr1_0, 0); } break; - case 1033: - if (r->info1033) { - _mem_save_info1033_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1033, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1033(ndr, NDR_SCALARS, r->info1033)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1033_0, 0); + case 2: + if (r->ctr2) { + _mem_save_ctr2_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->ctr2, 0); + NDR_CHECK(ndr_pull_wkssvc_NetrUseEnumCtr2(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr2)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr2_0, 0); } break; default: - break; - + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); } } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaInfo *r) +_PUBLIC_ void ndr_print_wkssvc_NetrUseEnumCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetrUseEnumCtr *r) { int level; level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "wkssvc_NetWkstaInfo"); + ndr_print_union(ndr, name, level, "wkssvc_NetrUseEnumCtr"); switch (level) { - case 100: - ndr_print_ptr(ndr, "info100", r->info100); + case 0: + ndr_print_ptr(ndr, "ctr0", r->ctr0); ndr->depth++; - if (r->info100) { - ndr_print_wkssvc_NetWkstaInfo100(ndr, "info100", r->info100); + if (r->ctr0) { + ndr_print_wkssvc_NetrUseEnumCtr0(ndr, "ctr0", r->ctr0); } ndr->depth--; break; - case 101: - ndr_print_ptr(ndr, "info101", r->info101); + case 1: + ndr_print_ptr(ndr, "ctr1", r->ctr1); ndr->depth++; - if (r->info101) { - ndr_print_wkssvc_NetWkstaInfo101(ndr, "info101", r->info101); + if (r->ctr1) { + ndr_print_wkssvc_NetrUseEnumCtr1(ndr, "ctr1", r->ctr1); } ndr->depth--; break; - case 102: - ndr_print_ptr(ndr, "info102", r->info102); + case 2: + ndr_print_ptr(ndr, "ctr2", r->ctr2); ndr->depth++; - if (r->info102) { - ndr_print_wkssvc_NetWkstaInfo102(ndr, "info102", r->info102); + if (r->ctr2) { + ndr_print_wkssvc_NetrUseEnumCtr2(ndr, "ctr2", r->ctr2); } ndr->depth--; break; - case 502: - ndr_print_ptr(ndr, "info502", r->info502); - ndr->depth++; - if (r->info502) { - ndr_print_wkssvc_NetWkstaInfo502(ndr, "info502", r->info502); - } - ndr->depth--; - break; + default: + ndr_print_bad_level(ndr, name, level); + } +} - case 1010: - ndr_print_ptr(ndr, "info1010", r->info1010); - ndr->depth++; - if (r->info1010) { - ndr_print_wkssvc_NetWkstaInfo1010(ndr, "info1010", r->info1010); - } - ndr->depth--; - break; +static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumInfo(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrUseEnumInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level)); + NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level)); + NDR_CHECK(ndr_push_wkssvc_NetrUseEnumCtr(ndr, NDR_SCALARS, &r->ctr)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_push_wkssvc_NetrUseEnumCtr(ndr, NDR_BUFFERS, &r->ctr)); + } + return NDR_ERR_SUCCESS; +} - case 1011: - ndr_print_ptr(ndr, "info1011", r->info1011); - ndr->depth++; - if (r->info1011) { - ndr_print_wkssvc_NetWkstaInfo1011(ndr, "info1011", r->info1011); - } - ndr->depth--; - break; +static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumInfo(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseEnumInfo *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level)); + NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level)); + NDR_CHECK(ndr_pull_wkssvc_NetrUseEnumCtr(ndr, NDR_SCALARS, &r->ctr)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseEnumCtr(ndr, NDR_BUFFERS, &r->ctr)); + } + return NDR_ERR_SUCCESS; +} - case 1012: - ndr_print_ptr(ndr, "info1012", r->info1012); - ndr->depth++; - if (r->info1012) { - ndr_print_wkssvc_NetWkstaInfo1012(ndr, "info1012", r->info1012); - } - ndr->depth--; - break; +_PUBLIC_ void ndr_print_wkssvc_NetrUseEnumInfo(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumInfo *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrUseEnumInfo"); + ndr->depth++; + ndr_print_uint32(ndr, "level", r->level); + ndr_print_set_switch_value(ndr, &r->ctr, r->level); + ndr_print_wkssvc_NetrUseEnumCtr(ndr, "ctr", &r->ctr); + ndr->depth--; +} - case 1013: - ndr_print_ptr(ndr, "info1013", r->info1013); - ndr->depth++; - if (r->info1013) { - ndr_print_wkssvc_NetWkstaInfo1013(ndr, "info1013", r->info1013); - } - ndr->depth--; - break; +static enum ndr_err_code ndr_push_wkssvc_NetrWorkstationStatistics(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetrWorkstationStatistics *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 8)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown1)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown2)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown3)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown4)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown5)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown6)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown7)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown8)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown9)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown10)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown11)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown12)); + NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown13)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown14)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown15)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown17)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown18)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown19)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown20)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown21)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown22)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown23)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown24)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown25)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown26)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown27)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown28)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown29)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown30)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown31)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown32)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown33)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown34)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown35)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown36)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown37)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown38)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown39)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown40)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1018: - ndr_print_ptr(ndr, "info1018", r->info1018); - ndr->depth++; - if (r->info1018) { - ndr_print_wkssvc_NetWkstaInfo1018(ndr, "info1018", r->info1018); - } - ndr->depth--; - break; +static enum ndr_err_code ndr_pull_wkssvc_NetrWorkstationStatistics(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrWorkstationStatistics *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 8)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown1)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown2)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown3)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown4)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown5)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown6)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown7)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown8)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown9)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown10)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown11)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown12)); + NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown13)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown14)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown15)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown17)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown18)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown19)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown20)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown21)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown22)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown23)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown24)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown25)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown26)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown27)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown28)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown29)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown30)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown31)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown32)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown33)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown34)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown35)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown36)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown37)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown38)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown39)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown40)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} - case 1023: - ndr_print_ptr(ndr, "info1023", r->info1023); - ndr->depth++; - if (r->info1023) { - ndr_print_wkssvc_NetWkstaInfo1023(ndr, "info1023", r->info1023); - } - ndr->depth--; - break; +_PUBLIC_ void ndr_print_wkssvc_NetrWorkstationStatistics(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWorkstationStatistics *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrWorkstationStatistics"); + ndr->depth++; + ndr_print_hyper(ndr, "unknown1", r->unknown1); + ndr_print_hyper(ndr, "unknown2", r->unknown2); + ndr_print_hyper(ndr, "unknown3", r->unknown3); + ndr_print_hyper(ndr, "unknown4", r->unknown4); + ndr_print_hyper(ndr, "unknown5", r->unknown5); + ndr_print_hyper(ndr, "unknown6", r->unknown6); + ndr_print_hyper(ndr, "unknown7", r->unknown7); + ndr_print_hyper(ndr, "unknown8", r->unknown8); + ndr_print_hyper(ndr, "unknown9", r->unknown9); + ndr_print_hyper(ndr, "unknown10", r->unknown10); + ndr_print_hyper(ndr, "unknown11", r->unknown11); + ndr_print_hyper(ndr, "unknown12", r->unknown12); + ndr_print_hyper(ndr, "unknown13", r->unknown13); + ndr_print_uint32(ndr, "unknown14", r->unknown14); + ndr_print_uint32(ndr, "unknown15", r->unknown15); + ndr_print_uint32(ndr, "unknown16", r->unknown16); + ndr_print_uint32(ndr, "unknown17", r->unknown17); + ndr_print_uint32(ndr, "unknown18", r->unknown18); + ndr_print_uint32(ndr, "unknown19", r->unknown19); + ndr_print_uint32(ndr, "unknown20", r->unknown20); + ndr_print_uint32(ndr, "unknown21", r->unknown21); + ndr_print_uint32(ndr, "unknown22", r->unknown22); + ndr_print_uint32(ndr, "unknown23", r->unknown23); + ndr_print_uint32(ndr, "unknown24", r->unknown24); + ndr_print_uint32(ndr, "unknown25", r->unknown25); + ndr_print_uint32(ndr, "unknown26", r->unknown26); + ndr_print_uint32(ndr, "unknown27", r->unknown27); + ndr_print_uint32(ndr, "unknown28", r->unknown28); + ndr_print_uint32(ndr, "unknown29", r->unknown29); + ndr_print_uint32(ndr, "unknown30", r->unknown30); + ndr_print_uint32(ndr, "unknown31", r->unknown31); + ndr_print_uint32(ndr, "unknown32", r->unknown32); + ndr_print_uint32(ndr, "unknown33", r->unknown33); + ndr_print_uint32(ndr, "unknown34", r->unknown34); + ndr_print_uint32(ndr, "unknown35", r->unknown35); + ndr_print_uint32(ndr, "unknown36", r->unknown36); + ndr_print_uint32(ndr, "unknown37", r->unknown37); + ndr_print_uint32(ndr, "unknown38", r->unknown38); + ndr_print_uint32(ndr, "unknown39", r->unknown39); + ndr_print_uint32(ndr, "unknown40", r->unknown40); + ndr->depth--; +} - case 1027: - ndr_print_ptr(ndr, "info1027", r->info1027); - ndr->depth++; - if (r->info1027) { - ndr_print_wkssvc_NetWkstaInfo1027(ndr, "info1027", r->info1027); - } - ndr->depth--; - break; +static enum ndr_err_code ndr_push_wkssvc_renameflags(struct ndr_push *ndr, int ndr_flags, uint32_t r) +{ + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); + return NDR_ERR_SUCCESS; +} - case 1033: - ndr_print_ptr(ndr, "info1033", r->info1033); - ndr->depth++; - if (r->info1033) { - ndr_print_wkssvc_NetWkstaInfo1033(ndr, "info1033", r->info1033); - } - ndr->depth--; - break; +static enum ndr_err_code ndr_pull_wkssvc_renameflags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) +{ + uint32_t v; + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); + *r = v; + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_renameflags(struct ndr_print *ndr, const char *name, uint32_t r) +{ + ndr_print_uint32(ndr, name, r); + ndr->depth++; + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE", WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE, r); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetValidateNameType(struct ndr_push *ndr, int ndr_flags, enum wkssvc_NetValidateNameType r) +{ + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r)); + return NDR_ERR_SUCCESS; +} - default: - break; +static enum ndr_err_code ndr_pull_wkssvc_NetValidateNameType(struct ndr_pull *ndr, int ndr_flags, enum wkssvc_NetValidateNameType *r) +{ + uint16_t v; + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v)); + *r = v; + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetValidateNameType(struct ndr_print *ndr, const char *name, enum wkssvc_NetValidateNameType r) +{ + const char *val = NULL; + switch (r) { + case NetSetupUnknown: val = "NetSetupUnknown"; break; + case NetSetupMachine: val = "NetSetupMachine"; break; + case NetSetupWorkgroup: val = "NetSetupWorkgroup"; break; + case NetSetupDomain: val = "NetSetupDomain"; break; + case NetSetupNonExistentDomain: val = "NetSetupNonExistentDomain"; break; + case NetSetupDnsMachine: val = "NetSetupDnsMachine"; break; } + ndr_print_enum(ndr, name, "ENUM", val, r); } -static enum ndr_err_code ndr_push_USER_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct USER_INFO_0 *r) +static enum ndr_err_code ndr_push_wkssvc_NetJoinStatus(struct ndr_push *ndr, int ndr_flags, enum wkssvc_NetJoinStatus r) { - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->user)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->user) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - } + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r)); return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_USER_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct USER_INFO_0 *r) +static enum ndr_err_code ndr_pull_wkssvc_NetJoinStatus(struct ndr_pull *ndr, int ndr_flags, enum wkssvc_NetJoinStatus *r) { - uint32_t _ptr_user; - TALLOC_CTX *_mem_save_user_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); - if (_ptr_user) { - NDR_PULL_ALLOC(ndr, r->user); - } else { - r->user = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->user) { - _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); - if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); - } - } + uint16_t v; + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v)); + *r = v; return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_USER_INFO_0(struct ndr_print *ndr, const char *name, const struct USER_INFO_0 *r) +_PUBLIC_ void ndr_print_wkssvc_NetJoinStatus(struct ndr_print *ndr, const char *name, enum wkssvc_NetJoinStatus r) { - ndr_print_struct(ndr, name, "USER_INFO_0"); - ndr->depth++; - ndr_print_ptr(ndr, "user", r->user); - ndr->depth++; - if (r->user) { - ndr_print_string(ndr, "user", r->user); + const char *val = NULL; + + switch (r) { + case NetSetupUnknownStatus: val = "NetSetupUnknownStatus"; break; + case NetSetupUnjoined: val = "NetSetupUnjoined"; break; + case NetSetupWorkgroupName: val = "NetSetupWorkgroupName"; break; + case NetSetupDomainName: val = "NetSetupDomainName"; break; } - ndr->depth--; - ndr->depth--; + ndr_print_enum(ndr, name, "ENUM", val, r); } -static enum ndr_err_code ndr_push_USER_INFO_0_CONTAINER(struct ndr_push *ndr, int ndr_flags, const struct USER_INFO_0_CONTAINER *r) +static enum ndr_err_code ndr_push_wkssvc_PasswordBuffer(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_PasswordBuffer *r) { - uint32_t cntr_user0_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->user0)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->user0) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); - for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { - NDR_CHECK(ndr_push_USER_INFO_0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1])); - } - for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { - NDR_CHECK(ndr_push_USER_INFO_0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1])); - } + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 1)); + NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 524)); } + if (ndr_flags & NDR_BUFFERS) { + } + ndr->flags = _flags_save_STRUCT; } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_USER_INFO_0_CONTAINER(struct ndr_pull *ndr, int ndr_flags, struct USER_INFO_0_CONTAINER *r) +static enum ndr_err_code ndr_pull_wkssvc_PasswordBuffer(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_PasswordBuffer *r) { - uint32_t _ptr_user0; - uint32_t cntr_user0_1; - TALLOC_CTX *_mem_save_user0_0; - TALLOC_CTX *_mem_save_user0_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entries_read)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user0)); - if (_ptr_user0) { - NDR_PULL_ALLOC(ndr, r->user0); - } else { - r->user0 = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->user0) { - _mem_save_user0_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->user0)); - NDR_PULL_ALLOC_N(ndr, r->user0, ndr_get_array_size(ndr, &r->user0)); - _mem_save_user0_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); - for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { - NDR_CHECK(ndr_pull_USER_INFO_0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1])); - } - for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { - NDR_CHECK(ndr_pull_USER_INFO_0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_0, 0); + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); + NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 524)); } - if (r->user0) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->user0, r->entries_read)); + if (ndr_flags & NDR_BUFFERS) { } + ndr->flags = _flags_save_STRUCT; } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_USER_INFO_0_CONTAINER(struct ndr_print *ndr, const char *name, const struct USER_INFO_0_CONTAINER *r) +_PUBLIC_ void ndr_print_wkssvc_PasswordBuffer(struct ndr_print *ndr, const char *name, const struct wkssvc_PasswordBuffer *r) { - uint32_t cntr_user0_1; - ndr_print_struct(ndr, name, "USER_INFO_0_CONTAINER"); - ndr->depth++; - ndr_print_uint32(ndr, "entries_read", r->entries_read); - ndr_print_ptr(ndr, "user0", r->user0); - ndr->depth++; - if (r->user0) { - ndr->print(ndr, "%s: ARRAY(%d)", "user0", r->entries_read); + ndr_print_struct(ndr, name, "wkssvc_PasswordBuffer"); + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); ndr->depth++; - for (cntr_user0_1=0;cntr_user0_1entries_read;cntr_user0_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_user0_1); - if (idx_1) { - ndr_print_USER_INFO_0(ndr, "user0", &r->user0[cntr_user0_1]); - free(idx_1); - } - } + ndr_print_array_uint8(ndr, "data", r->data, 524); ndr->depth--; + ndr->flags = _flags_save_STRUCT; } - ndr->depth--; - ndr->depth--; } -static enum ndr_err_code ndr_push_USER_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct USER_INFO_1 *r) +static enum ndr_err_code ndr_push_wkssvc_joinflags(struct ndr_push *ndr, int ndr_flags, uint32_t r) { - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->logon_domain)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_domains)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->logon_server)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->user_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->logon_domain) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_domain, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_domain, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->logon_domain, ndr_charset_length(r->logon_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->other_domains) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->other_domains, ndr_charset_length(r->other_domains, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->logon_server) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->logon_server, ndr_charset_length(r->logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_USER_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct USER_INFO_1 *r) +static enum ndr_err_code ndr_pull_wkssvc_joinflags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) { - uint32_t _ptr_user_name; - TALLOC_CTX *_mem_save_user_name_0; - uint32_t _ptr_logon_domain; - TALLOC_CTX *_mem_save_logon_domain_0; - uint32_t _ptr_other_domains; - TALLOC_CTX *_mem_save_other_domains_0; - uint32_t _ptr_logon_server; - TALLOC_CTX *_mem_save_logon_server_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name)); - if (_ptr_user_name) { - NDR_PULL_ALLOC(ndr, r->user_name); - } else { - r->user_name = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_domain)); - if (_ptr_logon_domain) { - NDR_PULL_ALLOC(ndr, r->logon_domain); - } else { - r->logon_domain = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_other_domains)); - if (_ptr_other_domains) { - NDR_PULL_ALLOC(ndr, r->other_domains); - } else { - r->other_domains = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); - if (_ptr_logon_server) { - NDR_PULL_ALLOC(ndr, r->logon_server); - } else { - r->logon_server = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->user_name) { - _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name)); - if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0); - } - if (r->logon_domain) { - _mem_save_logon_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->logon_domain, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->logon_domain)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->logon_domain)); - if (ndr_get_array_length(ndr, &r->logon_domain) > ndr_get_array_size(ndr, &r->logon_domain)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->logon_domain), ndr_get_array_length(ndr, &r->logon_domain)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->logon_domain), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_domain, ndr_get_array_length(ndr, &r->logon_domain), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_domain_0, 0); - } - if (r->other_domains) { - _mem_save_other_domains_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->other_domains, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->other_domains)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->other_domains)); - if (ndr_get_array_length(ndr, &r->other_domains) > ndr_get_array_size(ndr, &r->other_domains)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->other_domains), ndr_get_array_length(ndr, &r->other_domains)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->other_domains, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_domains_0, 0); - } - if (r->logon_server) { - _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->logon_server, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->logon_server)); - if (ndr_get_array_length(ndr, &r->logon_server) > ndr_get_array_size(ndr, &r->logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->logon_server), ndr_get_array_length(ndr, &r->logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_server, ndr_get_array_length(ndr, &r->logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); - } - } + uint32_t v; + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); + *r = v; return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_USER_INFO_1(struct ndr_print *ndr, const char *name, const struct USER_INFO_1 *r) +_PUBLIC_ void ndr_print_wkssvc_joinflags(struct ndr_print *ndr, const char *name, uint32_t r) { - ndr_print_struct(ndr, name, "USER_INFO_1"); - ndr->depth++; - ndr_print_ptr(ndr, "user_name", r->user_name); - ndr->depth++; - if (r->user_name) { - ndr_print_string(ndr, "user_name", r->user_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "logon_domain", r->logon_domain); - ndr->depth++; - if (r->logon_domain) { - ndr_print_string(ndr, "logon_domain", r->logon_domain); - } - ndr->depth--; - ndr_print_ptr(ndr, "other_domains", r->other_domains); + ndr_print_uint32(ndr, name, r); ndr->depth++; - if (r->other_domains) { - ndr_print_string(ndr, "other_domains", r->other_domains); - } + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME", WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT", WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_DEFER_SPN", WKSSVC_JOIN_FLAGS_DEFER_SPN, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED", WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_JOIN_UNSECURE", WKSSVC_JOIN_FLAGS_JOIN_UNSECURE, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED", WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE", WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE", WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE", WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_JOIN_TYPE", WKSSVC_JOIN_FLAGS_JOIN_TYPE, r); ndr->depth--; - ndr_print_ptr(ndr, "logon_server", r->logon_server); - ndr->depth++; - if (r->logon_server) { - ndr_print_string(ndr, "logon_server", r->logon_server); +} + +static enum ndr_err_code ndr_push_wkssvc_ComputerNameType(struct ndr_push *ndr, int ndr_flags, enum wkssvc_ComputerNameType r) +{ + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r)); + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_ComputerNameType(struct ndr_pull *ndr, int ndr_flags, enum wkssvc_ComputerNameType *r) +{ + uint16_t v; + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v)); + *r = v; + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_ComputerNameType(struct ndr_print *ndr, const char *name, enum wkssvc_ComputerNameType r) +{ + const char *val = NULL; + + switch (r) { + case NetPrimaryComputerName: val = "NetPrimaryComputerName"; break; + case NetAlternateComputerNames: val = "NetAlternateComputerNames"; break; + case NetAllComputerNames: val = "NetAllComputerNames"; break; + case NetComputerNameTypeMax: val = "NetComputerNameTypeMax"; break; } - ndr->depth--; - ndr->depth--; + ndr_print_enum(ndr, name, "ENUM", val, r); } -static enum ndr_err_code ndr_push_USER_INFO_1_CONTAINER(struct ndr_push *ndr, int ndr_flags, const struct USER_INFO_1_CONTAINER *r) +static enum ndr_err_code ndr_push_wkssvc_ComputerNamesCtr(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_ComputerNamesCtr *r) { - uint32_t cntr_user1_1; + uint32_t cntr_computer_name_1; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->user1)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_name)); } if (ndr_flags & NDR_BUFFERS) { - if (r->user1) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); - for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { - NDR_CHECK(ndr_push_USER_INFO_1(ndr, NDR_SCALARS, &r->user1[cntr_user1_1])); + if (r->computer_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); + for (cntr_computer_name_1 = 0; cntr_computer_name_1 < r->count; cntr_computer_name_1++) { + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->computer_name[cntr_computer_name_1])); } - for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { - NDR_CHECK(ndr_push_USER_INFO_1(ndr, NDR_BUFFERS, &r->user1[cntr_user1_1])); + for (cntr_computer_name_1 = 0; cntr_computer_name_1 < r->count; cntr_computer_name_1++) { + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->computer_name[cntr_computer_name_1])); } } } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_USER_INFO_1_CONTAINER(struct ndr_pull *ndr, int ndr_flags, struct USER_INFO_1_CONTAINER *r) +static enum ndr_err_code ndr_pull_wkssvc_ComputerNamesCtr(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_ComputerNamesCtr *r) { - uint32_t _ptr_user1; - uint32_t cntr_user1_1; - TALLOC_CTX *_mem_save_user1_0; - TALLOC_CTX *_mem_save_user1_1; + uint32_t _ptr_computer_name; + uint32_t cntr_computer_name_1; + TALLOC_CTX *_mem_save_computer_name_0; + TALLOC_CTX *_mem_save_computer_name_1; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entries_read)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user1)); - if (_ptr_user1) { - NDR_PULL_ALLOC(ndr, r->user1); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); + if (_ptr_computer_name) { + NDR_PULL_ALLOC(ndr, r->computer_name); } else { - r->user1 = NULL; + r->computer_name = NULL; } } if (ndr_flags & NDR_BUFFERS) { - if (r->user1) { - _mem_save_user1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->user1)); - NDR_PULL_ALLOC_N(ndr, r->user1, ndr_get_array_size(ndr, &r->user1)); - _mem_save_user1_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); - for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { - NDR_CHECK(ndr_pull_USER_INFO_1(ndr, NDR_SCALARS, &r->user1[cntr_user1_1])); + if (r->computer_name) { + _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_name)); + NDR_PULL_ALLOC_N(ndr, r->computer_name, ndr_get_array_size(ndr, &r->computer_name)); + _mem_save_computer_name_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->computer_name, 0); + for (cntr_computer_name_1 = 0; cntr_computer_name_1 < r->count; cntr_computer_name_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->computer_name[cntr_computer_name_1])); } - for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { - NDR_CHECK(ndr_pull_USER_INFO_1(ndr, NDR_BUFFERS, &r->user1[cntr_user1_1])); + for (cntr_computer_name_1 = 0; cntr_computer_name_1 < r->count; cntr_computer_name_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->computer_name[cntr_computer_name_1])); } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_0, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); } - if (r->user1) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->user1, r->entries_read)); + if (r->computer_name) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->computer_name, r->count)); } } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_USER_INFO_1_CONTAINER(struct ndr_print *ndr, const char *name, const struct USER_INFO_1_CONTAINER *r) +_PUBLIC_ void ndr_print_wkssvc_ComputerNamesCtr(struct ndr_print *ndr, const char *name, const struct wkssvc_ComputerNamesCtr *r) { - uint32_t cntr_user1_1; - ndr_print_struct(ndr, name, "USER_INFO_1_CONTAINER"); + uint32_t cntr_computer_name_1; + ndr_print_struct(ndr, name, "wkssvc_ComputerNamesCtr"); ndr->depth++; - ndr_print_uint32(ndr, "entries_read", r->entries_read); - ndr_print_ptr(ndr, "user1", r->user1); + ndr_print_uint32(ndr, "count", r->count); + ndr_print_ptr(ndr, "computer_name", r->computer_name); ndr->depth++; - if (r->user1) { - ndr->print(ndr, "%s: ARRAY(%d)", "user1", r->entries_read); + if (r->computer_name) { + ndr->print(ndr, "%s: ARRAY(%d)", "computer_name", r->count); ndr->depth++; - for (cntr_user1_1=0;cntr_user1_1entries_read;cntr_user1_1++) { + for (cntr_computer_name_1=0;cntr_computer_name_1count;cntr_computer_name_1++) { char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_user1_1); + asprintf(&idx_1, "[%d]", cntr_computer_name_1); if (idx_1) { - ndr_print_USER_INFO_1(ndr, "user1", &r->user1[cntr_user1_1]); + ndr_print_lsa_String(ndr, "computer_name", &r->computer_name[cntr_computer_name_1]); free(idx_1); } } @@ -1672,509 +5678,658 @@ _PUBLIC_ void ndr_print_USER_INFO_1_CONTAINER(struct ndr_print *ndr, const char ndr->depth--; } -static enum ndr_err_code ndr_push_WKS_USER_ENUM_UNION(struct ndr_push *ndr, int ndr_flags, const union WKS_USER_ENUM_UNION *r) +static enum ndr_err_code ndr_push_wkssvc_NetWkstaGetInfo(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaGetInfo *r) { - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); - switch (level) { - case 0: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->user0)); - break; - - case 1: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->user1)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 0: - if (r->user0) { - NDR_CHECK(ndr_push_USER_INFO_0_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user0)); - } - break; - - case 1: - if (r->user1) { - NDR_CHECK(ndr_push_USER_INFO_1_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user1)); - } - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + if (flags & NDR_OUT) { + if (r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKS_USER_ENUM_UNION(struct ndr_pull *ndr, int ndr_flags, union WKS_USER_ENUM_UNION *r) +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaGetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaGetInfo *r) { - int level; - uint32_t _level; - TALLOC_CTX *_mem_save_user0_0; - TALLOC_CTX *_mem_save_user1_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 0: { - uint32_t _ptr_user0; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user0)); - if (_ptr_user0) { - NDR_PULL_ALLOC(ndr, r->user0); - } else { - r->user0 = NULL; - } - break; } - - case 1: { - uint32_t _ptr_user1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user1)); - if (_ptr_user1) { - NDR_PULL_ALLOC(ndr, r->user1); - } else { - r->user1 = NULL; - } - break; } + uint32_t _ptr_server_name; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case 0: - if (r->user0) { - _mem_save_user0_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); - NDR_CHECK(ndr_pull_USER_INFO_0_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user0)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_0, 0); - } - break; - - case 1: - if (r->user1) { - _mem_save_user1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); - NDR_CHECK(ndr_pull_USER_INFO_1_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_0, 0); - } - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); + if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.info); } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKS_USER_ENUM_UNION(struct ndr_print *ndr, const char *name, const union WKS_USER_ENUM_UNION *r) +_PUBLIC_ void ndr_print_wkssvc_NetWkstaGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaGetInfo *r) { - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "WKS_USER_ENUM_UNION"); - switch (level) { - case 0: - ndr_print_ptr(ndr, "user0", r->user0); - ndr->depth++; - if (r->user0) { - ndr_print_USER_INFO_0_CONTAINER(ndr, "user0", r->user0); - } - ndr->depth--; - break; - - case 1: - ndr_print_ptr(ndr, "user1", r->user1); - ndr->depth++; - if (r->user1) { - ndr_print_USER_INFO_1_CONTAINER(ndr, "user1", r->user1); - } - ndr->depth--; - break; - - default: - ndr_print_bad_level(ndr, name, level); + ndr_print_struct(ndr, name, "wkssvc_NetWkstaGetInfo"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "wkssvc_NetWkstaGetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_uint32(ndr, "level", r->in.level); + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "wkssvc_NetWkstaGetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "info", r->out.info); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->out.info, r->in.level); + ndr_print_wkssvc_NetWkstaInfo(ndr, "info", r->out.info); + ndr->depth--; + ndr_print_WERROR(ndr, "result", r->out.result); + ndr->depth--; } + ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportInfo0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaTransportInfo0 *r) +static enum ndr_err_code ndr_push_wkssvc_NetWkstaSetInfo(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaSetInfo *r) { - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->quality_of_service)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->vc_count)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->name)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->address)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->wan_link)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->address) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->address, CH_UTF16))); + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->address, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->address, ndr_charset_length(r->address, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); + if (r->in.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level)); + NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + if (r->in.parm_error == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.parm_error)); + } + if (flags & NDR_OUT) { + if (r->out.parm_error == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.parm_error)); + NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportInfo0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaTransportInfo0 *r) +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaSetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaSetInfo *r) { - uint32_t _ptr_name; - TALLOC_CTX *_mem_save_name_0; - uint32_t _ptr_address; - TALLOC_CTX *_mem_save_address_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->quality_of_service)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vc_count)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name)); - if (_ptr_name) { - NDR_PULL_ALLOC(ndr, r->name); - } else { - r->name = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_address)); - if (_ptr_address) { - NDR_PULL_ALLOC(ndr, r->address); + uint32_t _ptr_server_name; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; + TALLOC_CTX *_mem_save_parm_error_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); } else { - r->address = NULL; + r->in.server_name = NULL; } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->wan_link)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->name) { - _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); - if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); } - if (r->address) { - _mem_save_address_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->address, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->address)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->address)); - if (ndr_get_array_length(ndr, &r->address) > ndr_get_array_size(ndr, &r->address)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->address), ndr_get_array_length(ndr, &r->address)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->address), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->address, ndr_get_array_length(ndr, &r->address), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_address_0, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level)); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.parm_error); + } + _mem_save_parm_error_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.parm_error, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.parm_error)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_error_0, LIBNDR_FLAG_REF_ALLOC); + NDR_PULL_ALLOC(ndr, r->out.parm_error); + *r->out.parm_error = *r->in.parm_error; + } + if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.parm_error); } + _mem_save_parm_error_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.parm_error, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.parm_error)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_error_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportInfo0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportInfo0 *r) +_PUBLIC_ void ndr_print_wkssvc_NetWkstaSetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaSetInfo *r) { - ndr_print_struct(ndr, name, "wkssvc_NetWkstaTransportInfo0"); - ndr->depth++; - ndr_print_uint32(ndr, "quality_of_service", r->quality_of_service); - ndr_print_uint32(ndr, "vc_count", r->vc_count); - ndr_print_ptr(ndr, "name", r->name); + ndr_print_struct(ndr, name, "wkssvc_NetWkstaSetInfo"); ndr->depth++; - if (r->name) { - ndr_print_string(ndr, "name", r->name); + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; } - ndr->depth--; - ndr_print_ptr(ndr, "address", r->address); - ndr->depth++; - if (r->address) { - ndr_print_string(ndr, "address", r->address); + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "wkssvc_NetWkstaSetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_uint32(ndr, "level", r->in.level); + ndr_print_ptr(ndr, "info", r->in.info); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->in.info, r->in.level); + ndr_print_wkssvc_NetWkstaInfo(ndr, "info", r->in.info); + ndr->depth--; + ndr_print_ptr(ndr, "parm_error", r->in.parm_error); + ndr->depth++; + ndr_print_uint32(ndr, "parm_error", *r->in.parm_error); + ndr->depth--; + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "wkssvc_NetWkstaSetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "parm_error", r->out.parm_error); + ndr->depth++; + ndr_print_uint32(ndr, "parm_error", *r->out.parm_error); + ndr->depth--; + ndr_print_WERROR(ndr, "result", r->out.result); + ndr->depth--; } - ndr->depth--; - ndr_print_uint32(ndr, "wan_link", r->wan_link); ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportCtr0(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_NetWkstaTransportCtr0 *r) +static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsers(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaEnumUsers *r) { - uint32_t cntr_array_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->array)); + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_wkssvc_NetWkstaEnumUsersInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.prefmaxlen)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle)); + if (r->in.resume_handle) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle)); + } } - if (ndr_flags & NDR_BUFFERS) { - if (r->array) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count)); - for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); - } - for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); - } + if (flags & NDR_OUT) { + if (r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_wkssvc_NetWkstaEnumUsersInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + if (r->out.entries_read == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.entries_read)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.resume_handle)); + if (r->out.resume_handle) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle)); + } + NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaTransportCtr0 *r) +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsers(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaEnumUsers *r) { - uint32_t _ptr_array; - uint32_t cntr_array_1; - TALLOC_CTX *_mem_save_array_0; - TALLOC_CTX *_mem_save_array_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array)); - if (_ptr_array) { - NDR_PULL_ALLOC(ndr, r->array); + uint32_t _ptr_server_name; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; + TALLOC_CTX *_mem_save_entries_read_0; + TALLOC_CTX *_mem_save_resume_handle_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaEnumUsersInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.prefmaxlen)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle)); + if (_ptr_resume_handle) { + NDR_PULL_ALLOC(ndr, r->in.resume_handle); + } else { + r->in.resume_handle = NULL; + } + if (r->in.resume_handle) { + _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.info); + *r->out.info = *r->in.info; + NDR_PULL_ALLOC(ndr, r->out.entries_read); + ZERO_STRUCTP(r->out.entries_read); + } + if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaEnumUsersInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.entries_read); + } + _mem_save_entries_read_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.entries_read, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.entries_read)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_read_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle)); + if (_ptr_resume_handle) { + NDR_PULL_ALLOC(ndr, r->out.resume_handle); } else { - r->array = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->array) { - _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); - NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); - _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); - for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { - NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); - } - for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { - NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0); + r->out.resume_handle = NULL; } - if (r->array) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count)); + if (r->out.resume_handle) { + _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0); } + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportCtr0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportCtr0 *r) +_PUBLIC_ void ndr_print_wkssvc_NetWkstaEnumUsers(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaEnumUsers *r) { - uint32_t cntr_array_1; - ndr_print_struct(ndr, name, "wkssvc_NetWkstaTransportCtr0"); - ndr->depth++; - ndr_print_uint32(ndr, "count", r->count); - ndr_print_ptr(ndr, "array", r->array); + ndr_print_struct(ndr, name, "wkssvc_NetWkstaEnumUsers"); ndr->depth++; - if (r->array) { - ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count); + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "wkssvc_NetWkstaEnumUsers"); ndr->depth++; - for (cntr_array_1=0;cntr_array_1count;cntr_array_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_array_1); - if (idx_1) { - ndr_print_wkssvc_NetWkstaTransportInfo0(ndr, "array", &r->array[cntr_array_1]); - free(idx_1); - } + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "info", r->in.info); + ndr->depth++; + ndr_print_wkssvc_NetWkstaEnumUsersInfo(ndr, "info", r->in.info); + ndr->depth--; + ndr_print_uint32(ndr, "prefmaxlen", r->in.prefmaxlen); + ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle); + ndr->depth++; + if (r->in.resume_handle) { + ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle); } ndr->depth--; + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "wkssvc_NetWkstaEnumUsers"); + ndr->depth++; + ndr_print_ptr(ndr, "info", r->out.info); + ndr->depth++; + ndr_print_wkssvc_NetWkstaEnumUsersInfo(ndr, "info", r->out.info); + ndr->depth--; + ndr_print_ptr(ndr, "entries_read", r->out.entries_read); + ndr->depth++; + ndr_print_uint32(ndr, "entries_read", *r->out.entries_read); + ndr->depth--; + ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle); + ndr->depth++; + if (r->out.resume_handle) { + ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle); + } + ndr->depth--; + ndr_print_WERROR(ndr, "result", r->out.result); + ndr->depth--; } - ndr->depth--; ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportCtr(struct ndr_push *ndr, int ndr_flags, const union wkssvc_NetWkstaTransportCtr *r) +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserGetInfo(struct ndr_push *ndr, int flags, const struct wkssvc_NetrWkstaUserGetInfo *r) { - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); - switch (level) { - case 0: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr0)); - break; - - default: - break; - + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown)); + if (r->in.unknown) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.unknown, ndr_charset_length(r->in.unknown, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 0: - if (r->ctr0) { - NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr0)); - } - break; - - default: - break; - + if (flags & NDR_OUT) { + if (r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr(struct ndr_pull *ndr, int ndr_flags, union wkssvc_NetWkstaTransportCtr *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserGetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaUserGetInfo *r) { - int level; - uint32_t _level; - TALLOC_CTX *_mem_save_ctr0_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 0: { - uint32_t _ptr_ctr0; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); - if (_ptr_ctr0) { - NDR_PULL_ALLOC(ndr, r->ctr0); - } else { - r->ctr0 = NULL; - } - break; } - - default: { - break; } + uint32_t _ptr_unknown; + TALLOC_CTX *_mem_save_unknown_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown)); + if (_ptr_unknown) { + NDR_PULL_ALLOC(ndr, r->in.unknown); + } else { + r->in.unknown = NULL; + } + if (r->in.unknown) { + _mem_save_unknown_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown)); + if (ndr_get_array_length(ndr, &r->in.unknown) > ndr_get_array_size(ndr, &r->in.unknown)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown), ndr_get_array_length(ndr, &r->in.unknown)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, 0); } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case 0: - if (r->ctr0) { - _mem_save_ctr0_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->ctr0, 0); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportCtr0(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr0)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr0_0, 0); - } - break; - - default: - break; - + if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.info); } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaTransportCtr *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "wkssvc_NetWkstaTransportCtr"); - switch (level) { - case 0: - ndr_print_ptr(ndr, "ctr0", r->ctr0); - ndr->depth++; - if (r->ctr0) { - ndr_print_wkssvc_NetWkstaTransportCtr0(ndr, "ctr0", r->ctr0); - } - ndr->depth--; - break; - - default: - break; - - } -} - -static enum ndr_err_code ndr_push_wkssvc_PasswordBuffer(struct ndr_push *ndr, int ndr_flags, const struct wkssvc_PasswordBuffer *r) +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaUserGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaUserGetInfo *r) { - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 1)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 524)); - } - if (ndr_flags & NDR_BUFFERS) { + ndr_print_struct(ndr, name, "wkssvc_NetrWkstaUserGetInfo"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_wkssvc_PasswordBuffer(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_PasswordBuffer *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 1)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 524)); + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "wkssvc_NetrWkstaUserGetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "unknown", r->in.unknown); + ndr->depth++; + if (r->in.unknown) { + ndr_print_string(ndr, "unknown", r->in.unknown); + } + ndr->depth--; + ndr_print_uint32(ndr, "level", r->in.level); + ndr->depth--; } - if (ndr_flags & NDR_BUFFERS) { + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "wkssvc_NetrWkstaUserGetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "info", r->out.info); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->out.info, r->in.level); + ndr_print_wkssvc_NetrWkstaUserInfo(ndr, "info", r->out.info); + ndr->depth--; + ndr_print_WERROR(ndr, "result", r->out.result); + ndr->depth--; } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_wkssvc_PasswordBuffer(struct ndr_print *ndr, const char *name, const struct wkssvc_PasswordBuffer *r) -{ - ndr_print_struct(ndr, name, "wkssvc_PasswordBuffer"); - ndr->depth++; - ndr_print_array_uint8(ndr, "data", r->data, 524); - ndr->depth--; -} - -static enum ndr_err_code ndr_push_wkssvc_joinflags(struct ndr_push *ndr, int ndr_flags, uint32_t r) -{ - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_wkssvc_joinflags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) -{ - uint32_t v; - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); - *r = v; - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_wkssvc_joinflags(struct ndr_print *ndr, const char *name, uint32_t r) -{ - ndr_print_uint32(ndr, name, r); - ndr->depth++; - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_DEFER_SPN", WKSSVC_JOIN_FLAGS_DEFER_SPN, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED", WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_JOIN_UNSECURE", WKSSVC_JOIN_FLAGS_JOIN_UNSECURE, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED", WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE", WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE", WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE", WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_JOIN_TYPE", WKSSVC_JOIN_FLAGS_JOIN_TYPE, r); ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_renameflags(struct ndr_push *ndr, int ndr_flags, uint32_t r) +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserSetInfo(struct ndr_push *ndr, int flags, const struct wkssvc_NetrWkstaUserSetInfo *r) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown)); + if (r->in.unknown) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.unknown, ndr_charset_length(r->in.unknown, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); + if (r->in.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level)); + NDR_CHECK(ndr_push_wkssvc_NetrWkstaUserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.parm_err)); + if (r->in.parm_err) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.parm_err)); + } + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.parm_err)); + if (r->out.parm_err) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.parm_err)); + } + NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); + } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_renameflags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserSetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaUserSetInfo *r) { - uint32_t v; - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); - *r = v; + uint32_t _ptr_unknown; + uint32_t _ptr_parm_err; + TALLOC_CTX *_mem_save_unknown_0; + TALLOC_CTX *_mem_save_info_0; + TALLOC_CTX *_mem_save_parm_err_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown)); + if (_ptr_unknown) { + NDR_PULL_ALLOC(ndr, r->in.unknown); + } else { + r->in.unknown = NULL; + } + if (r->in.unknown) { + _mem_save_unknown_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown)); + if (ndr_get_array_length(ndr, &r->in.unknown) > ndr_get_array_size(ndr, &r->in.unknown)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown), ndr_get_array_length(ndr, &r->in.unknown)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level)); + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parm_err)); + if (_ptr_parm_err) { + NDR_PULL_ALLOC(ndr, r->in.parm_err); + } else { + r->in.parm_err = NULL; + } + if (r->in.parm_err) { + _mem_save_parm_err_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.parm_err, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.parm_err)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_err_0, 0); + } + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parm_err)); + if (_ptr_parm_err) { + NDR_PULL_ALLOC(ndr, r->out.parm_err); + } else { + r->out.parm_err = NULL; + } + if (r->out.parm_err) { + _mem_save_parm_err_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.parm_err, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.parm_err)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_err_0, 0); + } + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); + } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_renameflags(struct ndr_print *ndr, const char *name, uint32_t r) +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaUserSetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaUserSetInfo *r) { - ndr_print_uint32(ndr, name, r); + ndr_print_struct(ndr, name, "wkssvc_NetrWkstaUserSetInfo"); ndr->depth++; - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE", WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE, r); + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "wkssvc_NetrWkstaUserSetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "unknown", r->in.unknown); + ndr->depth++; + if (r->in.unknown) { + ndr_print_string(ndr, "unknown", r->in.unknown); + } + ndr->depth--; + ndr_print_uint32(ndr, "level", r->in.level); + ndr_print_ptr(ndr, "info", r->in.info); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->in.info, r->in.level); + ndr_print_wkssvc_NetrWkstaUserInfo(ndr, "info", r->in.info); + ndr->depth--; + ndr_print_ptr(ndr, "parm_err", r->in.parm_err); + ndr->depth++; + if (r->in.parm_err) { + ndr_print_uint32(ndr, "parm_err", *r->in.parm_err); + } + ndr->depth--; + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "wkssvc_NetrWkstaUserSetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "parm_err", r->out.parm_err); + ndr->depth++; + if (r->out.parm_err) { + ndr_print_uint32(ndr, "parm_err", *r->out.parm_err); + } + ndr->depth--; + ndr_print_WERROR(ndr, "result", r->out.result); + ndr->depth--; + } ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaGetInfo(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaGetInfo *r) +static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportEnum(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaTransportEnum *r) { if (flags & NDR_IN) { NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); @@ -2184,24 +6339,42 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaGetInfo(struct ndr_push *ndr, i NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); + if (r->in.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle)); + if (r->in.resume_handle) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle)); + } } if (flags & NDR_OUT) { if (r->out.info == NULL) { return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + if (r->out.total_entries == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.resume_handle)); + if (r->out.resume_handle) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle)); + } NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaGetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaGetInfo *r) +static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportEnum(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaTransportEnum *r) { uint32_t _ptr_server_name; + uint32_t _ptr_resume_handle; TALLOC_CTX *_mem_save_server_name_0; TALLOC_CTX *_mem_save_info_0; + TALLOC_CTX *_mem_save_total_entries_0; + TALLOC_CTX *_mem_save_resume_handle_0; if (flags & NDR_IN) { ZERO_STRUCT(r->out); @@ -2223,9 +6396,30 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaGetInfo(struct ndr_pull *ndr, i NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle)); + if (_ptr_resume_handle) { + NDR_PULL_ALLOC(ndr, r->in.resume_handle); + } else { + r->in.resume_handle = NULL; + } + if (r->in.resume_handle) { + _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0); + } NDR_PULL_ALLOC(ndr, r->out.info); - ZERO_STRUCTP(r->out.info); + *r->out.info = *r->in.info; + NDR_PULL_ALLOC(ndr, r->out.total_entries); + ZERO_STRUCTP(r->out.total_entries); } if (flags & NDR_OUT) { if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { @@ -2233,23 +6427,41 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaGetInfo(struct ndr_pull *ndr, i } _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.total_entries); + } + _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle)); + if (_ptr_resume_handle) { + NDR_PULL_ALLOC(ndr, r->out.resume_handle); + } else { + r->out.resume_handle = NULL; + } + if (r->out.resume_handle) { + _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0); + } NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaGetInfo *r) +_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportEnum(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaTransportEnum *r) { - ndr_print_struct(ndr, name, "wkssvc_NetWkstaGetInfo"); + ndr_print_struct(ndr, name, "wkssvc_NetWkstaTransportEnum"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "wkssvc_NetWkstaGetInfo"); + ndr_print_struct(ndr, "in", "wkssvc_NetWkstaTransportEnum"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; @@ -2257,16 +6469,35 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaGetInfo(struct ndr_print *ndr, const char ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; - ndr_print_uint32(ndr, "level", r->in.level); + ndr_print_ptr(ndr, "info", r->in.info); + ndr->depth++; + ndr_print_wkssvc_NetWkstaTransportInfo(ndr, "info", r->in.info); + ndr->depth--; + ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer); + ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle); + ndr->depth++; + if (r->in.resume_handle) { + ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle); + } + ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "wkssvc_NetWkstaGetInfo"); + ndr_print_struct(ndr, "out", "wkssvc_NetWkstaTransportEnum"); ndr->depth++; ndr_print_ptr(ndr, "info", r->out.info); ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.info, r->in.level); - ndr_print_wkssvc_NetWkstaInfo(ndr, "info", r->out.info); + ndr_print_wkssvc_NetWkstaTransportInfo(ndr, "info", r->out.info); + ndr->depth--; + ndr_print_ptr(ndr, "total_entries", r->out.total_entries); + ndr->depth++; + ndr_print_uint32(ndr, "total_entries", *r->out.total_entries); + ndr->depth--; + ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle); + ndr->depth++; + if (r->out.resume_handle) { + ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle); + } ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -2274,7 +6505,7 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaGetInfo(struct ndr_print *ndr, const char ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaSetInfo(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaSetInfo *r) +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaTransportAdd(struct ndr_push *ndr, int flags, const struct wkssvc_NetrWkstaTransportAdd *r) { if (flags & NDR_IN) { NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); @@ -2285,32 +6516,32 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaSetInfo(struct ndr_push *ndr, i NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - if (r->in.info == NULL) { + if (r->in.info0 == NULL) { return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } - NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level)); - NDR_CHECK(ndr_push_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); - if (r->in.parm_error == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info0)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.parm_err)); + if (r->in.parm_err) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.parm_err)); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.parm_error)); } if (flags & NDR_OUT) { - if (r->out.parm_error == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.parm_err)); + if (r->out.parm_err) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.parm_err)); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.parm_error)); NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaSetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaSetInfo *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaTransportAdd(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaTransportAdd *r) { uint32_t _ptr_server_name; + uint32_t _ptr_parm_err; TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_info_0; - TALLOC_CTX *_mem_save_parm_error_0; + TALLOC_CTX *_mem_save_info0_0; + TALLOC_CTX *_mem_save_parm_err_0; if (flags & NDR_IN) { ZERO_STRUCT(r->out); @@ -2334,45 +6565,52 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaSetInfo(struct ndr_pull *ndr, i } NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.info); + NDR_PULL_ALLOC(ndr, r->in.info0); + } + _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.info0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info0)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parm_err)); + if (_ptr_parm_err) { + NDR_PULL_ALLOC(ndr, r->in.parm_err); + } else { + r->in.parm_err = NULL; } - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level)); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.parm_error); + if (r->in.parm_err) { + _mem_save_parm_err_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.parm_err, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.parm_err)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_err_0, 0); } - _mem_save_parm_error_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.parm_error, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.parm_error)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_error_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.parm_error); - *r->out.parm_error = *r->in.parm_error; } if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.parm_error); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parm_err)); + if (_ptr_parm_err) { + NDR_PULL_ALLOC(ndr, r->out.parm_err); + } else { + r->out.parm_err = NULL; + } + if (r->out.parm_err) { + _mem_save_parm_err_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.parm_err, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.parm_err)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_err_0, 0); } - _mem_save_parm_error_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.parm_error, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.parm_error)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_error_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaSetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaSetInfo *r) +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaTransportAdd(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaTransportAdd *r) { - ndr_print_struct(ndr, name, "wkssvc_NetWkstaSetInfo"); + ndr_print_struct(ndr, name, "wkssvc_NetrWkstaTransportAdd"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "wkssvc_NetWkstaSetInfo"); + ndr_print_struct(ndr, "in", "wkssvc_NetrWkstaTransportAdd"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; @@ -2381,23 +6619,26 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaSetInfo(struct ndr_print *ndr, const char } ndr->depth--; ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_ptr(ndr, "info", r->in.info); + ndr_print_ptr(ndr, "info0", r->in.info0); ndr->depth++; - ndr_print_set_switch_value(ndr, r->in.info, r->in.level); - ndr_print_wkssvc_NetWkstaInfo(ndr, "info", r->in.info); + ndr_print_wkssvc_NetWkstaTransportInfo0(ndr, "info0", r->in.info0); ndr->depth--; - ndr_print_ptr(ndr, "parm_error", r->in.parm_error); + ndr_print_ptr(ndr, "parm_err", r->in.parm_err); ndr->depth++; - ndr_print_uint32(ndr, "parm_error", *r->in.parm_error); + if (r->in.parm_err) { + ndr_print_uint32(ndr, "parm_err", *r->in.parm_err); + } ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "wkssvc_NetWkstaSetInfo"); + ndr_print_struct(ndr, "out", "wkssvc_NetrWkstaTransportAdd"); ndr->depth++; - ndr_print_ptr(ndr, "parm_error", r->out.parm_error); + ndr_print_ptr(ndr, "parm_err", r->out.parm_err); ndr->depth++; - ndr_print_uint32(ndr, "parm_error", *r->out.parm_error); + if (r->out.parm_err) { + ndr_print_uint32(ndr, "parm_err", *r->out.parm_err); + } ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -2405,7 +6646,7 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaSetInfo(struct ndr_print *ndr, const char ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsers(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaEnumUsers *r) +static enum ndr_err_code ndr_push_wkssvc_NetrWkstaTransportDel(struct ndr_push *ndr, int flags, const struct wkssvc_NetrWkstaTransportDel *r) { if (flags & NDR_IN) { NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); @@ -2415,49 +6656,144 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsers(struct ndr_push *ndr, NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - if (r->in.users == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.transport_name)); + if (r->in.transport_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.transport_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.transport_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.transport_name, ndr_charset_length(r->in.transport_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_WKS_USER_ENUM_UNION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.users)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.prefmaxlen)); - if (r->in.resumehandle == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown3)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaTransportDel(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaTransportDel *r) +{ + uint32_t _ptr_server_name; + uint32_t _ptr_transport_name; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_transport_name_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_name)); + if (_ptr_transport_name) { + NDR_PULL_ALLOC(ndr, r->in.transport_name); + } else { + r->in.transport_name = NULL; + } + if (r->in.transport_name) { + _mem_save_transport_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.transport_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.transport_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.transport_name)); + if (ndr_get_array_length(ndr, &r->in.transport_name) > ndr_get_array_size(ndr, &r->in.transport_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.transport_name), ndr_get_array_length(ndr, &r->in.transport_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.transport_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.transport_name, ndr_get_array_length(ndr, &r->in.transport_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_name_0, 0); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resumehandle)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown3)); } if (flags & NDR_OUT) { - if (r->out.users == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_wkssvc_NetrWkstaTransportDel(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaTransportDel *r) +{ + ndr_print_struct(ndr, name, "wkssvc_NetrWkstaTransportDel"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "wkssvc_NetrWkstaTransportDel"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); } - NDR_CHECK(ndr_push_WKS_USER_ENUM_UNION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.users)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.entriesread)); - if (r->out.entriesread) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.entriesread)); + ndr->depth--; + ndr_print_ptr(ndr, "transport_name", r->in.transport_name); + ndr->depth++; + if (r->in.transport_name) { + ndr_print_string(ndr, "transport_name", r->in.transport_name); } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.totalentries)); - if (r->out.totalentries) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.totalentries)); + ndr->depth--; + ndr_print_uint32(ndr, "unknown3", r->in.unknown3); + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "wkssvc_NetrWkstaTransportDel"); + ndr->depth++; + ndr_print_WERROR(ndr, "result", r->out.result); + ndr->depth--; + } + ndr->depth--; +} + +static enum ndr_err_code ndr_push_wkssvc_NetrUseAdd(struct ndr_push *ndr, int flags, const struct wkssvc_NetrUseAdd *r) +{ + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - if (r->out.resumehandle == NULL) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); + if (r->in.ctr == NULL) { return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resumehandle)); + NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.ctr, r->in.level)); + NDR_CHECK(ndr_push_wkssvc_NetrUseGetInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.parm_err)); + if (r->in.parm_err) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.parm_err)); + } + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.parm_err)); + if (r->out.parm_err) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.parm_err)); + } NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsers(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaEnumUsers *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrUseAdd(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseAdd *r) { uint32_t _ptr_server_name; - uint32_t _ptr_entriesread; - uint32_t _ptr_totalentries; + uint32_t _ptr_parm_err; TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_users_0; - TALLOC_CTX *_mem_save_entriesread_0; - TALLOC_CTX *_mem_save_totalentries_0; - TALLOC_CTX *_mem_save_resumehandle_0; + TALLOC_CTX *_mem_save_ctr_0; + TALLOC_CTX *_mem_save_parm_err_0; if (flags & NDR_IN) { ZERO_STRUCT(r->out); @@ -2481,78 +6817,53 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsers(struct ndr_pull *ndr, } NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.users); - } - _mem_save_users_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.users, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WKS_USER_ENUM_UNION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.users)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_users_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.prefmaxlen)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.resumehandle); + NDR_PULL_ALLOC(ndr, r->in.ctr); } - _mem_save_resumehandle_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.resumehandle, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resumehandle)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resumehandle_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.users); - *r->out.users = *r->in.users; - NDR_PULL_ALLOC(ndr, r->out.resumehandle); - *r->out.resumehandle = *r->in.resumehandle; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.users); - } - _mem_save_users_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.users, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WKS_USER_ENUM_UNION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.users)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_users_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entriesread)); - if (_ptr_entriesread) { - NDR_PULL_ALLOC(ndr, r->out.entriesread); + _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.ctr, r->in.level)); + NDR_CHECK(ndr_pull_wkssvc_NetrUseGetInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parm_err)); + if (_ptr_parm_err) { + NDR_PULL_ALLOC(ndr, r->in.parm_err); } else { - r->out.entriesread = NULL; + r->in.parm_err = NULL; } - if (r->out.entriesread) { - _mem_save_entriesread_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.entriesread, 0); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.entriesread)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entriesread_0, 0); + if (r->in.parm_err) { + _mem_save_parm_err_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.parm_err, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.parm_err)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_err_0, 0); } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_totalentries)); - if (_ptr_totalentries) { - NDR_PULL_ALLOC(ndr, r->out.totalentries); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parm_err)); + if (_ptr_parm_err) { + NDR_PULL_ALLOC(ndr, r->out.parm_err); } else { - r->out.totalentries = NULL; + r->out.parm_err = NULL; } - if (r->out.totalentries) { - _mem_save_totalentries_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.totalentries, 0); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.totalentries)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_totalentries_0, 0); + if (r->out.parm_err) { + _mem_save_parm_err_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.parm_err, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.parm_err)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parm_err_0, 0); } - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.resumehandle); - } - _mem_save_resumehandle_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.resumehandle, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resumehandle)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resumehandle_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaEnumUsers(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaEnumUsers *r) +_PUBLIC_ void ndr_print_wkssvc_NetrUseAdd(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseAdd *r) { - ndr_print_struct(ndr, name, "wkssvc_NetWkstaEnumUsers"); + ndr_print_struct(ndr, name, "wkssvc_NetrUseAdd"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "wkssvc_NetWkstaEnumUsers"); + ndr_print_struct(ndr, "in", "wkssvc_NetrUseAdd"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; @@ -2561,90 +6872,170 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaEnumUsers(struct ndr_print *ndr, const ch } ndr->depth--; ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_ptr(ndr, "users", r->in.users); + ndr_print_ptr(ndr, "ctr", r->in.ctr); ndr->depth++; - ndr_print_WKS_USER_ENUM_UNION(ndr, "users", r->in.users); + ndr_print_set_switch_value(ndr, r->in.ctr, r->in.level); + ndr_print_wkssvc_NetrUseGetInfoCtr(ndr, "ctr", r->in.ctr); ndr->depth--; - ndr_print_uint32(ndr, "prefmaxlen", r->in.prefmaxlen); - ndr_print_ptr(ndr, "resumehandle", r->in.resumehandle); + ndr_print_ptr(ndr, "parm_err", r->in.parm_err); ndr->depth++; - ndr_print_uint32(ndr, "resumehandle", *r->in.resumehandle); + if (r->in.parm_err) { + ndr_print_uint32(ndr, "parm_err", *r->in.parm_err); + } ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "wkssvc_NetWkstaEnumUsers"); - ndr->depth++; - ndr_print_ptr(ndr, "users", r->out.users); - ndr->depth++; - ndr_print_WKS_USER_ENUM_UNION(ndr, "users", r->out.users); - ndr->depth--; - ndr_print_ptr(ndr, "entriesread", r->out.entriesread); + ndr_print_struct(ndr, "out", "wkssvc_NetrUseAdd"); ndr->depth++; - if (r->out.entriesread) { - ndr_print_uint32(ndr, "entriesread", *r->out.entriesread); - } - ndr->depth--; - ndr_print_ptr(ndr, "totalentries", r->out.totalentries); + ndr_print_ptr(ndr, "parm_err", r->out.parm_err); ndr->depth++; - if (r->out.totalentries) { - ndr_print_uint32(ndr, "totalentries", *r->out.totalentries); + if (r->out.parm_err) { + ndr_print_uint32(ndr, "parm_err", *r->out.parm_err); } ndr->depth--; - ndr_print_ptr(ndr, "resumehandle", r->out.resumehandle); - ndr->depth++; - ndr_print_uint32(ndr, "resumehandle", *r->out.resumehandle); - ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRWKSTAUSERGETINFO(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRWKSTAUSERGETINFO *r) +static enum ndr_err_code ndr_push_wkssvc_NetrUseGetInfo(struct ndr_push *ndr, int flags, const struct wkssvc_NetrUseGetInfo *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.use_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.use_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.use_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.use_name, ndr_charset_length(r->in.use_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); } if (flags & NDR_OUT) { + if (r->out.ctr == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, r->in.level)); + NDR_CHECK(ndr_push_wkssvc_NetrUseGetInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr)); NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRWKSTAUSERGETINFO(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRWKSTAUSERGETINFO *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseGetInfo *r) { + uint32_t _ptr_server_name; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_ctr_0; if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.use_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.use_name)); + if (ndr_get_array_length(ndr, &r->in.use_name) > ndr_get_array_size(ndr, &r->in.use_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.use_name), ndr_get_array_length(ndr, &r->in.use_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.use_name, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_PULL_ALLOC(ndr, r->out.ctr); + ZERO_STRUCTP(r->out.ctr); } if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.ctr); + } + _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, r->in.level)); + NDR_CHECK(ndr_pull_wkssvc_NetrUseGetInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRWKSTAUSERGETINFO(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTAUSERGETINFO *r) +_PUBLIC_ void ndr_print_wkssvc_NetrUseGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseGetInfo *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRWKSTAUSERGETINFO"); + ndr_print_struct(ndr, name, "wkssvc_NetrUseGetInfo"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRWKSTAUSERGETINFO"); + ndr_print_struct(ndr, "in", "wkssvc_NetrUseGetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "use_name", r->in.use_name); ndr->depth++; + ndr_print_string(ndr, "use_name", r->in.use_name); + ndr->depth--; + ndr_print_uint32(ndr, "level", r->in.level); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRWKSTAUSERGETINFO"); + ndr_print_struct(ndr, "out", "wkssvc_NetrUseGetInfo"); + ndr->depth++; + ndr_print_ptr(ndr, "ctr", r->out.ctr); ndr->depth++; + ndr_print_set_switch_value(ndr, r->out.ctr, r->in.level); + ndr_print_wkssvc_NetrUseGetInfoCtr(ndr, "ctr", r->out.ctr); + ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRWKSTAUSERSETINFO(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRWKSTAUSERSETINFO *r) +static enum ndr_err_code ndr_push_wkssvc_NetrUseDel(struct ndr_push *ndr, int flags, const struct wkssvc_NetrUseDel *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.use_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.use_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.use_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.use_name, ndr_charset_length(r->in.use_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.force_cond)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -2652,9 +7043,37 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRWKSTAUSERSETINFO(struct ndr_push *n return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRWKSTAUSERSETINFO(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRWKSTAUSERSETINFO *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrUseDel(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseDel *r) { + uint32_t _ptr_server_name; + TALLOC_CTX *_mem_save_server_name_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.use_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.use_name)); + if (ndr_get_array_length(ndr, &r->in.use_name) > ndr_get_array_size(ndr, &r->in.use_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.use_name), ndr_get_array_length(ndr, &r->in.use_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.use_name, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.force_cond)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -2662,20 +7081,31 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRWKSTAUSERSETINFO(struct ndr_pull *n return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRWKSTAUSERSETINFO(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTAUSERSETINFO *r) +_PUBLIC_ void ndr_print_wkssvc_NetrUseDel(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseDel *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRWKSTAUSERSETINFO"); + ndr_print_struct(ndr, name, "wkssvc_NetrUseDel"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRWKSTAUSERSETINFO"); + ndr_print_struct(ndr, "in", "wkssvc_NetrUseDel"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "use_name", r->in.use_name); ndr->depth++; + ndr_print_string(ndr, "use_name", r->in.use_name); + ndr->depth--; + ndr_print_uint32(ndr, "force_cond", r->in.force_cond); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRWKSTAUSERSETINFO"); + ndr_print_struct(ndr, "out", "wkssvc_NetrUseDel"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -2683,7 +7113,7 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRWKSTAUSERSETINFO(struct ndr_print *ndr, const ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportEnum(struct ndr_push *ndr, int flags, const struct wkssvc_NetWkstaTransportEnum *r) +static enum ndr_err_code ndr_push_wkssvc_NetrUseEnum(struct ndr_push *ndr, int flags, const struct wkssvc_NetrUseEnum *r) { if (flags & NDR_IN) { NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); @@ -2693,52 +7123,41 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportEnum(struct ndr_push * NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - if (r->in.level == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.level)); - if (r->in.ctr == NULL) { + if (r->in.info == NULL) { return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } - NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.ctr, *r->in.level)); - NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_buffer)); - if (r->in.resume_handle == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + NDR_CHECK(ndr_push_wkssvc_NetrUseEnumInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.prefmaxlen)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle)); + if (r->in.resume_handle) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle)); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle)); } if (flags & NDR_OUT) { - if (r->out.level == NULL) { + if (r->out.info == NULL) { return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level)); - if (r->out.ctr == NULL) { + NDR_CHECK(ndr_push_wkssvc_NetrUseEnumInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + if (r->out.entries_read == NULL) { return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level)); - NDR_CHECK(ndr_push_wkssvc_NetWkstaTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.totalentries)); - if (r->out.totalentries) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.totalentries)); - } - if (r->out.resume_handle == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.entries_read)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.resume_handle)); + if (r->out.resume_handle) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle)); } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle)); NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportEnum(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaTransportEnum *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnum(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseEnum *r) { uint32_t _ptr_server_name; - uint32_t _ptr_totalentries; + uint32_t _ptr_resume_handle; TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_level_0; - TALLOC_CTX *_mem_save_ctr_0; - TALLOC_CTX *_mem_save_totalentries_0; + TALLOC_CTX *_mem_save_info_0; + TALLOC_CTX *_mem_save_entries_read_0; TALLOC_CTX *_mem_save_resume_handle_0; if (flags & NDR_IN) { ZERO_STRUCT(r->out); @@ -2762,84 +7181,71 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportEnum(struct ndr_pull * NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); } if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.level); - } - _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.level)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.ctr); + NDR_PULL_ALLOC(ndr, r->in.info); } - _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.ctr, *r->in.level)); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_buffer)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetrUseEnumInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.prefmaxlen)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle)); + if (_ptr_resume_handle) { NDR_PULL_ALLOC(ndr, r->in.resume_handle); + } else { + r->in.resume_handle = NULL; } - _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.level); - *r->out.level = *r->in.level; - NDR_PULL_ALLOC(ndr, r->out.ctr); - *r->out.ctr = *r->in.ctr; - NDR_PULL_ALLOC(ndr, r->out.resume_handle); - *r->out.resume_handle = *r->in.resume_handle; + if (r->in.resume_handle) { + _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.info); + *r->out.info = *r->in.info; + NDR_PULL_ALLOC(ndr, r->out.entries_read); + ZERO_STRUCTP(r->out.entries_read); } if (flags & NDR_OUT) { if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.level); + NDR_PULL_ALLOC(ndr, r->out.info); } - _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC); + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetrUseEnumInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.ctr); - } - _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level)); - NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_totalentries)); - if (_ptr_totalentries) { - NDR_PULL_ALLOC(ndr, r->out.totalentries); + NDR_PULL_ALLOC(ndr, r->out.entries_read); + } + _mem_save_entries_read_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.entries_read, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.entries_read)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_read_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle)); + if (_ptr_resume_handle) { + NDR_PULL_ALLOC(ndr, r->out.resume_handle); } else { - r->out.totalentries = NULL; - } - if (r->out.totalentries) { - _mem_save_totalentries_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.totalentries, 0); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.totalentries)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_totalentries_0, 0); + r->out.resume_handle = NULL; } - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.resume_handle); + if (r->out.resume_handle) { + _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, 0); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0); } - _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportEnum(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaTransportEnum *r) +_PUBLIC_ void ndr_print_wkssvc_NetrUseEnum(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseEnum *r) { - ndr_print_struct(ndr, name, "wkssvc_NetWkstaTransportEnum"); + ndr_print_struct(ndr, name, "wkssvc_NetrUseEnum"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "wkssvc_NetWkstaTransportEnum"); + ndr_print_struct(ndr, "in", "wkssvc_NetrUseEnum"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; @@ -2847,135 +7253,72 @@ _PUBLIC_ void ndr_print_wkssvc_NetWkstaTransportEnum(struct ndr_print *ndr, cons ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; - ndr_print_ptr(ndr, "level", r->in.level); - ndr->depth++; - ndr_print_uint32(ndr, "level", *r->in.level); - ndr->depth--; - ndr_print_ptr(ndr, "ctr", r->in.ctr); + ndr_print_ptr(ndr, "info", r->in.info); ndr->depth++; - ndr_print_set_switch_value(ndr, r->in.ctr, *r->in.level); - ndr_print_wkssvc_NetWkstaTransportCtr(ndr, "ctr", r->in.ctr); + ndr_print_wkssvc_NetrUseEnumInfo(ndr, "info", r->in.info); ndr->depth--; - ndr_print_uint32(ndr, "max_buffer", r->in.max_buffer); + ndr_print_uint32(ndr, "prefmaxlen", r->in.prefmaxlen); ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle); ndr->depth++; - ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "wkssvc_NetWkstaTransportEnum"); - ndr->depth++; - ndr_print_ptr(ndr, "level", r->out.level); - ndr->depth++; - ndr_print_uint32(ndr, "level", *r->out.level); - ndr->depth--; - ndr_print_ptr(ndr, "ctr", r->out.ctr); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level); - ndr_print_wkssvc_NetWkstaTransportCtr(ndr, "ctr", r->out.ctr); - ndr->depth--; - ndr_print_ptr(ndr, "totalentries", r->out.totalentries); - ndr->depth++; - if (r->out.totalentries) { - ndr_print_uint32(ndr, "totalentries", *r->out.totalentries); + if (r->in.resume_handle) { + ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle); } ndr->depth--; - ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle); - ndr->depth++; - ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle); - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -static enum ndr_err_code ndr_push_WKSSVC_NETRWKSTATRANSPORTADD(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRWKSTATRANSPORTADD *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_WKSSVC_NETRWKSTATRANSPORTADD(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRWKSTATRANSPORTADD *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_WKSSVC_NETRWKSTATRANSPORTADD(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTATRANSPORTADD *r) -{ - ndr_print_struct(ndr, name, "WKSSVC_NETRWKSTATRANSPORTADD"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRWKSTATRANSPORTADD"); - ndr->depth++; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRWKSTATRANSPORTADD"); + ndr_print_struct(ndr, "out", "wkssvc_NetrUseEnum"); ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -static enum ndr_err_code ndr_push_WKSSVC_NETRWKSTATRANSPORTDEL(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRWKSTATRANSPORTDEL *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_WKSSVC_NETRWKSTATRANSPORTDEL(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRWKSTATRANSPORTDEL *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_WKSSVC_NETRWKSTATRANSPORTDEL(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTATRANSPORTDEL *r) -{ - ndr_print_struct(ndr, name, "WKSSVC_NETRWKSTATRANSPORTDEL"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRWKSTATRANSPORTDEL"); + ndr_print_ptr(ndr, "info", r->out.info); ndr->depth++; + ndr_print_wkssvc_NetrUseEnumInfo(ndr, "info", r->out.info); ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRWKSTATRANSPORTDEL"); + ndr_print_ptr(ndr, "entries_read", r->out.entries_read); + ndr->depth++; + ndr_print_uint32(ndr, "entries_read", *r->out.entries_read); + ndr->depth--; + ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle); ndr->depth++; + if (r->out.resume_handle) { + ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle); + } + ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRUSEADD(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRUSEADD *r) +static enum ndr_err_code ndr_push_wkssvc_NetrMessageBufferSend(struct ndr_push *ndr, int flags, const struct wkssvc_NetrMessageBufferSend *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.message_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.message_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.message_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.message_name, ndr_charset_length(r->in.message_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.message_sender_name)); + if (r->in.message_sender_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.message_sender_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.message_sender_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.message_sender_name, ndr_charset_length(r->in.message_sender_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.message_buffer == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.message_size)); + NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.message_buffer, r->in.message_size)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.message_size)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -2983,9 +7326,65 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRUSEADD(struct ndr_push *ndr, int fl return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRUSEADD(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRUSEADD *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrMessageBufferSend(struct ndr_pull *ndr, int flags, struct wkssvc_NetrMessageBufferSend *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_message_sender_name; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_message_sender_name_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.message_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.message_name)); + if (ndr_get_array_length(ndr, &r->in.message_name) > ndr_get_array_size(ndr, &r->in.message_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.message_name), ndr_get_array_length(ndr, &r->in.message_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.message_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.message_name, ndr_get_array_length(ndr, &r->in.message_name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message_sender_name)); + if (_ptr_message_sender_name) { + NDR_PULL_ALLOC(ndr, r->in.message_sender_name); + } else { + r->in.message_sender_name = NULL; + } + if (r->in.message_sender_name) { + _mem_save_message_sender_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.message_sender_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.message_sender_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.message_sender_name)); + if (ndr_get_array_length(ndr, &r->in.message_sender_name) > ndr_get_array_size(ndr, &r->in.message_sender_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.message_sender_name), ndr_get_array_length(ndr, &r->in.message_sender_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.message_sender_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.message_sender_name, ndr_get_array_length(ndr, &r->in.message_sender_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_sender_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.message_buffer)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC_N(ndr, r->in.message_buffer, ndr_get_array_size(ndr, &r->in.message_buffer)); + } + NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.message_buffer, ndr_get_array_size(ndr, &r->in.message_buffer))); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.message_size)); + if (r->in.message_buffer) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.message_buffer, r->in.message_size)); + } } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -2993,20 +7392,41 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRUSEADD(struct ndr_pull *ndr, int fl return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRUSEADD(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEADD *r) +_PUBLIC_ void ndr_print_wkssvc_NetrMessageBufferSend(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrMessageBufferSend *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRUSEADD"); + ndr_print_struct(ndr, name, "wkssvc_NetrMessageBufferSend"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRUSEADD"); + ndr_print_struct(ndr, "in", "wkssvc_NetrMessageBufferSend"); ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "message_name", r->in.message_name); + ndr->depth++; + ndr_print_string(ndr, "message_name", r->in.message_name); + ndr->depth--; + ndr_print_ptr(ndr, "message_sender_name", r->in.message_sender_name); + ndr->depth++; + if (r->in.message_sender_name) { + ndr_print_string(ndr, "message_sender_name", r->in.message_sender_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "message_buffer", r->in.message_buffer); + ndr->depth++; + ndr_print_array_uint8(ndr, "message_buffer", r->in.message_buffer, r->in.message_size); + ndr->depth--; + ndr_print_uint32(ndr, "message_size", r->in.message_size); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRUSEADD"); + ndr_print_struct(ndr, "out", "wkssvc_NetrMessageBufferSend"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3014,50 +7434,165 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRUSEADD(struct ndr_print *ndr, const char *nam ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRUSEGETINFO(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRUSEGETINFO *r) +static enum ndr_err_code ndr_push_wkssvc_NetrWorkstationStatisticsGet(struct ndr_push *ndr, int flags, const struct wkssvc_NetrWorkstationStatisticsGet *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown2)); + if (r->in.unknown2) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown2, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown2, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.unknown2, ndr_charset_length(r->in.unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown3)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown4)); } if (flags & NDR_OUT) { + if (r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + if (*r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_ref_ptr(ndr)); + NDR_CHECK(ndr_push_wkssvc_NetrWorkstationStatistics(ndr, NDR_SCALARS, *r->out.info)); NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRUSEGETINFO(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRUSEGETINFO *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrWorkstationStatisticsGet(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWorkstationStatisticsGet *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_unknown2; + uint32_t _ptr_info; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_unknown2_0; + TALLOC_CTX *_mem_save_info_0; + TALLOC_CTX *_mem_save_info_1; if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2)); + if (_ptr_unknown2) { + NDR_PULL_ALLOC(ndr, r->in.unknown2); + } else { + r->in.unknown2 = NULL; + } + if (r->in.unknown2) { + _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown2)); + if (ndr_get_array_length(ndr, &r->in.unknown2) > ndr_get_array_size(ndr, &r->in.unknown2)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown2), ndr_get_array_length(ndr, &r->in.unknown2)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown2), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown2, ndr_get_array_length(ndr, &r->in.unknown2), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown3)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown4)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); } if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_info)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, *r->out.info); + } + _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetrWorkstationStatistics(ndr, NDR_SCALARS, *r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, LIBNDR_FLAG_REF_ALLOC); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRUSEGETINFO(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEGETINFO *r) +_PUBLIC_ void ndr_print_wkssvc_NetrWorkstationStatisticsGet(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWorkstationStatisticsGet *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRUSEGETINFO"); + ndr_print_struct(ndr, name, "wkssvc_NetrWorkstationStatisticsGet"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRUSEGETINFO"); + ndr_print_struct(ndr, "in", "wkssvc_NetrWorkstationStatisticsGet"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "unknown2", r->in.unknown2); ndr->depth++; + if (r->in.unknown2) { + ndr_print_string(ndr, "unknown2", r->in.unknown2); + } + ndr->depth--; + ndr_print_uint32(ndr, "unknown3", r->in.unknown3); + ndr_print_uint32(ndr, "unknown4", r->in.unknown4); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRUSEGETINFO"); + ndr_print_struct(ndr, "out", "wkssvc_NetrWorkstationStatisticsGet"); ndr->depth++; + ndr_print_ptr(ndr, "info", r->out.info); + ndr->depth++; + ndr_print_ptr(ndr, "info", *r->out.info); + ndr->depth++; + ndr_print_wkssvc_NetrWorkstationStatistics(ndr, "info", *r->out.info); + ndr->depth--; + ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRUSEDEL(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRUSEDEL *r) +static enum ndr_err_code ndr_push_wkssvc_NetrLogonDomainNameAdd(struct ndr_push *ndr, int flags, const struct wkssvc_NetrLogonDomainNameAdd *r) { if (flags & NDR_IN) { + if (r->in.domain_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3065,9 +7600,16 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRUSEDEL(struct ndr_push *ndr, int fl return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRUSEDEL(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRUSEDEL *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrLogonDomainNameAdd(struct ndr_pull *ndr, int flags, struct wkssvc_NetrLogonDomainNameAdd *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); + if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3075,20 +7617,24 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRUSEDEL(struct ndr_pull *ndr, int fl return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRUSEDEL(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEDEL *r) +_PUBLIC_ void ndr_print_wkssvc_NetrLogonDomainNameAdd(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrLogonDomainNameAdd *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRUSEDEL"); + ndr_print_struct(ndr, name, "wkssvc_NetrLogonDomainNameAdd"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRUSEDEL"); + ndr_print_struct(ndr, "in", "wkssvc_NetrLogonDomainNameAdd"); + ndr->depth++; + ndr_print_ptr(ndr, "domain_name", r->in.domain_name); ndr->depth++; + ndr_print_string(ndr, "domain_name", r->in.domain_name); + ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRUSEDEL"); + ndr_print_struct(ndr, "out", "wkssvc_NetrLogonDomainNameAdd"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3096,9 +7642,16 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRUSEDEL(struct ndr_print *ndr, const char *nam ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRUSEENUM(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRUSEENUM *r) +static enum ndr_err_code ndr_push_wkssvc_NetrLogonDomainNameDel(struct ndr_push *ndr, int flags, const struct wkssvc_NetrLogonDomainNameDel *r) { if (flags & NDR_IN) { + if (r->in.domain_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3106,9 +7659,16 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRUSEENUM(struct ndr_push *ndr, int f return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRUSEENUM(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRUSEENUM *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrLogonDomainNameDel(struct ndr_pull *ndr, int flags, struct wkssvc_NetrLogonDomainNameDel *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); + if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3116,20 +7676,24 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRUSEENUM(struct ndr_pull *ndr, int f return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRUSEENUM(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEENUM *r) +_PUBLIC_ void ndr_print_wkssvc_NetrLogonDomainNameDel(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrLogonDomainNameDel *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRUSEENUM"); + ndr_print_struct(ndr, name, "wkssvc_NetrLogonDomainNameDel"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRUSEENUM"); + ndr_print_struct(ndr, "in", "wkssvc_NetrLogonDomainNameDel"); + ndr->depth++; + ndr_print_ptr(ndr, "domain_name", r->in.domain_name); ndr->depth++; + ndr_print_string(ndr, "domain_name", r->in.domain_name); + ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRUSEENUM"); + ndr_print_struct(ndr, "out", "wkssvc_NetrLogonDomainNameDel"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3137,9 +7701,45 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRUSEENUM(struct ndr_print *ndr, const char *na ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRMESSAGEBUFFERSEND(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRMESSAGEBUFFERSEND *r) +static enum ndr_err_code ndr_push_wkssvc_NetrJoinDomain(struct ndr_push *ndr, int flags, const struct wkssvc_NetrJoinDomain *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.domain_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.account_ou)); + if (r->in.account_ou) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_ou, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_ou, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_ou, ndr_charset_length(r->in.account_ou, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.password)); + if (r->in.password) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.password, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.password, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.password, ndr_charset_length(r->in.password, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_wkssvc_joinflags(ndr, NDR_SCALARS, r->in.join_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3147,9 +7747,97 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRMESSAGEBUFFERSEND(struct ndr_push * return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRMESSAGEBUFFERSEND(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRMESSAGEBUFFERSEND *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain(struct ndr_pull *ndr, int flags, struct wkssvc_NetrJoinDomain *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_account_ou; + uint32_t _ptr_Account; + uint32_t _ptr_password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_account_ou_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_password_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); + if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_ou)); + if (_ptr_account_ou) { + NDR_PULL_ALLOC(ndr, r->in.account_ou); + } else { + r->in.account_ou = NULL; + } + if (r->in.account_ou) { + _mem_save_account_ou_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.account_ou, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_ou)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_ou)); + if (ndr_get_array_length(ndr, &r->in.account_ou) > ndr_get_array_size(ndr, &r->in.account_ou)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_ou), ndr_get_array_length(ndr, &r->in.account_ou)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_ou, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_ou_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); + } else { + r->in.Account = NULL; + } + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->in.password); + } else { + r->in.password = NULL; + } + if (r->in.password) { + _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); + if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.join_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3157,20 +7845,49 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRMESSAGEBUFFERSEND(struct ndr_pull * return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRMESSAGEBUFFERSEND(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRMESSAGEBUFFERSEND *r) +_PUBLIC_ void ndr_print_wkssvc_NetrJoinDomain(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrJoinDomain *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRMESSAGEBUFFERSEND"); + ndr_print_struct(ndr, name, "wkssvc_NetrJoinDomain"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRMESSAGEBUFFERSEND"); + ndr_print_struct(ndr, "in", "wkssvc_NetrJoinDomain"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "domain_name", r->in.domain_name); + ndr->depth++; + ndr_print_string(ndr, "domain_name", r->in.domain_name); + ndr->depth--; + ndr_print_ptr(ndr, "account_ou", r->in.account_ou); + ndr->depth++; + if (r->in.account_ou) { + ndr_print_string(ndr, "account_ou", r->in.account_ou); + } + ndr->depth--; + ndr_print_ptr(ndr, "Account", r->in.Account); ndr->depth++; + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); + } + ndr->depth--; + ndr_print_ptr(ndr, "password", r->in.password); + ndr->depth++; + if (r->in.password) { + ndr_print_string(ndr, "password", r->in.password); + } + ndr->depth--; + ndr_print_wkssvc_joinflags(ndr, "join_flags", r->in.join_flags); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRMESSAGEBUFFERSEND"); + ndr_print_struct(ndr, "out", "wkssvc_NetrJoinDomain"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3178,9 +7895,31 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRMESSAGEBUFFERSEND(struct ndr_print *ndr, cons ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r) +static enum ndr_err_code ndr_push_wkssvc_NetrUnjoinDomain(struct ndr_push *ndr, int flags, const struct wkssvc_NetrUnjoinDomain *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.password)); + if (r->in.password) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.password, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.password, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.password, ndr_charset_length(r->in.password, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_wkssvc_joinflags(ndr, NDR_SCALARS, r->in.unjoin_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3188,9 +7927,70 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct ndr return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUnjoinDomain *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_Account; + uint32_t _ptr_password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_password_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); + } else { + r->in.Account = NULL; + } + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->in.password); + } else { + r->in.password = NULL; + } + if (r->in.password) { + _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); + if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.unjoin_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3198,20 +7998,39 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct ndr return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r) +_PUBLIC_ void ndr_print_wkssvc_NetrUnjoinDomain(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUnjoinDomain *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRWORKSTATIONSTATISTICSGET"); + ndr_print_struct(ndr, name, "wkssvc_NetrUnjoinDomain"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRWORKSTATIONSTATISTICSGET"); + ndr_print_struct(ndr, "in", "wkssvc_NetrUnjoinDomain"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "Account", r->in.Account); + ndr->depth++; + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); + } + ndr->depth--; + ndr_print_ptr(ndr, "password", r->in.password); ndr->depth++; + if (r->in.password) { + ndr_print_string(ndr, "password", r->in.password); + } + ndr->depth--; + ndr_print_wkssvc_joinflags(ndr, "unjoin_flags", r->in.unjoin_flags); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRWORKSTATIONSTATISTICSGET"); + ndr_print_struct(ndr, "out", "wkssvc_NetrUnjoinDomain"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3219,9 +8038,38 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct ndr_print *nd ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRLOGONDOMAINNAMEADD(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRLOGONDOMAINNAMEADD *r) +static enum ndr_err_code ndr_push_wkssvc_NetrRenameMachineInDomain(struct ndr_push *ndr, int flags, const struct wkssvc_NetrRenameMachineInDomain *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.NewMachineName)); + if (r->in.NewMachineName) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.NewMachineName, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.NewMachineName, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.NewMachineName, ndr_charset_length(r->in.NewMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.password)); + if (r->in.password) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.password, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.password, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.password, ndr_charset_length(r->in.password, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_wkssvc_renameflags(ndr, NDR_SCALARS, r->in.RenameOptions)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3229,9 +8077,90 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRLOGONDOMAINNAMEADD(struct ndr_push return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEADD(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRLOGONDOMAINNAMEADD *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain(struct ndr_pull *ndr, int flags, struct wkssvc_NetrRenameMachineInDomain *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_NewMachineName; + uint32_t _ptr_Account; + uint32_t _ptr_password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_NewMachineName_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_password_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NewMachineName)); + if (_ptr_NewMachineName) { + NDR_PULL_ALLOC(ndr, r->in.NewMachineName); + } else { + r->in.NewMachineName = NULL; + } + if (r->in.NewMachineName) { + _mem_save_NewMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.NewMachineName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.NewMachineName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.NewMachineName)); + if (ndr_get_array_length(ndr, &r->in.NewMachineName) > ndr_get_array_size(ndr, &r->in.NewMachineName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.NewMachineName), ndr_get_array_length(ndr, &r->in.NewMachineName)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewMachineName, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NewMachineName_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); + } else { + r->in.Account = NULL; + } + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->in.password); + } else { + r->in.password = NULL; + } + if (r->in.password) { + _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); + if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_renameflags(ndr, NDR_SCALARS, &r->in.RenameOptions)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3239,20 +8168,45 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEADD(struct ndr_pull return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRLOGONDOMAINNAMEADD(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRLOGONDOMAINNAMEADD *r) +_PUBLIC_ void ndr_print_wkssvc_NetrRenameMachineInDomain(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrRenameMachineInDomain *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRLOGONDOMAINNAMEADD"); + ndr_print_struct(ndr, name, "wkssvc_NetrRenameMachineInDomain"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRLOGONDOMAINNAMEADD"); + ndr_print_struct(ndr, "in", "wkssvc_NetrRenameMachineInDomain"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "NewMachineName", r->in.NewMachineName); + ndr->depth++; + if (r->in.NewMachineName) { + ndr_print_string(ndr, "NewMachineName", r->in.NewMachineName); + } + ndr->depth--; + ndr_print_ptr(ndr, "Account", r->in.Account); + ndr->depth++; + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); + } + ndr->depth--; + ndr_print_ptr(ndr, "password", r->in.password); ndr->depth++; + if (r->in.password) { + ndr_print_string(ndr, "password", r->in.password); + } + ndr->depth--; + ndr_print_wkssvc_renameflags(ndr, "RenameOptions", r->in.RenameOptions); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRLOGONDOMAINNAMEADD"); + ndr_print_struct(ndr, "out", "wkssvc_NetrRenameMachineInDomain"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3260,9 +8214,38 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRLOGONDOMAINNAMEADD(struct ndr_print *ndr, con ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r) +static enum ndr_err_code ndr_push_wkssvc_NetrValidateName(struct ndr_push *ndr, int flags, const struct wkssvc_NetrValidateName *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.name, ndr_charset_length(r->in.name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Password)); + if (r->in.Password) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Password, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Password, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Password, ndr_charset_length(r->in.Password, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_wkssvc_NetValidateNameType(ndr, NDR_SCALARS, r->in.name_type)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3270,9 +8253,77 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct ndr_push return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName(struct ndr_pull *ndr, int flags, struct wkssvc_NetrValidateName *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_Account; + uint32_t _ptr_Password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_Password_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name)); + if (ndr_get_array_length(ndr, &r->in.name) > ndr_get_array_size(ndr, &r->in.name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name), ndr_get_array_length(ndr, &r->in.name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); + } else { + r->in.Account = NULL; + } + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Password)); + if (_ptr_Password) { + NDR_PULL_ALLOC(ndr, r->in.Password); + } else { + r->in.Password = NULL; + } + if (r->in.Password) { + _mem_save_Password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Password)); + if (ndr_get_array_length(ndr, &r->in.Password) > ndr_get_array_size(ndr, &r->in.Password)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Password), ndr_get_array_length(ndr, &r->in.Password)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Password), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Password, ndr_get_array_length(ndr, &r->in.Password), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_NetValidateNameType(ndr, NDR_SCALARS, &r->in.name_type)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3280,61 +8331,43 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct ndr_pull return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r) +_PUBLIC_ void ndr_print_wkssvc_NetrValidateName(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrValidateName *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRLOGONDOMAINNAMEDEL"); + ndr_print_struct(ndr, name, "wkssvc_NetrValidateName"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRLOGONDOMAINNAMEDEL"); + ndr_print_struct(ndr, "in", "wkssvc_NetrValidateName"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRLOGONDOMAINNAMEDEL"); + ndr_print_ptr(ndr, "name", r->in.name); ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); + ndr_print_string(ndr, "name", r->in.name); ndr->depth--; - } - ndr->depth--; -} - -static enum ndr_err_code ndr_push_WKSSVC_NETRJOINDOMAIN(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRJOINDOMAIN *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_WKSSVC_NETRJOINDOMAIN(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRJOINDOMAIN *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_WKSSVC_NETRJOINDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRJOINDOMAIN *r) -{ - ndr_print_struct(ndr, name, "WKSSVC_NETRJOINDOMAIN"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRJOINDOMAIN"); + ndr_print_ptr(ndr, "Account", r->in.Account); + ndr->depth++; + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); + } + ndr->depth--; + ndr_print_ptr(ndr, "Password", r->in.Password); ndr->depth++; + if (r->in.Password) { + ndr_print_string(ndr, "Password", r->in.Password); + } + ndr->depth--; + ndr_print_wkssvc_NetValidateNameType(ndr, "name_type", r->in.name_type); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRJOINDOMAIN"); + ndr_print_struct(ndr, "out", "wkssvc_NetrValidateName"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3342,132 +8375,451 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRJOINDOMAIN(struct ndr_print *ndr, const char ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRUNJOINDOMAIN(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRUNJOINDOMAIN *r) +static enum ndr_err_code ndr_push_wkssvc_NetrGetJoinInformation(struct ndr_push *ndr, int flags, const struct wkssvc_NetrGetJoinInformation *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.name_buffer == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + if (*r->in.name_buffer == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_ref_ptr(ndr)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->in.name_buffer, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->in.name_buffer, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->in.name_buffer, ndr_charset_length(*r->in.name_buffer, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } if (flags & NDR_OUT) { + if (r->out.name_buffer == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + if (*r->out.name_buffer == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_ref_ptr(ndr)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.name_buffer, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.name_buffer, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.name_buffer, ndr_charset_length(*r->out.name_buffer, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + if (r->out.name_type == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_wkssvc_NetJoinStatus(ndr, NDR_SCALARS, *r->out.name_type)); NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRUNJOINDOMAIN(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRUNJOINDOMAIN *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinInformation(struct ndr_pull *ndr, int flags, struct wkssvc_NetrGetJoinInformation *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_name_buffer; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_name_buffer_0; + TALLOC_CTX *_mem_save_name_type_0; if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.name_buffer); + } + _mem_save_name_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.name_buffer, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_name_buffer)); + NDR_CHECK(ndr_pull_array_size(ndr, r->in.name_buffer)); + NDR_CHECK(ndr_pull_array_length(ndr, r->in.name_buffer)); + if (ndr_get_array_length(ndr, r->in.name_buffer) > ndr_get_array_size(ndr, r->in.name_buffer)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->in.name_buffer), ndr_get_array_length(ndr, r->in.name_buffer)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->in.name_buffer), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->in.name_buffer, ndr_get_array_length(ndr, r->in.name_buffer), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_buffer_0, LIBNDR_FLAG_REF_ALLOC); + NDR_PULL_ALLOC(ndr, r->out.name_buffer); + *r->out.name_buffer = *r->in.name_buffer; + NDR_PULL_ALLOC(ndr, r->out.name_type); + ZERO_STRUCTP(r->out.name_type); } if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.name_buffer); + } + _mem_save_name_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.name_buffer, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_name_buffer)); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.name_buffer)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.name_buffer)); + if (ndr_get_array_length(ndr, r->out.name_buffer) > ndr_get_array_size(ndr, r->out.name_buffer)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.name_buffer), ndr_get_array_length(ndr, r->out.name_buffer)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.name_buffer), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.name_buffer, ndr_get_array_length(ndr, r->out.name_buffer), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_buffer_0, LIBNDR_FLAG_REF_ALLOC); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.name_type); + } + _mem_save_name_type_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.name_type, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_NetJoinStatus(ndr, NDR_SCALARS, r->out.name_type)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_type_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRUNJOINDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUNJOINDOMAIN *r) +_PUBLIC_ void ndr_print_wkssvc_NetrGetJoinInformation(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrGetJoinInformation *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRUNJOINDOMAIN"); + ndr_print_struct(ndr, name, "wkssvc_NetrGetJoinInformation"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRUNJOINDOMAIN"); + ndr_print_struct(ndr, "in", "wkssvc_NetrGetJoinInformation"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "name_buffer", r->in.name_buffer); ndr->depth++; + ndr_print_ptr(ndr, "name_buffer", *r->in.name_buffer); + ndr->depth++; + ndr_print_string(ndr, "name_buffer", *r->in.name_buffer); + ndr->depth--; + ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRUNJOINDOMAIN"); + ndr_print_struct(ndr, "out", "wkssvc_NetrGetJoinInformation"); + ndr->depth++; + ndr_print_ptr(ndr, "name_buffer", r->out.name_buffer); + ndr->depth++; + ndr_print_ptr(ndr, "name_buffer", *r->out.name_buffer); + ndr->depth++; + ndr_print_string(ndr, "name_buffer", *r->out.name_buffer); + ndr->depth--; + ndr->depth--; + ndr_print_ptr(ndr, "name_type", r->out.name_type); ndr->depth++; + ndr_print_wkssvc_NetJoinStatus(ndr, "name_type", *r->out.name_type); + ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r) +static enum ndr_err_code ndr_push_wkssvc_NetrGetJoinableOus(struct ndr_push *ndr, int flags, const struct wkssvc_NetrGetJoinableOus *r) { + uint32_t cntr_ous_1; if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.domain_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown)); + if (r->in.unknown) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.unknown, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.unknown, ndr_charset_length(r->in.unknown, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.num_ous == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.num_ous)); } if (flags & NDR_OUT) { + if (r->out.num_ous == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_ous)); + if (r->out.ous == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_ous)); + for (cntr_ous_1 = 0; cntr_ous_1 < *r->out.num_ous; cntr_ous_1++) { + if (r->out.ous[cntr_ous_1] == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_ref_ptr(ndr)); + } NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus(struct ndr_pull *ndr, int flags, struct wkssvc_NetrGetJoinableOus *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_Account; + uint32_t _ptr_unknown; + uint32_t _ptr_ous; + uint32_t cntr_ous_1; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_unknown_0; + TALLOC_CTX *_mem_save_num_ous_0; + TALLOC_CTX *_mem_save_ous_1; + TALLOC_CTX *_mem_save_ous_2; if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); + if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); + } else { + r->in.Account = NULL; + } + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown)); + if (_ptr_unknown) { + NDR_PULL_ALLOC(ndr, r->in.unknown); + } else { + r->in.unknown = NULL; + } + if (r->in.unknown) { + _mem_save_unknown_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown)); + if (ndr_get_array_length(ndr, &r->in.unknown) > ndr_get_array_size(ndr, &r->in.unknown)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown), ndr_get_array_length(ndr, &r->in.unknown)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.num_ous); + } + _mem_save_num_ous_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.num_ous, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.num_ous)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_ous_0, LIBNDR_FLAG_REF_ALLOC); + NDR_PULL_ALLOC(ndr, r->out.num_ous); + *r->out.num_ous = *r->in.num_ous; + NDR_PULL_ALLOC_N(ndr, r->out.ous, *r->in.num_ous); + memset(r->out.ous, 0, *r->in.num_ous * sizeof(*r->out.ous)); } if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.num_ous); + } + _mem_save_num_ous_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.num_ous, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_ous)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_ous_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.ous)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC_N(ndr, r->out.ous, ndr_get_array_size(ndr, &r->out.ous)); + } + _mem_save_ous_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.ous, 0); + for (cntr_ous_1 = 0; cntr_ous_1 < *r->out.num_ous; cntr_ous_1++) { + NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_ous)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.ous[cntr_ous_1]); + } + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ous_1, 0); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); + if (r->out.ous) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.ous, *r->out.num_ous)); + } } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r) +_PUBLIC_ void ndr_print_wkssvc_NetrGetJoinableOus(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrGetJoinableOus *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRRENAMEMACHINEINDOMAIN"); + uint32_t cntr_ous_1; + ndr_print_struct(ndr, name, "wkssvc_NetrGetJoinableOus"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRRENAMEMACHINEINDOMAIN"); + ndr_print_struct(ndr, "in", "wkssvc_NetrGetJoinableOus"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRRENAMEMACHINEINDOMAIN"); + ndr_print_ptr(ndr, "domain_name", r->in.domain_name); ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); + ndr_print_string(ndr, "domain_name", r->in.domain_name); + ndr->depth--; + ndr_print_ptr(ndr, "Account", r->in.Account); + ndr->depth++; + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); + } + ndr->depth--; + ndr_print_ptr(ndr, "unknown", r->in.unknown); + ndr->depth++; + if (r->in.unknown) { + ndr_print_string(ndr, "unknown", r->in.unknown); + } + ndr->depth--; + ndr_print_ptr(ndr, "num_ous", r->in.num_ous); + ndr->depth++; + ndr_print_uint32(ndr, "num_ous", *r->in.num_ous); + ndr->depth--; ndr->depth--; - } - ndr->depth--; -} - -static enum ndr_err_code ndr_push_WKSSVC_NETRVALIDATENAME(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRVALIDATENAME *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_WKSSVC_NETRVALIDATENAME(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRVALIDATENAME *r) -{ - if (flags & NDR_IN) { } if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_WKSSVC_NETRVALIDATENAME(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRVALIDATENAME *r) -{ - ndr_print_struct(ndr, name, "WKSSVC_NETRVALIDATENAME"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRVALIDATENAME"); + ndr_print_struct(ndr, "out", "wkssvc_NetrGetJoinableOus"); + ndr->depth++; + ndr_print_ptr(ndr, "num_ous", r->out.num_ous); + ndr->depth++; + ndr_print_uint32(ndr, "num_ous", *r->out.num_ous); + ndr->depth--; + ndr_print_ptr(ndr, "ous", r->out.ous); + ndr->depth++; + ndr->print(ndr, "%s: ARRAY(%d)", "ous", *r->out.num_ous); ndr->depth++; + for (cntr_ous_1=0;cntr_ous_1<*r->out.num_ous;cntr_ous_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_ous_1); + if (idx_1) { + ndr_print_ptr(ndr, "ous", r->out.ous[cntr_ous_1]); + ndr->depth++; + ndr_print_ptr(ndr, "ous", *r->out.ous[cntr_ous_1]); + ndr->depth++; + ndr_print_string(ndr, "ous", *r->out.ous[cntr_ous_1]); + ndr->depth--; + ndr->depth--; + free(idx_1); + } + } + ndr->depth--; ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRVALIDATENAME"); - ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRGETJOININFORMATION(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRGETJOININFORMATION *r) +static enum ndr_err_code ndr_push_wkssvc_NetrJoinDomain2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrJoinDomain2 *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + if (r->in.domain_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.account_ou)); + if (r->in.account_ou) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_ou, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_ou, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_ou, ndr_charset_length(r->in.account_ou, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.admin_account)); + if (r->in.admin_account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.admin_account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.admin_account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.admin_account, ndr_charset_length(r->in.admin_account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.encrypted_password)); + if (r->in.encrypted_password) { + NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); + } + NDR_CHECK(ndr_push_wkssvc_joinflags(ndr, NDR_SCALARS, r->in.join_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3475,9 +8827,91 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRGETJOININFORMATION(struct ndr_push return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRGETJOININFORMATION(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRGETJOININFORMATION *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrJoinDomain2 *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_account_ou; + uint32_t _ptr_admin_account; + uint32_t _ptr_encrypted_password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_account_ou_0; + TALLOC_CTX *_mem_save_admin_account_0; + TALLOC_CTX *_mem_save_encrypted_password_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); + if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_ou)); + if (_ptr_account_ou) { + NDR_PULL_ALLOC(ndr, r->in.account_ou); + } else { + r->in.account_ou = NULL; + } + if (r->in.account_ou) { + _mem_save_account_ou_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.account_ou, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_ou)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_ou)); + if (ndr_get_array_length(ndr, &r->in.account_ou) > ndr_get_array_size(ndr, &r->in.account_ou)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_ou), ndr_get_array_length(ndr, &r->in.account_ou)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_ou, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_ou_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_admin_account)); + if (_ptr_admin_account) { + NDR_PULL_ALLOC(ndr, r->in.admin_account); + } else { + r->in.admin_account = NULL; + } + if (r->in.admin_account) { + _mem_save_admin_account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.admin_account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.admin_account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.admin_account)); + if (ndr_get_array_length(ndr, &r->in.admin_account) > ndr_get_array_size(ndr, &r->in.admin_account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.admin_account), ndr_get_array_length(ndr, &r->in.admin_account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.admin_account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.admin_account, ndr_get_array_length(ndr, &r->in.admin_account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_admin_account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_encrypted_password)); + if (_ptr_encrypted_password) { + NDR_PULL_ALLOC(ndr, r->in.encrypted_password); + } else { + r->in.encrypted_password = NULL; + } + if (r->in.encrypted_password) { + _mem_save_encrypted_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.encrypted_password, 0); + NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_encrypted_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.join_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3485,20 +8919,49 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRGETJOININFORMATION(struct ndr_pull return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRGETJOININFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRGETJOININFORMATION *r) +_PUBLIC_ void ndr_print_wkssvc_NetrJoinDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrJoinDomain2 *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRGETJOININFORMATION"); + ndr_print_struct(ndr, name, "wkssvc_NetrJoinDomain2"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRGETJOININFORMATION"); + ndr_print_struct(ndr, "in", "wkssvc_NetrJoinDomain2"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "domain_name", r->in.domain_name); + ndr->depth++; + ndr_print_string(ndr, "domain_name", r->in.domain_name); + ndr->depth--; + ndr_print_ptr(ndr, "account_ou", r->in.account_ou); ndr->depth++; + if (r->in.account_ou) { + ndr_print_string(ndr, "account_ou", r->in.account_ou); + } + ndr->depth--; + ndr_print_ptr(ndr, "admin_account", r->in.admin_account); + ndr->depth++; + if (r->in.admin_account) { + ndr_print_string(ndr, "admin_account", r->in.admin_account); + } + ndr->depth--; + ndr_print_ptr(ndr, "encrypted_password", r->in.encrypted_password); + ndr->depth++; + if (r->in.encrypted_password) { + ndr_print_wkssvc_PasswordBuffer(ndr, "encrypted_password", r->in.encrypted_password); + } + ndr->depth--; + ndr_print_wkssvc_joinflags(ndr, "join_flags", r->in.join_flags); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRGETJOININFORMATION"); + ndr_print_struct(ndr, "out", "wkssvc_NetrJoinDomain2"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3506,9 +8969,28 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRGETJOININFORMATION(struct ndr_print *ndr, con ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRGETJOINABLEOUS(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRGETJOINABLEOUS *r) +static enum ndr_err_code ndr_push_wkssvc_NetrUnjoinDomain2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrUnjoinDomain2 *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.account)); + if (r->in.account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account, ndr_charset_length(r->in.account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.encrypted_password)); + if (r->in.encrypted_password) { + NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); + } + NDR_CHECK(ndr_push_wkssvc_joinflags(ndr, NDR_SCALARS, r->in.unjoin_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3516,9 +8998,64 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRGETJOINABLEOUS(struct ndr_push *ndr return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRGETJOINABLEOUS(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRGETJOINABLEOUS *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUnjoinDomain2 *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_account; + uint32_t _ptr_encrypted_password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_account_0; + TALLOC_CTX *_mem_save_encrypted_password_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account)); + if (_ptr_account) { + NDR_PULL_ALLOC(ndr, r->in.account); + } else { + r->in.account = NULL; + } + if (r->in.account) { + _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account)); + if (ndr_get_array_length(ndr, &r->in.account) > ndr_get_array_size(ndr, &r->in.account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account), ndr_get_array_length(ndr, &r->in.account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account, ndr_get_array_length(ndr, &r->in.account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_encrypted_password)); + if (_ptr_encrypted_password) { + NDR_PULL_ALLOC(ndr, r->in.encrypted_password); + } else { + r->in.encrypted_password = NULL; + } + if (r->in.encrypted_password) { + _mem_save_encrypted_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.encrypted_password, 0); + NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_encrypted_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.unjoin_flags)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3526,20 +9063,39 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRGETJOINABLEOUS(struct ndr_pull *ndr return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRGETJOINABLEOUS(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRGETJOINABLEOUS *r) +_PUBLIC_ void ndr_print_wkssvc_NetrUnjoinDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUnjoinDomain2 *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRGETJOINABLEOUS"); + ndr_print_struct(ndr, name, "wkssvc_NetrUnjoinDomain2"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRGETJOINABLEOUS"); + ndr_print_struct(ndr, "in", "wkssvc_NetrUnjoinDomain2"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "account", r->in.account); + ndr->depth++; + if (r->in.account) { + ndr_print_string(ndr, "account", r->in.account); + } + ndr->depth--; + ndr_print_ptr(ndr, "encrypted_password", r->in.encrypted_password); ndr->depth++; + if (r->in.encrypted_password) { + ndr_print_wkssvc_PasswordBuffer(ndr, "encrypted_password", r->in.encrypted_password); + } + ndr->depth--; + ndr_print_wkssvc_joinflags(ndr, "unjoin_flags", r->in.unjoin_flags); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRGETJOINABLEOUS"); + ndr_print_struct(ndr, "out", "wkssvc_NetrUnjoinDomain2"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3547,7 +9103,7 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRGETJOINABLEOUS(struct ndr_print *ndr, const c ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetrJoinDomain2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrJoinDomain2 *r) +static enum ndr_err_code ndr_push_wkssvc_NetrRenameMachineInDomain2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrRenameMachineInDomain2 *r) { if (flags & NDR_IN) { NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); @@ -3557,32 +9113,25 @@ static enum ndr_err_code ndr_push_wkssvc_NetrJoinDomain2(struct ndr_push *ndr, i NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - if (r->in.domain_name == NULL) { - return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.account_name)); - if (r->in.account_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.NewMachineName)); + if (r->in.NewMachineName) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.NewMachineName, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.NewMachineName, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.NewMachineName, ndr_charset_length(r->in.NewMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.admin_account)); - if (r->in.admin_account) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.admin_account, CH_UTF16))); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.admin_account, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.admin_account, ndr_charset_length(r->in.admin_account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.encrypted_password)); - if (r->in.encrypted_password) { - NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.EncryptedPassword)); + if (r->in.EncryptedPassword) { + NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); } - NDR_CHECK(ndr_push_wkssvc_joinflags(ndr, NDR_SCALARS, r->in.join_flags)); + NDR_CHECK(ndr_push_wkssvc_renameflags(ndr, NDR_SCALARS, r->in.RenameOptions)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3590,16 +9139,16 @@ static enum ndr_err_code ndr_push_wkssvc_NetrJoinDomain2(struct ndr_push *ndr, i return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrJoinDomain2 *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrRenameMachineInDomain2 *r) { uint32_t _ptr_server_name; - uint32_t _ptr_account_name; - uint32_t _ptr_admin_account; - uint32_t _ptr_encrypted_password; + uint32_t _ptr_NewMachineName; + uint32_t _ptr_Account; + uint32_t _ptr_EncryptedPassword; TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_account_name_0; - TALLOC_CTX *_mem_save_admin_account_0; - TALLOC_CTX *_mem_save_encrypted_password_0; + TALLOC_CTX *_mem_save_NewMachineName_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_EncryptedPassword_0; if (flags & NDR_IN) { NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); if (_ptr_server_name) { @@ -3619,62 +9168,55 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, i NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); - if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name)); - if (_ptr_account_name) { - NDR_PULL_ALLOC(ndr, r->in.account_name); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NewMachineName)); + if (_ptr_NewMachineName) { + NDR_PULL_ALLOC(ndr, r->in.NewMachineName); } else { - r->in.account_name = NULL; + r->in.NewMachineName = NULL; } - if (r->in.account_name) { - _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.account_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); + if (r->in.NewMachineName) { + _mem_save_NewMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.NewMachineName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.NewMachineName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.NewMachineName)); + if (ndr_get_array_length(ndr, &r->in.NewMachineName) > ndr_get_array_size(ndr, &r->in.NewMachineName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.NewMachineName), ndr_get_array_length(ndr, &r->in.NewMachineName)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewMachineName, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NewMachineName_0, 0); } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_admin_account)); - if (_ptr_admin_account) { - NDR_PULL_ALLOC(ndr, r->in.admin_account); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); } else { - r->in.admin_account = NULL; + r->in.Account = NULL; } - if (r->in.admin_account) { - _mem_save_admin_account_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.admin_account, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.admin_account)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.admin_account)); - if (ndr_get_array_length(ndr, &r->in.admin_account) > ndr_get_array_size(ndr, &r->in.admin_account)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.admin_account), ndr_get_array_length(ndr, &r->in.admin_account)); + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.admin_account), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.admin_account, ndr_get_array_length(ndr, &r->in.admin_account), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_admin_account_0, 0); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_encrypted_password)); - if (_ptr_encrypted_password) { - NDR_PULL_ALLOC(ndr, r->in.encrypted_password); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); + if (_ptr_EncryptedPassword) { + NDR_PULL_ALLOC(ndr, r->in.EncryptedPassword); } else { - r->in.encrypted_password = NULL; + r->in.EncryptedPassword = NULL; } - if (r->in.encrypted_password) { - _mem_save_encrypted_password_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.encrypted_password, 0); - NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_encrypted_password_0, 0); + if (r->in.EncryptedPassword) { + _mem_save_EncryptedPassword_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.EncryptedPassword, 0); + NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_EncryptedPassword_0, 0); } - NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.join_flags)); + NDR_CHECK(ndr_pull_wkssvc_renameflags(ndr, NDR_SCALARS, &r->in.RenameOptions)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3682,15 +9224,15 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, i return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetrJoinDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrJoinDomain2 *r) +_PUBLIC_ void ndr_print_wkssvc_NetrRenameMachineInDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrRenameMachineInDomain2 *r) { - ndr_print_struct(ndr, name, "wkssvc_NetrJoinDomain2"); + ndr_print_struct(ndr, name, "wkssvc_NetrRenameMachineInDomain2"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "wkssvc_NetrJoinDomain2"); + ndr_print_struct(ndr, "in", "wkssvc_NetrRenameMachineInDomain2"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; @@ -3698,33 +9240,29 @@ _PUBLIC_ void ndr_print_wkssvc_NetrJoinDomain2(struct ndr_print *ndr, const char ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; - ndr_print_ptr(ndr, "domain_name", r->in.domain_name); - ndr->depth++; - ndr_print_string(ndr, "domain_name", r->in.domain_name); - ndr->depth--; - ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr_print_ptr(ndr, "NewMachineName", r->in.NewMachineName); ndr->depth++; - if (r->in.account_name) { - ndr_print_string(ndr, "account_name", r->in.account_name); + if (r->in.NewMachineName) { + ndr_print_string(ndr, "NewMachineName", r->in.NewMachineName); } ndr->depth--; - ndr_print_ptr(ndr, "admin_account", r->in.admin_account); + ndr_print_ptr(ndr, "Account", r->in.Account); ndr->depth++; - if (r->in.admin_account) { - ndr_print_string(ndr, "admin_account", r->in.admin_account); + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); } ndr->depth--; - ndr_print_ptr(ndr, "encrypted_password", r->in.encrypted_password); + ndr_print_ptr(ndr, "EncryptedPassword", r->in.EncryptedPassword); ndr->depth++; - if (r->in.encrypted_password) { - ndr_print_wkssvc_PasswordBuffer(ndr, "encrypted_password", r->in.encrypted_password); + if (r->in.EncryptedPassword) { + ndr_print_wkssvc_PasswordBuffer(ndr, "EncryptedPassword", r->in.EncryptedPassword); } ndr->depth--; - ndr_print_wkssvc_joinflags(ndr, "join_flags", r->in.join_flags); + ndr_print_wkssvc_renameflags(ndr, "RenameOptions", r->in.RenameOptions); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "wkssvc_NetrJoinDomain2"); + ndr_print_struct(ndr, "out", "wkssvc_NetrRenameMachineInDomain2"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3732,7 +9270,7 @@ _PUBLIC_ void ndr_print_wkssvc_NetrJoinDomain2(struct ndr_print *ndr, const char ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetrUnjoinDomain2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrUnjoinDomain2 *r) +static enum ndr_err_code ndr_push_wkssvc_NetrValidateName2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrValidateName2 *r) { if (flags & NDR_IN) { NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); @@ -3742,18 +9280,25 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUnjoinDomain2(struct ndr_push *ndr, NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.account)); - if (r->in.account) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account, CH_UTF16))); + if (r->in.name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.name, ndr_charset_length(r->in.name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account, ndr_charset_length(r->in.account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.encrypted_password)); - if (r->in.encrypted_password) { - NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.EncryptedPassword)); + if (r->in.EncryptedPassword) { + NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); } - NDR_CHECK(ndr_push_wkssvc_joinflags(ndr, NDR_SCALARS, r->in.unjoin_flags)); + NDR_CHECK(ndr_push_wkssvc_NetValidateNameType(ndr, NDR_SCALARS, r->in.name_type)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -3761,14 +9306,14 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUnjoinDomain2(struct ndr_push *ndr, return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUnjoinDomain2 *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrValidateName2 *r) { uint32_t _ptr_server_name; - uint32_t _ptr_account; - uint32_t _ptr_encrypted_password; + uint32_t _ptr_Account; + uint32_t _ptr_EncryptedPassword; TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_account_0; - TALLOC_CTX *_mem_save_encrypted_password_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_EncryptedPassword_0; if (flags & NDR_IN) { NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); if (_ptr_server_name) { @@ -3788,37 +9333,44 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain2(struct ndr_pull *ndr, NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account)); - if (_ptr_account) { - NDR_PULL_ALLOC(ndr, r->in.account); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name)); + if (ndr_get_array_length(ndr, &r->in.name) > ndr_get_array_size(ndr, &r->in.name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name), ndr_get_array_length(ndr, &r->in.name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); } else { - r->in.account = NULL; + r->in.Account = NULL; } - if (r->in.account) { - _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.account, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account)); - if (ndr_get_array_length(ndr, &r->in.account) > ndr_get_array_size(ndr, &r->in.account)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account), ndr_get_array_length(ndr, &r->in.account)); + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account, ndr_get_array_length(ndr, &r->in.account), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_encrypted_password)); - if (_ptr_encrypted_password) { - NDR_PULL_ALLOC(ndr, r->in.encrypted_password); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); + if (_ptr_EncryptedPassword) { + NDR_PULL_ALLOC(ndr, r->in.EncryptedPassword); } else { - r->in.encrypted_password = NULL; + r->in.EncryptedPassword = NULL; } - if (r->in.encrypted_password) { - _mem_save_encrypted_password_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.encrypted_password, 0); - NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.encrypted_password)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_encrypted_password_0, 0); + if (r->in.EncryptedPassword) { + _mem_save_EncryptedPassword_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.EncryptedPassword, 0); + NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_EncryptedPassword_0, 0); } - NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.unjoin_flags)); + NDR_CHECK(ndr_pull_wkssvc_NetValidateNameType(ndr, NDR_SCALARS, &r->in.name_type)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -3826,15 +9378,15 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain2(struct ndr_pull *ndr, return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetrUnjoinDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUnjoinDomain2 *r) +_PUBLIC_ void ndr_print_wkssvc_NetrValidateName2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrValidateName2 *r) { - ndr_print_struct(ndr, name, "wkssvc_NetrUnjoinDomain2"); + ndr_print_struct(ndr, name, "wkssvc_NetrValidateName2"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "wkssvc_NetrUnjoinDomain2"); + ndr_print_struct(ndr, "in", "wkssvc_NetrValidateName2"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; @@ -3842,23 +9394,27 @@ _PUBLIC_ void ndr_print_wkssvc_NetrUnjoinDomain2(struct ndr_print *ndr, const ch ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; - ndr_print_ptr(ndr, "account", r->in.account); + ndr_print_ptr(ndr, "name", r->in.name); ndr->depth++; - if (r->in.account) { - ndr_print_string(ndr, "account", r->in.account); + ndr_print_string(ndr, "name", r->in.name); + ndr->depth--; + ndr_print_ptr(ndr, "Account", r->in.Account); + ndr->depth++; + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); } ndr->depth--; - ndr_print_ptr(ndr, "encrypted_password", r->in.encrypted_password); + ndr_print_ptr(ndr, "EncryptedPassword", r->in.EncryptedPassword); ndr->depth++; - if (r->in.encrypted_password) { - ndr_print_wkssvc_PasswordBuffer(ndr, "encrypted_password", r->in.encrypted_password); + if (r->in.EncryptedPassword) { + ndr_print_wkssvc_PasswordBuffer(ndr, "EncryptedPassword", r->in.EncryptedPassword); } ndr->depth--; - ndr_print_wkssvc_joinflags(ndr, "unjoin_flags", r->in.unjoin_flags); + ndr_print_wkssvc_NetValidateNameType(ndr, "name_type", r->in.name_type); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "wkssvc_NetrUnjoinDomain2"); + ndr_print_struct(ndr, "out", "wkssvc_NetrValidateName2"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -3866,8 +9422,9 @@ _PUBLIC_ void ndr_print_wkssvc_NetrUnjoinDomain2(struct ndr_print *ndr, const ch ndr->depth--; } -static enum ndr_err_code ndr_push_wkssvc_NetrRenameMachineInDomain2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrRenameMachineInDomain2 *r) +static enum ndr_err_code ndr_push_wkssvc_NetrGetJoinableOus2(struct ndr_push *ndr, int flags, const struct wkssvc_NetrGetJoinableOus2 *r) { + uint32_t cntr_ous_1; if (flags & NDR_IN) { NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); if (r->in.server_name) { @@ -3876,13 +9433,13 @@ static enum ndr_err_code ndr_push_wkssvc_NetrRenameMachineInDomain2(struct ndr_p NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.NewMachineName)); - if (r->in.NewMachineName) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.NewMachineName, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.NewMachineName, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.NewMachineName, ndr_charset_length(r->in.NewMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + if (r->in.domain_name == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); if (r->in.Account) { NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); @@ -3894,25 +9451,47 @@ static enum ndr_err_code ndr_push_wkssvc_NetrRenameMachineInDomain2(struct ndr_p if (r->in.EncryptedPassword) { NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); } - NDR_CHECK(ndr_push_wkssvc_renameflags(ndr, NDR_SCALARS, r->in.RenameOptions)); + if (r->in.num_ous == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.num_ous)); } if (flags & NDR_OUT) { + if (r->out.num_ous == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_ous)); + if (r->out.ous == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_ous)); + for (cntr_ous_1 = 0; cntr_ous_1 < *r->out.num_ous; cntr_ous_1++) { + if (r->out.ous[cntr_ous_1] == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_ref_ptr(ndr)); + } NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrRenameMachineInDomain2 *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrGetJoinableOus2 *r) { uint32_t _ptr_server_name; - uint32_t _ptr_NewMachineName; uint32_t _ptr_Account; uint32_t _ptr_EncryptedPassword; + uint32_t _ptr_ous; + uint32_t cntr_ous_1; TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_NewMachineName_0; TALLOC_CTX *_mem_save_Account_0; TALLOC_CTX *_mem_save_EncryptedPassword_0; + TALLOC_CTX *_mem_save_num_ous_0; + TALLOC_CTX *_mem_save_ous_1; + TALLOC_CTX *_mem_save_ous_2; if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); if (_ptr_server_name) { NDR_PULL_ALLOC(ndr, r->in.server_name); @@ -3931,24 +9510,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_p NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NewMachineName)); - if (_ptr_NewMachineName) { - NDR_PULL_ALLOC(ndr, r->in.NewMachineName); - } else { - r->in.NewMachineName = NULL; - } - if (r->in.NewMachineName) { - _mem_save_NewMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.NewMachineName, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.NewMachineName)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.NewMachineName)); - if (ndr_get_array_length(ndr, &r->in.NewMachineName) > ndr_get_array_size(ndr, &r->in.NewMachineName)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.NewMachineName), ndr_get_array_length(ndr, &r->in.NewMachineName)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewMachineName, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NewMachineName_0, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); + if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); if (_ptr_Account) { NDR_PULL_ALLOC(ndr, r->in.Account); @@ -3979,23 +9547,57 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_p NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_EncryptedPassword_0, 0); } - NDR_CHECK(ndr_pull_wkssvc_renameflags(ndr, NDR_SCALARS, &r->in.RenameOptions)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.num_ous); + } + _mem_save_num_ous_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.num_ous, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.num_ous)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_ous_0, LIBNDR_FLAG_REF_ALLOC); + NDR_PULL_ALLOC(ndr, r->out.num_ous); + *r->out.num_ous = *r->in.num_ous; + NDR_PULL_ALLOC_N(ndr, r->out.ous, *r->in.num_ous); + memset(r->out.ous, 0, *r->in.num_ous * sizeof(*r->out.ous)); } if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.num_ous); + } + _mem_save_num_ous_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.num_ous, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_ous)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_ous_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.ous)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC_N(ndr, r->out.ous, ndr_get_array_size(ndr, &r->out.ous)); + } + _mem_save_ous_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.ous, 0); + for (cntr_ous_1 = 0; cntr_ous_1 < *r->out.num_ous; cntr_ous_1++) { + NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_ous)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.ous[cntr_ous_1]); + } + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ous_1, 0); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); + if (r->out.ous) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.ous, *r->out.num_ous)); + } } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_wkssvc_NetrRenameMachineInDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrRenameMachineInDomain2 *r) +_PUBLIC_ void ndr_print_wkssvc_NetrGetJoinableOus2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrGetJoinableOus2 *r) { - ndr_print_struct(ndr, name, "wkssvc_NetrRenameMachineInDomain2"); + uint32_t cntr_ous_1; + ndr_print_struct(ndr, name, "wkssvc_NetrGetJoinableOus2"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "wkssvc_NetrRenameMachineInDomain2"); + ndr_print_struct(ndr, "in", "wkssvc_NetrGetJoinableOus2"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; @@ -4003,11 +9605,9 @@ _PUBLIC_ void ndr_print_wkssvc_NetrRenameMachineInDomain2(struct ndr_print *ndr, ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; - ndr_print_ptr(ndr, "NewMachineName", r->in.NewMachineName); + ndr_print_ptr(ndr, "domain_name", r->in.domain_name); ndr->depth++; - if (r->in.NewMachineName) { - ndr_print_string(ndr, "NewMachineName", r->in.NewMachineName); - } + ndr_print_string(ndr, "domain_name", r->in.domain_name); ndr->depth--; ndr_print_ptr(ndr, "Account", r->in.Account); ndr->depth++; @@ -4021,94 +9621,39 @@ _PUBLIC_ void ndr_print_wkssvc_NetrRenameMachineInDomain2(struct ndr_print *ndr, ndr_print_wkssvc_PasswordBuffer(ndr, "EncryptedPassword", r->in.EncryptedPassword); } ndr->depth--; - ndr_print_wkssvc_renameflags(ndr, "RenameOptions", r->in.RenameOptions); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "wkssvc_NetrRenameMachineInDomain2"); + ndr_print_ptr(ndr, "num_ous", r->in.num_ous); ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); + ndr_print_uint32(ndr, "num_ous", *r->in.num_ous); ndr->depth--; - } - ndr->depth--; -} - -static enum ndr_err_code ndr_push_WKSSVC_NETRVALIDATENAME2(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRVALIDATENAME2 *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_WKSSVC_NETRVALIDATENAME2(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRVALIDATENAME2 *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_WKSSVC_NETRVALIDATENAME2(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRVALIDATENAME2 *r) -{ - ndr_print_struct(ndr, name, "WKSSVC_NETRVALIDATENAME2"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRVALIDATENAME2"); - ndr->depth++; ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRVALIDATENAME2"); + ndr_print_struct(ndr, "out", "wkssvc_NetrGetJoinableOus2"); ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -static enum ndr_err_code ndr_push_WKSSVC_NETRGETJOINABLEOUS2(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRGETJOINABLEOUS2 *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_WKSSVC_NETRGETJOINABLEOUS2(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRGETJOINABLEOUS2 *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_WKSSVC_NETRGETJOINABLEOUS2(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRGETJOINABLEOUS2 *r) -{ - ndr_print_struct(ndr, name, "WKSSVC_NETRGETJOINABLEOUS2"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRGETJOINABLEOUS2"); + ndr_print_ptr(ndr, "num_ous", r->out.num_ous); ndr->depth++; + ndr_print_uint32(ndr, "num_ous", *r->out.num_ous); ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRGETJOINABLEOUS2"); + ndr_print_ptr(ndr, "ous", r->out.ous); + ndr->depth++; + ndr->print(ndr, "%s: ARRAY(%d)", "ous", *r->out.num_ous); ndr->depth++; + for (cntr_ous_1=0;cntr_ous_1<*r->out.num_ous;cntr_ous_1++) { + char *idx_1=NULL; + asprintf(&idx_1, "[%d]", cntr_ous_1); + if (idx_1) { + ndr_print_ptr(ndr, "ous", r->out.ous[cntr_ous_1]); + ndr->depth++; + ndr_print_ptr(ndr, "ous", *r->out.ous[cntr_ous_1]); + ndr->depth++; + ndr_print_string(ndr, "ous", *r->out.ous[cntr_ous_1]); + ndr->depth--; + ndr->depth--; + free(idx_1); + } + } + ndr->depth--; + ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } @@ -4449,9 +9994,35 @@ _PUBLIC_ void ndr_print_wkssvc_NetrRemoveAlternateComputerName(struct ndr_print ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r) +static enum ndr_err_code ndr_push_wkssvc_NetrSetPrimaryComputername(struct ndr_push *ndr, int flags, const struct wkssvc_NetrSetPrimaryComputername *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.primary_name)); + if (r->in.primary_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.primary_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.primary_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.primary_name, ndr_charset_length(r->in.primary_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.Account)); + if (r->in.Account) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.Account, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.Account, ndr_charset_length(r->in.Account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.EncryptedPassword)); + if (r->in.EncryptedPassword) { + NDR_CHECK(ndr_push_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); + } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.Reserved)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); @@ -4459,9 +10030,84 @@ static enum ndr_err_code ndr_push_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct ndr_p return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrSetPrimaryComputername(struct ndr_pull *ndr, int flags, struct wkssvc_NetrSetPrimaryComputername *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_primary_name; + uint32_t _ptr_Account; + uint32_t _ptr_EncryptedPassword; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_primary_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_EncryptedPassword_0; if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_primary_name)); + if (_ptr_primary_name) { + NDR_PULL_ALLOC(ndr, r->in.primary_name); + } else { + r->in.primary_name = NULL; + } + if (r->in.primary_name) { + _mem_save_primary_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.primary_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.primary_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.primary_name)); + if (ndr_get_array_length(ndr, &r->in.primary_name) > ndr_get_array_size(ndr, &r->in.primary_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.primary_name), ndr_get_array_length(ndr, &r->in.primary_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.primary_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.primary_name, ndr_get_array_length(ndr, &r->in.primary_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_primary_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); + } else { + r->in.Account = NULL; + } + if (r->in.Account) { + _mem_save_Account_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); + if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); + if (_ptr_EncryptedPassword) { + NDR_PULL_ALLOC(ndr, r->in.EncryptedPassword); + } else { + r->in.EncryptedPassword = NULL; + } + if (r->in.EncryptedPassword) { + _mem_save_EncryptedPassword_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.EncryptedPassword, 0); + NDR_CHECK(ndr_pull_wkssvc_PasswordBuffer(ndr, NDR_SCALARS, r->in.EncryptedPassword)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_EncryptedPassword_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.Reserved)); } if (flags & NDR_OUT) { NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); @@ -4469,20 +10115,45 @@ static enum ndr_err_code ndr_pull_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct ndr_p return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r) +_PUBLIC_ void ndr_print_wkssvc_NetrSetPrimaryComputername(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrSetPrimaryComputername *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRSETPRIMARYCOMPUTERNAME"); + ndr_print_struct(ndr, name, "wkssvc_NetrSetPrimaryComputername"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRSETPRIMARYCOMPUTERNAME"); + ndr_print_struct(ndr, "in", "wkssvc_NetrSetPrimaryComputername"); + ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "primary_name", r->in.primary_name); + ndr->depth++; + if (r->in.primary_name) { + ndr_print_string(ndr, "primary_name", r->in.primary_name); + } + ndr->depth--; + ndr_print_ptr(ndr, "Account", r->in.Account); + ndr->depth++; + if (r->in.Account) { + ndr_print_string(ndr, "Account", r->in.Account); + } + ndr->depth--; + ndr_print_ptr(ndr, "EncryptedPassword", r->in.EncryptedPassword); ndr->depth++; + if (r->in.EncryptedPassword) { + ndr_print_wkssvc_PasswordBuffer(ndr, "EncryptedPassword", r->in.EncryptedPassword); + } + ndr->depth--; + ndr_print_uint32(ndr, "Reserved", r->in.Reserved); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRSETPRIMARYCOMPUTERNAME"); + ndr_print_struct(ndr, "out", "wkssvc_NetrSetPrimaryComputername"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; @@ -4490,41 +10161,116 @@ _PUBLIC_ void ndr_print_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct ndr_print *ndr, ndr->depth--; } -static enum ndr_err_code ndr_push_WKSSVC_NETRENUMERATECOMPUTERNAMES(struct ndr_push *ndr, int flags, const struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r) +static enum ndr_err_code ndr_push_wkssvc_NetrEnumerateComputerNames(struct ndr_push *ndr, int flags, const struct wkssvc_NetrEnumerateComputerNames *r) { if (flags & NDR_IN) { + NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); + if (r->in.server_name) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + } + NDR_CHECK(ndr_push_wkssvc_ComputerNameType(ndr, NDR_SCALARS, r->in.name_type)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.Reserved)); } if (flags & NDR_OUT) { + if (r->out.ctr == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + if (*r->out.ctr == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_ref_ptr(ndr)); + NDR_CHECK(ndr_push_wkssvc_ComputerNamesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr)); NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_WKSSVC_NETRENUMERATECOMPUTERNAMES(struct ndr_pull *ndr, int flags, struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r) +static enum ndr_err_code ndr_pull_wkssvc_NetrEnumerateComputerNames(struct ndr_pull *ndr, int flags, struct wkssvc_NetrEnumerateComputerNames *r) { + uint32_t _ptr_server_name; + uint32_t _ptr_ctr; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_ctr_0; + TALLOC_CTX *_mem_save_ctr_1; if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); + if (_ptr_server_name) { + NDR_PULL_ALLOC(ndr, r->in.server_name); + } else { + r->in.server_name = NULL; + } + if (r->in.server_name) { + _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); + if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_ComputerNameType(ndr, NDR_SCALARS, &r->in.name_type)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.Reserved)); + NDR_PULL_ALLOC(ndr, r->out.ctr); + ZERO_STRUCTP(r->out.ctr); } if (flags & NDR_OUT) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.ctr); + } + _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_ctr)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, *r->out.ctr); + } + _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_wkssvc_ComputerNamesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, LIBNDR_FLAG_REF_ALLOC); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_WKSSVC_NETRENUMERATECOMPUTERNAMES(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r) +_PUBLIC_ void ndr_print_wkssvc_NetrEnumerateComputerNames(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrEnumerateComputerNames *r) { - ndr_print_struct(ndr, name, "WKSSVC_NETRENUMERATECOMPUTERNAMES"); + ndr_print_struct(ndr, name, "wkssvc_NetrEnumerateComputerNames"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "WKSSVC_NETRENUMERATECOMPUTERNAMES"); + ndr_print_struct(ndr, "in", "wkssvc_NetrEnumerateComputerNames"); ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; + if (r->in.server_name) { + ndr_print_string(ndr, "server_name", r->in.server_name); + } + ndr->depth--; + ndr_print_wkssvc_ComputerNameType(ndr, "name_type", r->in.name_type); + ndr_print_uint32(ndr, "Reserved", r->in.Reserved); ndr->depth--; } if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "WKSSVC_NETRENUMERATECOMPUTERNAMES"); + ndr_print_struct(ndr, "out", "wkssvc_NetrEnumerateComputerNames"); + ndr->depth++; + ndr_print_ptr(ndr, "ctr", r->out.ctr); + ndr->depth++; + ndr_print_ptr(ndr, "ctr", *r->out.ctr); ndr->depth++; + ndr_print_wkssvc_ComputerNamesCtr(ndr, "ctr", *r->out.ctr); + ndr->depth--; + ndr->depth--; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } @@ -4557,19 +10303,19 @@ static const struct ndr_interface_call wkssvc_calls[] = { false, }, { - "WKSSVC_NETRWKSTAUSERGETINFO", - sizeof(struct WKSSVC_NETRWKSTAUSERGETINFO), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRWKSTAUSERGETINFO, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRWKSTAUSERGETINFO, - (ndr_print_function_t) ndr_print_WKSSVC_NETRWKSTAUSERGETINFO, + "wkssvc_NetrWkstaUserGetInfo", + sizeof(struct wkssvc_NetrWkstaUserGetInfo), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrWkstaUserGetInfo, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrWkstaUserGetInfo, + (ndr_print_function_t) ndr_print_wkssvc_NetrWkstaUserGetInfo, false, }, { - "WKSSVC_NETRWKSTAUSERSETINFO", - sizeof(struct WKSSVC_NETRWKSTAUSERSETINFO), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRWKSTAUSERSETINFO, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRWKSTAUSERSETINFO, - (ndr_print_function_t) ndr_print_WKSSVC_NETRWKSTAUSERSETINFO, + "wkssvc_NetrWkstaUserSetInfo", + sizeof(struct wkssvc_NetrWkstaUserSetInfo), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrWkstaUserSetInfo, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrWkstaUserSetInfo, + (ndr_print_function_t) ndr_print_wkssvc_NetrWkstaUserSetInfo, false, }, { @@ -4581,131 +10327,131 @@ static const struct ndr_interface_call wkssvc_calls[] = { false, }, { - "WKSSVC_NETRWKSTATRANSPORTADD", - sizeof(struct WKSSVC_NETRWKSTATRANSPORTADD), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRWKSTATRANSPORTADD, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRWKSTATRANSPORTADD, - (ndr_print_function_t) ndr_print_WKSSVC_NETRWKSTATRANSPORTADD, + "wkssvc_NetrWkstaTransportAdd", + sizeof(struct wkssvc_NetrWkstaTransportAdd), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrWkstaTransportAdd, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrWkstaTransportAdd, + (ndr_print_function_t) ndr_print_wkssvc_NetrWkstaTransportAdd, false, }, { - "WKSSVC_NETRWKSTATRANSPORTDEL", - sizeof(struct WKSSVC_NETRWKSTATRANSPORTDEL), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRWKSTATRANSPORTDEL, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRWKSTATRANSPORTDEL, - (ndr_print_function_t) ndr_print_WKSSVC_NETRWKSTATRANSPORTDEL, + "wkssvc_NetrWkstaTransportDel", + sizeof(struct wkssvc_NetrWkstaTransportDel), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrWkstaTransportDel, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrWkstaTransportDel, + (ndr_print_function_t) ndr_print_wkssvc_NetrWkstaTransportDel, false, }, { - "WKSSVC_NETRUSEADD", - sizeof(struct WKSSVC_NETRUSEADD), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRUSEADD, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRUSEADD, - (ndr_print_function_t) ndr_print_WKSSVC_NETRUSEADD, + "wkssvc_NetrUseAdd", + sizeof(struct wkssvc_NetrUseAdd), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrUseAdd, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrUseAdd, + (ndr_print_function_t) ndr_print_wkssvc_NetrUseAdd, false, }, { - "WKSSVC_NETRUSEGETINFO", - sizeof(struct WKSSVC_NETRUSEGETINFO), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRUSEGETINFO, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRUSEGETINFO, - (ndr_print_function_t) ndr_print_WKSSVC_NETRUSEGETINFO, + "wkssvc_NetrUseGetInfo", + sizeof(struct wkssvc_NetrUseGetInfo), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrUseGetInfo, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrUseGetInfo, + (ndr_print_function_t) ndr_print_wkssvc_NetrUseGetInfo, false, }, { - "WKSSVC_NETRUSEDEL", - sizeof(struct WKSSVC_NETRUSEDEL), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRUSEDEL, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRUSEDEL, - (ndr_print_function_t) ndr_print_WKSSVC_NETRUSEDEL, + "wkssvc_NetrUseDel", + sizeof(struct wkssvc_NetrUseDel), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrUseDel, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrUseDel, + (ndr_print_function_t) ndr_print_wkssvc_NetrUseDel, false, }, { - "WKSSVC_NETRUSEENUM", - sizeof(struct WKSSVC_NETRUSEENUM), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRUSEENUM, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRUSEENUM, - (ndr_print_function_t) ndr_print_WKSSVC_NETRUSEENUM, + "wkssvc_NetrUseEnum", + sizeof(struct wkssvc_NetrUseEnum), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrUseEnum, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrUseEnum, + (ndr_print_function_t) ndr_print_wkssvc_NetrUseEnum, false, }, { - "WKSSVC_NETRMESSAGEBUFFERSEND", - sizeof(struct WKSSVC_NETRMESSAGEBUFFERSEND), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRMESSAGEBUFFERSEND, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRMESSAGEBUFFERSEND, - (ndr_print_function_t) ndr_print_WKSSVC_NETRMESSAGEBUFFERSEND, + "wkssvc_NetrMessageBufferSend", + sizeof(struct wkssvc_NetrMessageBufferSend), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrMessageBufferSend, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrMessageBufferSend, + (ndr_print_function_t) ndr_print_wkssvc_NetrMessageBufferSend, false, }, { - "WKSSVC_NETRWORKSTATIONSTATISTICSGET", - sizeof(struct WKSSVC_NETRWORKSTATIONSTATISTICSGET), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRWORKSTATIONSTATISTICSGET, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRWORKSTATIONSTATISTICSGET, - (ndr_print_function_t) ndr_print_WKSSVC_NETRWORKSTATIONSTATISTICSGET, + "wkssvc_NetrWorkstationStatisticsGet", + sizeof(struct wkssvc_NetrWorkstationStatisticsGet), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrWorkstationStatisticsGet, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrWorkstationStatisticsGet, + (ndr_print_function_t) ndr_print_wkssvc_NetrWorkstationStatisticsGet, false, }, { - "WKSSVC_NETRLOGONDOMAINNAMEADD", - sizeof(struct WKSSVC_NETRLOGONDOMAINNAMEADD), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRLOGONDOMAINNAMEADD, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEADD, - (ndr_print_function_t) ndr_print_WKSSVC_NETRLOGONDOMAINNAMEADD, + "wkssvc_NetrLogonDomainNameAdd", + sizeof(struct wkssvc_NetrLogonDomainNameAdd), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrLogonDomainNameAdd, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrLogonDomainNameAdd, + (ndr_print_function_t) ndr_print_wkssvc_NetrLogonDomainNameAdd, false, }, { - "WKSSVC_NETRLOGONDOMAINNAMEDEL", - sizeof(struct WKSSVC_NETRLOGONDOMAINNAMEDEL), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRLOGONDOMAINNAMEDEL, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEDEL, - (ndr_print_function_t) ndr_print_WKSSVC_NETRLOGONDOMAINNAMEDEL, + "wkssvc_NetrLogonDomainNameDel", + sizeof(struct wkssvc_NetrLogonDomainNameDel), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrLogonDomainNameDel, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrLogonDomainNameDel, + (ndr_print_function_t) ndr_print_wkssvc_NetrLogonDomainNameDel, false, }, { - "WKSSVC_NETRJOINDOMAIN", - sizeof(struct WKSSVC_NETRJOINDOMAIN), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRJOINDOMAIN, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRJOINDOMAIN, - (ndr_print_function_t) ndr_print_WKSSVC_NETRJOINDOMAIN, + "wkssvc_NetrJoinDomain", + sizeof(struct wkssvc_NetrJoinDomain), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrJoinDomain, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrJoinDomain, + (ndr_print_function_t) ndr_print_wkssvc_NetrJoinDomain, false, }, { - "WKSSVC_NETRUNJOINDOMAIN", - sizeof(struct WKSSVC_NETRUNJOINDOMAIN), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRUNJOINDOMAIN, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRUNJOINDOMAIN, - (ndr_print_function_t) ndr_print_WKSSVC_NETRUNJOINDOMAIN, + "wkssvc_NetrUnjoinDomain", + sizeof(struct wkssvc_NetrUnjoinDomain), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrUnjoinDomain, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrUnjoinDomain, + (ndr_print_function_t) ndr_print_wkssvc_NetrUnjoinDomain, false, }, { - "WKSSVC_NETRRENAMEMACHINEINDOMAIN", - sizeof(struct WKSSVC_NETRRENAMEMACHINEINDOMAIN), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRRENAMEMACHINEINDOMAIN, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRRENAMEMACHINEINDOMAIN, - (ndr_print_function_t) ndr_print_WKSSVC_NETRRENAMEMACHINEINDOMAIN, + "wkssvc_NetrRenameMachineInDomain", + sizeof(struct wkssvc_NetrRenameMachineInDomain), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrRenameMachineInDomain, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrRenameMachineInDomain, + (ndr_print_function_t) ndr_print_wkssvc_NetrRenameMachineInDomain, false, }, { - "WKSSVC_NETRVALIDATENAME", - sizeof(struct WKSSVC_NETRVALIDATENAME), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRVALIDATENAME, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRVALIDATENAME, - (ndr_print_function_t) ndr_print_WKSSVC_NETRVALIDATENAME, + "wkssvc_NetrValidateName", + sizeof(struct wkssvc_NetrValidateName), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrValidateName, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrValidateName, + (ndr_print_function_t) ndr_print_wkssvc_NetrValidateName, false, }, { - "WKSSVC_NETRGETJOININFORMATION", - sizeof(struct WKSSVC_NETRGETJOININFORMATION), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRGETJOININFORMATION, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRGETJOININFORMATION, - (ndr_print_function_t) ndr_print_WKSSVC_NETRGETJOININFORMATION, + "wkssvc_NetrGetJoinInformation", + sizeof(struct wkssvc_NetrGetJoinInformation), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrGetJoinInformation, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrGetJoinInformation, + (ndr_print_function_t) ndr_print_wkssvc_NetrGetJoinInformation, false, }, { - "WKSSVC_NETRGETJOINABLEOUS", - sizeof(struct WKSSVC_NETRGETJOINABLEOUS), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRGETJOINABLEOUS, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRGETJOINABLEOUS, - (ndr_print_function_t) ndr_print_WKSSVC_NETRGETJOINABLEOUS, + "wkssvc_NetrGetJoinableOus", + sizeof(struct wkssvc_NetrGetJoinableOus), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrGetJoinableOus, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrGetJoinableOus, + (ndr_print_function_t) ndr_print_wkssvc_NetrGetJoinableOus, false, }, { @@ -4733,19 +10479,19 @@ static const struct ndr_interface_call wkssvc_calls[] = { false, }, { - "WKSSVC_NETRVALIDATENAME2", - sizeof(struct WKSSVC_NETRVALIDATENAME2), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRVALIDATENAME2, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRVALIDATENAME2, - (ndr_print_function_t) ndr_print_WKSSVC_NETRVALIDATENAME2, + "wkssvc_NetrValidateName2", + sizeof(struct wkssvc_NetrValidateName2), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrValidateName2, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrValidateName2, + (ndr_print_function_t) ndr_print_wkssvc_NetrValidateName2, false, }, { - "WKSSVC_NETRGETJOINABLEOUS2", - sizeof(struct WKSSVC_NETRGETJOINABLEOUS2), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRGETJOINABLEOUS2, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRGETJOINABLEOUS2, - (ndr_print_function_t) ndr_print_WKSSVC_NETRGETJOINABLEOUS2, + "wkssvc_NetrGetJoinableOus2", + sizeof(struct wkssvc_NetrGetJoinableOus2), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrGetJoinableOus2, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrGetJoinableOus2, + (ndr_print_function_t) ndr_print_wkssvc_NetrGetJoinableOus2, false, }, { @@ -4765,19 +10511,19 @@ static const struct ndr_interface_call wkssvc_calls[] = { false, }, { - "WKSSVC_NETRSETPRIMARYCOMPUTERNAME", - sizeof(struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, - (ndr_print_function_t) ndr_print_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, + "wkssvc_NetrSetPrimaryComputername", + sizeof(struct wkssvc_NetrSetPrimaryComputername), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrSetPrimaryComputername, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrSetPrimaryComputername, + (ndr_print_function_t) ndr_print_wkssvc_NetrSetPrimaryComputername, false, }, { - "WKSSVC_NETRENUMERATECOMPUTERNAMES", - sizeof(struct WKSSVC_NETRENUMERATECOMPUTERNAMES), - (ndr_push_flags_fn_t) ndr_push_WKSSVC_NETRENUMERATECOMPUTERNAMES, - (ndr_pull_flags_fn_t) ndr_pull_WKSSVC_NETRENUMERATECOMPUTERNAMES, - (ndr_print_function_t) ndr_print_WKSSVC_NETRENUMERATECOMPUTERNAMES, + "wkssvc_NetrEnumerateComputerNames", + sizeof(struct wkssvc_NetrEnumerateComputerNames), + (ndr_push_flags_fn_t) ndr_push_wkssvc_NetrEnumerateComputerNames, + (ndr_pull_flags_fn_t) ndr_pull_wkssvc_NetrEnumerateComputerNames, + (ndr_print_function_t) ndr_print_wkssvc_NetrEnumerateComputerNames, false, }, { NULL, 0, NULL, NULL, NULL, false } @@ -4785,10 +10531,12 @@ static const struct ndr_interface_call wkssvc_calls[] = { static const char * const wkssvc_endpoint_strings[] = { "ncacn_np:[\\pipe\\wkssvc]", + "ncacn_ip_tcp:", + "ncalrpc:", }; static const struct ndr_interface_string_array wkssvc_endpoints = { - .count = 1, + .count = 3, .names = wkssvc_endpoint_strings }; @@ -4797,7 +10545,7 @@ static const char * const wkssvc_authservice_strings[] = { }; static const struct ndr_interface_string_array wkssvc_authservices = { - .count = 1, + .count = 3, .names = wkssvc_authservice_strings }; diff --git a/source3/librpc/gen_ndr/ndr_wkssvc.h b/source3/librpc/gen_ndr/ndr_wkssvc.h index 7d140997f0..0fa4d3f8d4 100644 --- a/source3/librpc/gen_ndr/ndr_wkssvc.h +++ b/source3/librpc/gen_ndr/ndr_wkssvc.h @@ -85,48 +85,91 @@ void ndr_print_wkssvc_NetWkstaInfo1013(struct ndr_print *ndr, const char *name, void ndr_print_wkssvc_NetWkstaInfo1018(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1018 *r); void ndr_print_wkssvc_NetWkstaInfo1023(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1023 *r); void ndr_print_wkssvc_NetWkstaInfo1027(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1027 *r); +void ndr_print_wkssvc_NetWkstaInfo1028(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1028 *r); +void ndr_print_wkssvc_NetWkstaInfo1032(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1032 *r); void ndr_print_wkssvc_NetWkstaInfo1033(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1033 *r); +void ndr_print_wkssvc_NetWkstaInfo1041(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1041 *r); +void ndr_print_wkssvc_NetWkstaInfo1042(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1042 *r); +void ndr_print_wkssvc_NetWkstaInfo1043(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1043 *r); +void ndr_print_wkssvc_NetWkstaInfo1044(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1044 *r); +void ndr_print_wkssvc_NetWkstaInfo1045(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1045 *r); +void ndr_print_wkssvc_NetWkstaInfo1046(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1046 *r); +void ndr_print_wkssvc_NetWkstaInfo1047(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1047 *r); +void ndr_print_wkssvc_NetWkstaInfo1048(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1048 *r); +void ndr_print_wkssvc_NetWkstaInfo1049(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1049 *r); +void ndr_print_wkssvc_NetWkstaInfo1050(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1050 *r); +void ndr_print_wkssvc_NetWkstaInfo1051(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1051 *r); +void ndr_print_wkssvc_NetWkstaInfo1052(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1052 *r); +void ndr_print_wkssvc_NetWkstaInfo1053(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1053 *r); +void ndr_print_wkssvc_NetWkstaInfo1054(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1054 *r); +void ndr_print_wkssvc_NetWkstaInfo1055(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1055 *r); +void ndr_print_wkssvc_NetWkstaInfo1056(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1056 *r); +void ndr_print_wkssvc_NetWkstaInfo1057(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1057 *r); +void ndr_print_wkssvc_NetWkstaInfo1058(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1058 *r); +void ndr_print_wkssvc_NetWkstaInfo1059(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1059 *r); +void ndr_print_wkssvc_NetWkstaInfo1060(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1060 *r); +void ndr_print_wkssvc_NetWkstaInfo1061(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1061 *r); +void ndr_print_wkssvc_NetWkstaInfo1062(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaInfo1062 *r); void ndr_print_wkssvc_NetWkstaInfo(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaInfo *r); -void ndr_print_USER_INFO_0(struct ndr_print *ndr, const char *name, const struct USER_INFO_0 *r); -void ndr_print_USER_INFO_0_CONTAINER(struct ndr_print *ndr, const char *name, const struct USER_INFO_0_CONTAINER *r); -void ndr_print_USER_INFO_1(struct ndr_print *ndr, const char *name, const struct USER_INFO_1 *r); -void ndr_print_USER_INFO_1_CONTAINER(struct ndr_print *ndr, const char *name, const struct USER_INFO_1_CONTAINER *r); -void ndr_print_WKS_USER_ENUM_UNION(struct ndr_print *ndr, const char *name, const union WKS_USER_ENUM_UNION *r); +void ndr_print_wkssvc_NetrWkstaUserInfo0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWkstaUserInfo0 *r); +void ndr_print_wkssvc_NetWkstaEnumUsersCtr0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaEnumUsersCtr0 *r); +void ndr_print_wkssvc_NetrWkstaUserInfo1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWkstaUserInfo1 *r); +void ndr_print_wkssvc_NetWkstaEnumUsersCtr1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaEnumUsersCtr1 *r); +void ndr_print_wkssvc_NetWkstaEnumUsersCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaEnumUsersCtr *r); +void ndr_print_wkssvc_NetWkstaEnumUsersInfo(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaEnumUsersInfo *r); +void ndr_print_wkssvc_NetrWkstaUserInfo1101(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWkstaUserInfo1101 *r); +void ndr_print_wkssvc_NetrWkstaUserInfo(struct ndr_print *ndr, const char *name, const union wkssvc_NetrWkstaUserInfo *r); void ndr_print_wkssvc_NetWkstaTransportInfo0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportInfo0 *r); void ndr_print_wkssvc_NetWkstaTransportCtr0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportCtr0 *r); void ndr_print_wkssvc_NetWkstaTransportCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaTransportCtr *r); +void ndr_print_wkssvc_NetWkstaTransportInfo(struct ndr_print *ndr, const char *name, const struct wkssvc_NetWkstaTransportInfo *r); +void ndr_print_wkssvc_NetrUseInfo3(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo3 *r); +void ndr_print_wkssvc_NetrUseInfo2(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo2 *r); +void ndr_print_wkssvc_NetrUseInfo1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo1 *r); +void ndr_print_wkssvc_NetrUseInfo0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseInfo0 *r); +void ndr_print_wkssvc_NetrUseGetInfoCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetrUseGetInfoCtr *r); +void ndr_print_wkssvc_NetrUseEnumCtr2(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumCtr2 *r); +void ndr_print_wkssvc_NetrUseEnumCtr1(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumCtr1 *r); +void ndr_print_wkssvc_NetrUseEnumCtr0(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumCtr0 *r); +void ndr_print_wkssvc_NetrUseEnumCtr(struct ndr_print *ndr, const char *name, const union wkssvc_NetrUseEnumCtr *r); +void ndr_print_wkssvc_NetrUseEnumInfo(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrUseEnumInfo *r); +void ndr_print_wkssvc_NetrWorkstationStatistics(struct ndr_print *ndr, const char *name, const struct wkssvc_NetrWorkstationStatistics *r); +void ndr_print_wkssvc_renameflags(struct ndr_print *ndr, const char *name, uint32_t r); +void ndr_print_wkssvc_NetValidateNameType(struct ndr_print *ndr, const char *name, enum wkssvc_NetValidateNameType r); +void ndr_print_wkssvc_NetJoinStatus(struct ndr_print *ndr, const char *name, enum wkssvc_NetJoinStatus r); void ndr_print_wkssvc_PasswordBuffer(struct ndr_print *ndr, const char *name, const struct wkssvc_PasswordBuffer *r); void ndr_print_wkssvc_joinflags(struct ndr_print *ndr, const char *name, uint32_t r); -void ndr_print_wkssvc_renameflags(struct ndr_print *ndr, const char *name, uint32_t r); +void ndr_print_wkssvc_ComputerNameType(struct ndr_print *ndr, const char *name, enum wkssvc_ComputerNameType r); +void ndr_print_wkssvc_ComputerNamesCtr(struct ndr_print *ndr, const char *name, const struct wkssvc_ComputerNamesCtr *r); void ndr_print_wkssvc_NetWkstaGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaGetInfo *r); void ndr_print_wkssvc_NetWkstaSetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaSetInfo *r); void ndr_print_wkssvc_NetWkstaEnumUsers(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaEnumUsers *r); -void ndr_print_WKSSVC_NETRWKSTAUSERGETINFO(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTAUSERGETINFO *r); -void ndr_print_WKSSVC_NETRWKSTAUSERSETINFO(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTAUSERSETINFO *r); +void ndr_print_wkssvc_NetrWkstaUserGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaUserGetInfo *r); +void ndr_print_wkssvc_NetrWkstaUserSetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaUserSetInfo *r); void ndr_print_wkssvc_NetWkstaTransportEnum(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetWkstaTransportEnum *r); -void ndr_print_WKSSVC_NETRWKSTATRANSPORTADD(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTATRANSPORTADD *r); -void ndr_print_WKSSVC_NETRWKSTATRANSPORTDEL(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWKSTATRANSPORTDEL *r); -void ndr_print_WKSSVC_NETRUSEADD(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEADD *r); -void ndr_print_WKSSVC_NETRUSEGETINFO(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEGETINFO *r); -void ndr_print_WKSSVC_NETRUSEDEL(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEDEL *r); -void ndr_print_WKSSVC_NETRUSEENUM(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUSEENUM *r); -void ndr_print_WKSSVC_NETRMESSAGEBUFFERSEND(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRMESSAGEBUFFERSEND *r); -void ndr_print_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r); -void ndr_print_WKSSVC_NETRLOGONDOMAINNAMEADD(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRLOGONDOMAINNAMEADD *r); -void ndr_print_WKSSVC_NETRLOGONDOMAINNAMEDEL(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r); -void ndr_print_WKSSVC_NETRJOINDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRJOINDOMAIN *r); -void ndr_print_WKSSVC_NETRUNJOINDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRUNJOINDOMAIN *r); -void ndr_print_WKSSVC_NETRRENAMEMACHINEINDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r); -void ndr_print_WKSSVC_NETRVALIDATENAME(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRVALIDATENAME *r); -void ndr_print_WKSSVC_NETRGETJOININFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRGETJOININFORMATION *r); -void ndr_print_WKSSVC_NETRGETJOINABLEOUS(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRGETJOINABLEOUS *r); +void ndr_print_wkssvc_NetrWkstaTransportAdd(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaTransportAdd *r); +void ndr_print_wkssvc_NetrWkstaTransportDel(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWkstaTransportDel *r); +void ndr_print_wkssvc_NetrUseAdd(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseAdd *r); +void ndr_print_wkssvc_NetrUseGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseGetInfo *r); +void ndr_print_wkssvc_NetrUseDel(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseDel *r); +void ndr_print_wkssvc_NetrUseEnum(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUseEnum *r); +void ndr_print_wkssvc_NetrMessageBufferSend(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrMessageBufferSend *r); +void ndr_print_wkssvc_NetrWorkstationStatisticsGet(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrWorkstationStatisticsGet *r); +void ndr_print_wkssvc_NetrLogonDomainNameAdd(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrLogonDomainNameAdd *r); +void ndr_print_wkssvc_NetrLogonDomainNameDel(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrLogonDomainNameDel *r); +void ndr_print_wkssvc_NetrJoinDomain(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrJoinDomain *r); +void ndr_print_wkssvc_NetrUnjoinDomain(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUnjoinDomain *r); +void ndr_print_wkssvc_NetrRenameMachineInDomain(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrRenameMachineInDomain *r); +void ndr_print_wkssvc_NetrValidateName(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrValidateName *r); +void ndr_print_wkssvc_NetrGetJoinInformation(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrGetJoinInformation *r); +void ndr_print_wkssvc_NetrGetJoinableOus(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrGetJoinableOus *r); void ndr_print_wkssvc_NetrJoinDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrJoinDomain2 *r); void ndr_print_wkssvc_NetrUnjoinDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrUnjoinDomain2 *r); void ndr_print_wkssvc_NetrRenameMachineInDomain2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrRenameMachineInDomain2 *r); -void ndr_print_WKSSVC_NETRVALIDATENAME2(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRVALIDATENAME2 *r); -void ndr_print_WKSSVC_NETRGETJOINABLEOUS2(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRGETJOINABLEOUS2 *r); +void ndr_print_wkssvc_NetrValidateName2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrValidateName2 *r); +void ndr_print_wkssvc_NetrGetJoinableOus2(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrGetJoinableOus2 *r); void ndr_print_wkssvc_NetrAddAlternateComputerName(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrAddAlternateComputerName *r); void ndr_print_wkssvc_NetrRemoveAlternateComputerName(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrRemoveAlternateComputerName *r); -void ndr_print_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r); -void ndr_print_WKSSVC_NETRENUMERATECOMPUTERNAMES(struct ndr_print *ndr, const char *name, int flags, const struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r); +void ndr_print_wkssvc_NetrSetPrimaryComputername(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrSetPrimaryComputername *r); +void ndr_print_wkssvc_NetrEnumerateComputerNames(struct ndr_print *ndr, const char *name, int flags, const struct wkssvc_NetrEnumerateComputerNames *r); #endif /* _HEADER_NDR_wkssvc */ diff --git a/source3/librpc/gen_ndr/srv_wkssvc.c b/source3/librpc/gen_ndr/srv_wkssvc.c index 48ee7360c9..ff8c1e2603 100644 --- a/source3/librpc/gen_ndr/srv_wkssvc.c +++ b/source3/librpc/gen_ndr/srv_wkssvc.c @@ -195,20 +195,14 @@ static bool api_wkssvc_NetWkstaEnumUsers(pipes_struct *p) NDR_PRINT_IN_DEBUG(wkssvc_NetWkstaEnumUsers, r); ZERO_STRUCT(r->out); - r->out.users = r->in.users; - r->out.entriesread = talloc_zero(r, uint32_t); - if (r->out.entriesread == NULL) { + r->out.info = r->in.info; + r->out.entries_read = talloc_zero(r, uint32_t); + if (r->out.entries_read == NULL) { talloc_free(r); return False; } - r->out.totalentries = talloc_zero(r, uint32_t); - if (r->out.totalentries == NULL) { - talloc_free(r); - return False; - } - - r->out.resumehandle = r->in.resumehandle; + r->out.resume_handle = r->in.resume_handle; r->out.result = _wkssvc_NetWkstaEnumUsers(p, r); if (p->rng_fault_state) { @@ -243,18 +237,18 @@ static bool api_wkssvc_NetWkstaEnumUsers(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRWKSTAUSERGETINFO(pipes_struct *p) +static bool api_wkssvc_NetrWkstaUserGetInfo(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRWKSTAUSERGETINFO *r; + struct wkssvc_NetrWkstaUserGetInfo *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRWKSTAUSERGETINFO]; - r = talloc(NULL, struct WKSSVC_NETRWKSTAUSERGETINFO); + r = talloc(NULL, struct wkssvc_NetrWkstaUserGetInfo); if (r == NULL) { return False; } @@ -278,9 +272,16 @@ static bool api_WKSSVC_NETRWKSTAUSERGETINFO(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTAUSERGETINFO, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaUserGetInfo, r); - r->out.result = _WKSSVC_NETRWKSTAUSERGETINFO(p, r); + ZERO_STRUCT(r->out); + r->out.info = talloc_zero(r, union wkssvc_NetrWkstaUserInfo); + if (r->out.info == NULL) { + talloc_free(r); + return False; + } + + r->out.result = _wkssvc_NetrWkstaUserGetInfo(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -289,7 +290,7 @@ static bool api_WKSSVC_NETRWKSTAUSERGETINFO(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTAUSERGETINFO, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaUserGetInfo, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -314,18 +315,18 @@ static bool api_WKSSVC_NETRWKSTAUSERGETINFO(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRWKSTAUSERSETINFO(pipes_struct *p) +static bool api_wkssvc_NetrWkstaUserSetInfo(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRWKSTAUSERSETINFO *r; + struct wkssvc_NetrWkstaUserSetInfo *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRWKSTAUSERSETINFO]; - r = talloc(NULL, struct WKSSVC_NETRWKSTAUSERSETINFO); + r = talloc(NULL, struct wkssvc_NetrWkstaUserSetInfo); if (r == NULL) { return False; } @@ -349,9 +350,11 @@ static bool api_WKSSVC_NETRWKSTAUSERSETINFO(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTAUSERSETINFO, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaUserSetInfo, r); - r->out.result = _WKSSVC_NETRWKSTAUSERSETINFO(p, r); + ZERO_STRUCT(r->out); + r->out.parm_err = r->in.parm_err; + r->out.result = _wkssvc_NetrWkstaUserSetInfo(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -360,7 +363,7 @@ static bool api_WKSSVC_NETRWKSTAUSERSETINFO(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTAUSERSETINFO, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaUserSetInfo, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -423,10 +426,9 @@ static bool api_wkssvc_NetWkstaTransportEnum(pipes_struct *p) NDR_PRINT_IN_DEBUG(wkssvc_NetWkstaTransportEnum, r); ZERO_STRUCT(r->out); - r->out.level = r->in.level; - r->out.ctr = r->in.ctr; - r->out.totalentries = talloc_zero(r, uint32_t); - if (r->out.totalentries == NULL) { + r->out.info = r->in.info; + r->out.total_entries = talloc_zero(r, uint32_t); + if (r->out.total_entries == NULL) { talloc_free(r); return False; } @@ -466,18 +468,18 @@ static bool api_wkssvc_NetWkstaTransportEnum(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRWKSTATRANSPORTADD(pipes_struct *p) +static bool api_wkssvc_NetrWkstaTransportAdd(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRWKSTATRANSPORTADD *r; + struct wkssvc_NetrWkstaTransportAdd *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRWKSTATRANSPORTADD]; - r = talloc(NULL, struct WKSSVC_NETRWKSTATRANSPORTADD); + r = talloc(NULL, struct wkssvc_NetrWkstaTransportAdd); if (r == NULL) { return False; } @@ -501,9 +503,11 @@ static bool api_WKSSVC_NETRWKSTATRANSPORTADD(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTATRANSPORTADD, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaTransportAdd, r); - r->out.result = _WKSSVC_NETRWKSTATRANSPORTADD(p, r); + ZERO_STRUCT(r->out); + r->out.parm_err = r->in.parm_err; + r->out.result = _wkssvc_NetrWkstaTransportAdd(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -512,7 +516,7 @@ static bool api_WKSSVC_NETRWKSTATRANSPORTADD(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTATRANSPORTADD, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaTransportAdd, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -537,18 +541,18 @@ static bool api_WKSSVC_NETRWKSTATRANSPORTADD(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRWKSTATRANSPORTDEL(pipes_struct *p) +static bool api_wkssvc_NetrWkstaTransportDel(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRWKSTATRANSPORTDEL *r; + struct wkssvc_NetrWkstaTransportDel *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRWKSTATRANSPORTDEL]; - r = talloc(NULL, struct WKSSVC_NETRWKSTATRANSPORTDEL); + r = talloc(NULL, struct wkssvc_NetrWkstaTransportDel); if (r == NULL) { return False; } @@ -572,9 +576,9 @@ static bool api_WKSSVC_NETRWKSTATRANSPORTDEL(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWKSTATRANSPORTDEL, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaTransportDel, r); - r->out.result = _WKSSVC_NETRWKSTATRANSPORTDEL(p, r); + r->out.result = _wkssvc_NetrWkstaTransportDel(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -583,7 +587,7 @@ static bool api_WKSSVC_NETRWKSTATRANSPORTDEL(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWKSTATRANSPORTDEL, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWkstaTransportDel, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -608,18 +612,18 @@ static bool api_WKSSVC_NETRWKSTATRANSPORTDEL(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRUSEADD(pipes_struct *p) +static bool api_wkssvc_NetrUseAdd(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRUSEADD *r; + struct wkssvc_NetrUseAdd *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRUSEADD]; - r = talloc(NULL, struct WKSSVC_NETRUSEADD); + r = talloc(NULL, struct wkssvc_NetrUseAdd); if (r == NULL) { return False; } @@ -643,9 +647,11 @@ static bool api_WKSSVC_NETRUSEADD(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEADD, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseAdd, r); - r->out.result = _WKSSVC_NETRUSEADD(p, r); + ZERO_STRUCT(r->out); + r->out.parm_err = r->in.parm_err; + r->out.result = _wkssvc_NetrUseAdd(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -654,7 +660,7 @@ static bool api_WKSSVC_NETRUSEADD(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEADD, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseAdd, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -679,18 +685,18 @@ static bool api_WKSSVC_NETRUSEADD(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRUSEGETINFO(pipes_struct *p) +static bool api_wkssvc_NetrUseGetInfo(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRUSEGETINFO *r; + struct wkssvc_NetrUseGetInfo *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRUSEGETINFO]; - r = talloc(NULL, struct WKSSVC_NETRUSEGETINFO); + r = talloc(NULL, struct wkssvc_NetrUseGetInfo); if (r == NULL) { return False; } @@ -714,9 +720,16 @@ static bool api_WKSSVC_NETRUSEGETINFO(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEGETINFO, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseGetInfo, r); - r->out.result = _WKSSVC_NETRUSEGETINFO(p, r); + ZERO_STRUCT(r->out); + r->out.ctr = talloc_zero(r, union wkssvc_NetrUseGetInfoCtr); + if (r->out.ctr == NULL) { + talloc_free(r); + return False; + } + + r->out.result = _wkssvc_NetrUseGetInfo(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -725,7 +738,7 @@ static bool api_WKSSVC_NETRUSEGETINFO(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEGETINFO, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseGetInfo, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -750,18 +763,18 @@ static bool api_WKSSVC_NETRUSEGETINFO(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRUSEDEL(pipes_struct *p) +static bool api_wkssvc_NetrUseDel(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRUSEDEL *r; + struct wkssvc_NetrUseDel *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRUSEDEL]; - r = talloc(NULL, struct WKSSVC_NETRUSEDEL); + r = talloc(NULL, struct wkssvc_NetrUseDel); if (r == NULL) { return False; } @@ -785,9 +798,9 @@ static bool api_WKSSVC_NETRUSEDEL(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEDEL, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseDel, r); - r->out.result = _WKSSVC_NETRUSEDEL(p, r); + r->out.result = _wkssvc_NetrUseDel(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -796,7 +809,7 @@ static bool api_WKSSVC_NETRUSEDEL(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEDEL, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseDel, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -821,18 +834,18 @@ static bool api_WKSSVC_NETRUSEDEL(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRUSEENUM(pipes_struct *p) +static bool api_wkssvc_NetrUseEnum(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRUSEENUM *r; + struct wkssvc_NetrUseEnum *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRUSEENUM]; - r = talloc(NULL, struct WKSSVC_NETRUSEENUM); + r = talloc(NULL, struct wkssvc_NetrUseEnum); if (r == NULL) { return False; } @@ -856,9 +869,18 @@ static bool api_WKSSVC_NETRUSEENUM(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUSEENUM, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUseEnum, r); - r->out.result = _WKSSVC_NETRUSEENUM(p, r); + ZERO_STRUCT(r->out); + r->out.info = r->in.info; + r->out.entries_read = talloc_zero(r, uint32_t); + if (r->out.entries_read == NULL) { + talloc_free(r); + return False; + } + + r->out.resume_handle = r->in.resume_handle; + r->out.result = _wkssvc_NetrUseEnum(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -867,7 +889,7 @@ static bool api_WKSSVC_NETRUSEENUM(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUSEENUM, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUseEnum, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -892,18 +914,18 @@ static bool api_WKSSVC_NETRUSEENUM(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRMESSAGEBUFFERSEND(pipes_struct *p) +static bool api_wkssvc_NetrMessageBufferSend(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRMESSAGEBUFFERSEND *r; + struct wkssvc_NetrMessageBufferSend *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRMESSAGEBUFFERSEND]; - r = talloc(NULL, struct WKSSVC_NETRMESSAGEBUFFERSEND); + r = talloc(NULL, struct wkssvc_NetrMessageBufferSend); if (r == NULL) { return False; } @@ -927,9 +949,9 @@ static bool api_WKSSVC_NETRMESSAGEBUFFERSEND(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRMESSAGEBUFFERSEND, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrMessageBufferSend, r); - r->out.result = _WKSSVC_NETRMESSAGEBUFFERSEND(p, r); + r->out.result = _wkssvc_NetrMessageBufferSend(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -938,7 +960,7 @@ static bool api_WKSSVC_NETRMESSAGEBUFFERSEND(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRMESSAGEBUFFERSEND, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrMessageBufferSend, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -963,18 +985,18 @@ static bool api_WKSSVC_NETRMESSAGEBUFFERSEND(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRWORKSTATIONSTATISTICSGET(pipes_struct *p) +static bool api_wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r; + struct wkssvc_NetrWorkstationStatisticsGet *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET]; - r = talloc(NULL, struct WKSSVC_NETRWORKSTATIONSTATISTICSGET); + r = talloc(NULL, struct wkssvc_NetrWorkstationStatisticsGet); if (r == NULL) { return False; } @@ -998,9 +1020,16 @@ static bool api_WKSSVC_NETRWORKSTATIONSTATISTICSGET(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRWORKSTATIONSTATISTICSGET, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrWorkstationStatisticsGet, r); - r->out.result = _WKSSVC_NETRWORKSTATIONSTATISTICSGET(p, r); + ZERO_STRUCT(r->out); + r->out.info = talloc_zero(r, struct wkssvc_NetrWorkstationStatistics *); + if (r->out.info == NULL) { + talloc_free(r); + return False; + } + + r->out.result = _wkssvc_NetrWorkstationStatisticsGet(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1009,7 +1038,7 @@ static bool api_WKSSVC_NETRWORKSTATIONSTATISTICSGET(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRWORKSTATIONSTATISTICSGET, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrWorkstationStatisticsGet, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1034,18 +1063,18 @@ static bool api_WKSSVC_NETRWORKSTATIONSTATISTICSGET(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRLOGONDOMAINNAMEADD(pipes_struct *p) +static bool api_wkssvc_NetrLogonDomainNameAdd(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRLOGONDOMAINNAMEADD *r; + struct wkssvc_NetrLogonDomainNameAdd *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRLOGONDOMAINNAMEADD]; - r = talloc(NULL, struct WKSSVC_NETRLOGONDOMAINNAMEADD); + r = talloc(NULL, struct wkssvc_NetrLogonDomainNameAdd); if (r == NULL) { return False; } @@ -1069,9 +1098,9 @@ static bool api_WKSSVC_NETRLOGONDOMAINNAMEADD(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEADD, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrLogonDomainNameAdd, r); - r->out.result = _WKSSVC_NETRLOGONDOMAINNAMEADD(p, r); + r->out.result = _wkssvc_NetrLogonDomainNameAdd(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1080,7 +1109,7 @@ static bool api_WKSSVC_NETRLOGONDOMAINNAMEADD(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEADD, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrLogonDomainNameAdd, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1105,18 +1134,18 @@ static bool api_WKSSVC_NETRLOGONDOMAINNAMEADD(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRLOGONDOMAINNAMEDEL(pipes_struct *p) +static bool api_wkssvc_NetrLogonDomainNameDel(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r; + struct wkssvc_NetrLogonDomainNameDel *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL]; - r = talloc(NULL, struct WKSSVC_NETRLOGONDOMAINNAMEDEL); + r = talloc(NULL, struct wkssvc_NetrLogonDomainNameDel); if (r == NULL) { return False; } @@ -1140,9 +1169,9 @@ static bool api_WKSSVC_NETRLOGONDOMAINNAMEDEL(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEDEL, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrLogonDomainNameDel, r); - r->out.result = _WKSSVC_NETRLOGONDOMAINNAMEDEL(p, r); + r->out.result = _wkssvc_NetrLogonDomainNameDel(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1151,7 +1180,7 @@ static bool api_WKSSVC_NETRLOGONDOMAINNAMEDEL(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRLOGONDOMAINNAMEDEL, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrLogonDomainNameDel, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1176,18 +1205,18 @@ static bool api_WKSSVC_NETRLOGONDOMAINNAMEDEL(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRJOINDOMAIN(pipes_struct *p) +static bool api_wkssvc_NetrJoinDomain(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRJOINDOMAIN *r; + struct wkssvc_NetrJoinDomain *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRJOINDOMAIN]; - r = talloc(NULL, struct WKSSVC_NETRJOINDOMAIN); + r = talloc(NULL, struct wkssvc_NetrJoinDomain); if (r == NULL) { return False; } @@ -1211,9 +1240,9 @@ static bool api_WKSSVC_NETRJOINDOMAIN(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRJOINDOMAIN, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrJoinDomain, r); - r->out.result = _WKSSVC_NETRJOINDOMAIN(p, r); + r->out.result = _wkssvc_NetrJoinDomain(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1222,7 +1251,7 @@ static bool api_WKSSVC_NETRJOINDOMAIN(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRJOINDOMAIN, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrJoinDomain, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1247,18 +1276,18 @@ static bool api_WKSSVC_NETRJOINDOMAIN(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRUNJOINDOMAIN(pipes_struct *p) +static bool api_wkssvc_NetrUnjoinDomain(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRUNJOINDOMAIN *r; + struct wkssvc_NetrUnjoinDomain *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRUNJOINDOMAIN]; - r = talloc(NULL, struct WKSSVC_NETRUNJOINDOMAIN); + r = talloc(NULL, struct wkssvc_NetrUnjoinDomain); if (r == NULL) { return False; } @@ -1282,9 +1311,9 @@ static bool api_WKSSVC_NETRUNJOINDOMAIN(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRUNJOINDOMAIN, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrUnjoinDomain, r); - r->out.result = _WKSSVC_NETRUNJOINDOMAIN(p, r); + r->out.result = _wkssvc_NetrUnjoinDomain(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1293,7 +1322,7 @@ static bool api_WKSSVC_NETRUNJOINDOMAIN(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRUNJOINDOMAIN, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrUnjoinDomain, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1318,18 +1347,18 @@ static bool api_WKSSVC_NETRUNJOINDOMAIN(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRRENAMEMACHINEINDOMAIN(pipes_struct *p) +static bool api_wkssvc_NetrRenameMachineInDomain(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r; + struct wkssvc_NetrRenameMachineInDomain *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN]; - r = talloc(NULL, struct WKSSVC_NETRRENAMEMACHINEINDOMAIN); + r = talloc(NULL, struct wkssvc_NetrRenameMachineInDomain); if (r == NULL) { return False; } @@ -1353,9 +1382,9 @@ static bool api_WKSSVC_NETRRENAMEMACHINEINDOMAIN(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRRENAMEMACHINEINDOMAIN, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrRenameMachineInDomain, r); - r->out.result = _WKSSVC_NETRRENAMEMACHINEINDOMAIN(p, r); + r->out.result = _wkssvc_NetrRenameMachineInDomain(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1364,7 +1393,7 @@ static bool api_WKSSVC_NETRRENAMEMACHINEINDOMAIN(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRRENAMEMACHINEINDOMAIN, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrRenameMachineInDomain, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1389,18 +1418,18 @@ static bool api_WKSSVC_NETRRENAMEMACHINEINDOMAIN(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRVALIDATENAME(pipes_struct *p) +static bool api_wkssvc_NetrValidateName(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRVALIDATENAME *r; + struct wkssvc_NetrValidateName *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRVALIDATENAME]; - r = talloc(NULL, struct WKSSVC_NETRVALIDATENAME); + r = talloc(NULL, struct wkssvc_NetrValidateName); if (r == NULL) { return False; } @@ -1424,9 +1453,9 @@ static bool api_WKSSVC_NETRVALIDATENAME(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRVALIDATENAME, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrValidateName, r); - r->out.result = _WKSSVC_NETRVALIDATENAME(p, r); + r->out.result = _wkssvc_NetrValidateName(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1435,7 +1464,7 @@ static bool api_WKSSVC_NETRVALIDATENAME(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRVALIDATENAME, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrValidateName, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1460,18 +1489,18 @@ static bool api_WKSSVC_NETRVALIDATENAME(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRGETJOININFORMATION(pipes_struct *p) +static bool api_wkssvc_NetrGetJoinInformation(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRGETJOININFORMATION *r; + struct wkssvc_NetrGetJoinInformation *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRGETJOININFORMATION]; - r = talloc(NULL, struct WKSSVC_NETRGETJOININFORMATION); + r = talloc(NULL, struct wkssvc_NetrGetJoinInformation); if (r == NULL) { return False; } @@ -1495,9 +1524,17 @@ static bool api_WKSSVC_NETRGETJOININFORMATION(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRGETJOININFORMATION, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinInformation, r); - r->out.result = _WKSSVC_NETRGETJOININFORMATION(p, r); + ZERO_STRUCT(r->out); + r->out.name_buffer = r->in.name_buffer; + r->out.name_type = talloc_zero(r, enum wkssvc_NetJoinStatus); + if (r->out.name_type == NULL) { + talloc_free(r); + return False; + } + + r->out.result = _wkssvc_NetrGetJoinInformation(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1506,7 +1543,7 @@ static bool api_WKSSVC_NETRGETJOININFORMATION(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRGETJOININFORMATION, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrGetJoinInformation, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1531,18 +1568,18 @@ static bool api_WKSSVC_NETRGETJOININFORMATION(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRGETJOINABLEOUS(pipes_struct *p) +static bool api_wkssvc_NetrGetJoinableOus(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRGETJOINABLEOUS *r; + struct wkssvc_NetrGetJoinableOus *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRGETJOINABLEOUS]; - r = talloc(NULL, struct WKSSVC_NETRGETJOINABLEOUS); + r = talloc(NULL, struct wkssvc_NetrGetJoinableOus); if (r == NULL) { return False; } @@ -1566,9 +1603,17 @@ static bool api_WKSSVC_NETRGETJOINABLEOUS(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRGETJOINABLEOUS, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinableOus, r); - r->out.result = _WKSSVC_NETRGETJOINABLEOUS(p, r); + ZERO_STRUCT(r->out); + r->out.num_ous = r->in.num_ous; + r->out.ous = talloc_zero_array(r, const char **, *r->out.num_ous); + if (r->out.ous == NULL) { + talloc_free(r); + return False; + } + + r->out.result = _wkssvc_NetrGetJoinableOus(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1577,7 +1622,7 @@ static bool api_WKSSVC_NETRGETJOINABLEOUS(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRGETJOINABLEOUS, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrGetJoinableOus, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1815,18 +1860,18 @@ static bool api_wkssvc_NetrRenameMachineInDomain2(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRVALIDATENAME2(pipes_struct *p) +static bool api_wkssvc_NetrValidateName2(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRVALIDATENAME2 *r; + struct wkssvc_NetrValidateName2 *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRVALIDATENAME2]; - r = talloc(NULL, struct WKSSVC_NETRVALIDATENAME2); + r = talloc(NULL, struct wkssvc_NetrValidateName2); if (r == NULL) { return False; } @@ -1850,9 +1895,9 @@ static bool api_WKSSVC_NETRVALIDATENAME2(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRVALIDATENAME2, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrValidateName2, r); - r->out.result = _WKSSVC_NETRVALIDATENAME2(p, r); + r->out.result = _wkssvc_NetrValidateName2(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1861,7 +1906,7 @@ static bool api_WKSSVC_NETRVALIDATENAME2(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRVALIDATENAME2, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrValidateName2, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -1886,18 +1931,18 @@ static bool api_WKSSVC_NETRVALIDATENAME2(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRGETJOINABLEOUS2(pipes_struct *p) +static bool api_wkssvc_NetrGetJoinableOus2(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRGETJOINABLEOUS2 *r; + struct wkssvc_NetrGetJoinableOus2 *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRGETJOINABLEOUS2]; - r = talloc(NULL, struct WKSSVC_NETRGETJOINABLEOUS2); + r = talloc(NULL, struct wkssvc_NetrGetJoinableOus2); if (r == NULL) { return False; } @@ -1921,9 +1966,17 @@ static bool api_WKSSVC_NETRGETJOINABLEOUS2(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRGETJOINABLEOUS2, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinableOus2, r); + + ZERO_STRUCT(r->out); + r->out.num_ous = r->in.num_ous; + r->out.ous = talloc_zero_array(r, const char **, *r->out.num_ous); + if (r->out.ous == NULL) { + talloc_free(r); + return False; + } - r->out.result = _WKSSVC_NETRGETJOINABLEOUS2(p, r); + r->out.result = _wkssvc_NetrGetJoinableOus2(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -1932,7 +1985,7 @@ static bool api_WKSSVC_NETRGETJOINABLEOUS2(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRGETJOINABLEOUS2, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrGetJoinableOus2, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -2099,18 +2152,18 @@ static bool api_wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(pipes_struct *p) +static bool api_wkssvc_NetrSetPrimaryComputername(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r; + struct wkssvc_NetrSetPrimaryComputername *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME]; - r = talloc(NULL, struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME); + r = talloc(NULL, struct wkssvc_NetrSetPrimaryComputername); if (r == NULL) { return False; } @@ -2134,9 +2187,9 @@ static bool api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRSETPRIMARYCOMPUTERNAME, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrSetPrimaryComputername, r); - r->out.result = _WKSSVC_NETRSETPRIMARYCOMPUTERNAME(p, r); + r->out.result = _wkssvc_NetrSetPrimaryComputername(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -2145,7 +2198,7 @@ static bool api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRSETPRIMARYCOMPUTERNAME, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrSetPrimaryComputername, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -2170,18 +2223,18 @@ static bool api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(pipes_struct *p) return True; } -static bool api_WKSSVC_NETRENUMERATECOMPUTERNAMES(pipes_struct *p) +static bool api_wkssvc_NetrEnumerateComputerNames(pipes_struct *p) { const struct ndr_interface_call *call; struct ndr_pull *pull; struct ndr_push *push; enum ndr_err_code ndr_err; DATA_BLOB blob; - struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r; + struct wkssvc_NetrEnumerateComputerNames *r; call = &ndr_table_wkssvc.calls[NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES]; - r = talloc(NULL, struct WKSSVC_NETRENUMERATECOMPUTERNAMES); + r = talloc(NULL, struct wkssvc_NetrEnumerateComputerNames); if (r == NULL) { return False; } @@ -2205,9 +2258,16 @@ static bool api_WKSSVC_NETRENUMERATECOMPUTERNAMES(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_IN_DEBUG(WKSSVC_NETRENUMERATECOMPUTERNAMES, r); + NDR_PRINT_IN_DEBUG(wkssvc_NetrEnumerateComputerNames, r); + + ZERO_STRUCT(r->out); + r->out.ctr = talloc_zero(r, struct wkssvc_ComputerNamesCtr *); + if (r->out.ctr == NULL) { + talloc_free(r); + return False; + } - r->out.result = _WKSSVC_NETRENUMERATECOMPUTERNAMES(p, r); + r->out.result = _wkssvc_NetrEnumerateComputerNames(p, r); if (p->rng_fault_state) { talloc_free(r); @@ -2216,7 +2276,7 @@ static bool api_WKSSVC_NETRENUMERATECOMPUTERNAMES(pipes_struct *p) } if (DEBUGLEVEL >= 10) - NDR_PRINT_OUT_DEBUG(WKSSVC_NETRENUMERATECOMPUTERNAMES, r); + NDR_PRINT_OUT_DEBUG(wkssvc_NetrEnumerateComputerNames, r); push = ndr_push_init_ctx(r); if (push == NULL) { @@ -2248,34 +2308,34 @@ static struct api_struct api_wkssvc_cmds[] = {"WKSSVC_NETWKSTAGETINFO", NDR_WKSSVC_NETWKSTAGETINFO, api_wkssvc_NetWkstaGetInfo}, {"WKSSVC_NETWKSTASETINFO", NDR_WKSSVC_NETWKSTASETINFO, api_wkssvc_NetWkstaSetInfo}, {"WKSSVC_NETWKSTAENUMUSERS", NDR_WKSSVC_NETWKSTAENUMUSERS, api_wkssvc_NetWkstaEnumUsers}, - {"WKSSVC_NETRWKSTAUSERGETINFO", NDR_WKSSVC_NETRWKSTAUSERGETINFO, api_WKSSVC_NETRWKSTAUSERGETINFO}, - {"WKSSVC_NETRWKSTAUSERSETINFO", NDR_WKSSVC_NETRWKSTAUSERSETINFO, api_WKSSVC_NETRWKSTAUSERSETINFO}, + {"WKSSVC_NETRWKSTAUSERGETINFO", NDR_WKSSVC_NETRWKSTAUSERGETINFO, api_wkssvc_NetrWkstaUserGetInfo}, + {"WKSSVC_NETRWKSTAUSERSETINFO", NDR_WKSSVC_NETRWKSTAUSERSETINFO, api_wkssvc_NetrWkstaUserSetInfo}, {"WKSSVC_NETWKSTATRANSPORTENUM", NDR_WKSSVC_NETWKSTATRANSPORTENUM, api_wkssvc_NetWkstaTransportEnum}, - {"WKSSVC_NETRWKSTATRANSPORTADD", NDR_WKSSVC_NETRWKSTATRANSPORTADD, api_WKSSVC_NETRWKSTATRANSPORTADD}, - {"WKSSVC_NETRWKSTATRANSPORTDEL", NDR_WKSSVC_NETRWKSTATRANSPORTDEL, api_WKSSVC_NETRWKSTATRANSPORTDEL}, - {"WKSSVC_NETRUSEADD", NDR_WKSSVC_NETRUSEADD, api_WKSSVC_NETRUSEADD}, - {"WKSSVC_NETRUSEGETINFO", NDR_WKSSVC_NETRUSEGETINFO, api_WKSSVC_NETRUSEGETINFO}, - {"WKSSVC_NETRUSEDEL", NDR_WKSSVC_NETRUSEDEL, api_WKSSVC_NETRUSEDEL}, - {"WKSSVC_NETRUSEENUM", NDR_WKSSVC_NETRUSEENUM, api_WKSSVC_NETRUSEENUM}, - {"WKSSVC_NETRMESSAGEBUFFERSEND", NDR_WKSSVC_NETRMESSAGEBUFFERSEND, api_WKSSVC_NETRMESSAGEBUFFERSEND}, - {"WKSSVC_NETRWORKSTATIONSTATISTICSGET", NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET, api_WKSSVC_NETRWORKSTATIONSTATISTICSGET}, - {"WKSSVC_NETRLOGONDOMAINNAMEADD", NDR_WKSSVC_NETRLOGONDOMAINNAMEADD, api_WKSSVC_NETRLOGONDOMAINNAMEADD}, - {"WKSSVC_NETRLOGONDOMAINNAMEDEL", NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL, api_WKSSVC_NETRLOGONDOMAINNAMEDEL}, - {"WKSSVC_NETRJOINDOMAIN", NDR_WKSSVC_NETRJOINDOMAIN, api_WKSSVC_NETRJOINDOMAIN}, - {"WKSSVC_NETRUNJOINDOMAIN", NDR_WKSSVC_NETRUNJOINDOMAIN, api_WKSSVC_NETRUNJOINDOMAIN}, - {"WKSSVC_NETRRENAMEMACHINEINDOMAIN", NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN, api_WKSSVC_NETRRENAMEMACHINEINDOMAIN}, - {"WKSSVC_NETRVALIDATENAME", NDR_WKSSVC_NETRVALIDATENAME, api_WKSSVC_NETRVALIDATENAME}, - {"WKSSVC_NETRGETJOININFORMATION", NDR_WKSSVC_NETRGETJOININFORMATION, api_WKSSVC_NETRGETJOININFORMATION}, - {"WKSSVC_NETRGETJOINABLEOUS", NDR_WKSSVC_NETRGETJOINABLEOUS, api_WKSSVC_NETRGETJOINABLEOUS}, + {"WKSSVC_NETRWKSTATRANSPORTADD", NDR_WKSSVC_NETRWKSTATRANSPORTADD, api_wkssvc_NetrWkstaTransportAdd}, + {"WKSSVC_NETRWKSTATRANSPORTDEL", NDR_WKSSVC_NETRWKSTATRANSPORTDEL, api_wkssvc_NetrWkstaTransportDel}, + {"WKSSVC_NETRUSEADD", NDR_WKSSVC_NETRUSEADD, api_wkssvc_NetrUseAdd}, + {"WKSSVC_NETRUSEGETINFO", NDR_WKSSVC_NETRUSEGETINFO, api_wkssvc_NetrUseGetInfo}, + {"WKSSVC_NETRUSEDEL", NDR_WKSSVC_NETRUSEDEL, api_wkssvc_NetrUseDel}, + {"WKSSVC_NETRUSEENUM", NDR_WKSSVC_NETRUSEENUM, api_wkssvc_NetrUseEnum}, + {"WKSSVC_NETRMESSAGEBUFFERSEND", NDR_WKSSVC_NETRMESSAGEBUFFERSEND, api_wkssvc_NetrMessageBufferSend}, + {"WKSSVC_NETRWORKSTATIONSTATISTICSGET", NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET, api_wkssvc_NetrWorkstationStatisticsGet}, + {"WKSSVC_NETRLOGONDOMAINNAMEADD", NDR_WKSSVC_NETRLOGONDOMAINNAMEADD, api_wkssvc_NetrLogonDomainNameAdd}, + {"WKSSVC_NETRLOGONDOMAINNAMEDEL", NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL, api_wkssvc_NetrLogonDomainNameDel}, + {"WKSSVC_NETRJOINDOMAIN", NDR_WKSSVC_NETRJOINDOMAIN, api_wkssvc_NetrJoinDomain}, + {"WKSSVC_NETRUNJOINDOMAIN", NDR_WKSSVC_NETRUNJOINDOMAIN, api_wkssvc_NetrUnjoinDomain}, + {"WKSSVC_NETRRENAMEMACHINEINDOMAIN", NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN, api_wkssvc_NetrRenameMachineInDomain}, + {"WKSSVC_NETRVALIDATENAME", NDR_WKSSVC_NETRVALIDATENAME, api_wkssvc_NetrValidateName}, + {"WKSSVC_NETRGETJOININFORMATION", NDR_WKSSVC_NETRGETJOININFORMATION, api_wkssvc_NetrGetJoinInformation}, + {"WKSSVC_NETRGETJOINABLEOUS", NDR_WKSSVC_NETRGETJOINABLEOUS, api_wkssvc_NetrGetJoinableOus}, {"WKSSVC_NETRJOINDOMAIN2", NDR_WKSSVC_NETRJOINDOMAIN2, api_wkssvc_NetrJoinDomain2}, {"WKSSVC_NETRUNJOINDOMAIN2", NDR_WKSSVC_NETRUNJOINDOMAIN2, api_wkssvc_NetrUnjoinDomain2}, {"WKSSVC_NETRRENAMEMACHINEINDOMAIN2", NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN2, api_wkssvc_NetrRenameMachineInDomain2}, - {"WKSSVC_NETRVALIDATENAME2", NDR_WKSSVC_NETRVALIDATENAME2, api_WKSSVC_NETRVALIDATENAME2}, - {"WKSSVC_NETRGETJOINABLEOUS2", NDR_WKSSVC_NETRGETJOINABLEOUS2, api_WKSSVC_NETRGETJOINABLEOUS2}, + {"WKSSVC_NETRVALIDATENAME2", NDR_WKSSVC_NETRVALIDATENAME2, api_wkssvc_NetrValidateName2}, + {"WKSSVC_NETRGETJOINABLEOUS2", NDR_WKSSVC_NETRGETJOINABLEOUS2, api_wkssvc_NetrGetJoinableOus2}, {"WKSSVC_NETRADDALTERNATECOMPUTERNAME", NDR_WKSSVC_NETRADDALTERNATECOMPUTERNAME, api_wkssvc_NetrAddAlternateComputerName}, {"WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME", NDR_WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME, api_wkssvc_NetrRemoveAlternateComputerName}, - {"WKSSVC_NETRSETPRIMARYCOMPUTERNAME", NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME}, - {"WKSSVC_NETRENUMERATECOMPUTERNAMES", NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES, api_WKSSVC_NETRENUMERATECOMPUTERNAMES}, + {"WKSSVC_NETRSETPRIMARYCOMPUTERNAME", NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, api_wkssvc_NetrSetPrimaryComputername}, + {"WKSSVC_NETRENUMERATECOMPUTERNAMES", NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES, api_wkssvc_NetrEnumerateComputerNames}, }; void wkssvc_get_pipe_fns(struct api_struct **fns, int *n_fns) diff --git a/source3/librpc/gen_ndr/srv_wkssvc.h b/source3/librpc/gen_ndr/srv_wkssvc.h index 4633152eac..f1d0b94c26 100644 --- a/source3/librpc/gen_ndr/srv_wkssvc.h +++ b/source3/librpc/gen_ndr/srv_wkssvc.h @@ -4,34 +4,34 @@ WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r); WERROR _wkssvc_NetWkstaSetInfo(pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r); WERROR _wkssvc_NetWkstaEnumUsers(pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r); -WERROR _WKSSVC_NETRWKSTAUSERGETINFO(pipes_struct *p, struct WKSSVC_NETRWKSTAUSERGETINFO *r); -WERROR _WKSSVC_NETRWKSTAUSERSETINFO(pipes_struct *p, struct WKSSVC_NETRWKSTAUSERSETINFO *r); +WERROR _wkssvc_NetrWkstaUserGetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserGetInfo *r); +WERROR _wkssvc_NetrWkstaUserSetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserSetInfo *r); WERROR _wkssvc_NetWkstaTransportEnum(pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r); -WERROR _WKSSVC_NETRWKSTATRANSPORTADD(pipes_struct *p, struct WKSSVC_NETRWKSTATRANSPORTADD *r); -WERROR _WKSSVC_NETRWKSTATRANSPORTDEL(pipes_struct *p, struct WKSSVC_NETRWKSTATRANSPORTDEL *r); -WERROR _WKSSVC_NETRUSEADD(pipes_struct *p, struct WKSSVC_NETRUSEADD *r); -WERROR _WKSSVC_NETRUSEGETINFO(pipes_struct *p, struct WKSSVC_NETRUSEGETINFO *r); -WERROR _WKSSVC_NETRUSEDEL(pipes_struct *p, struct WKSSVC_NETRUSEDEL *r); -WERROR _WKSSVC_NETRUSEENUM(pipes_struct *p, struct WKSSVC_NETRUSEENUM *r); -WERROR _WKSSVC_NETRMESSAGEBUFFERSEND(pipes_struct *p, struct WKSSVC_NETRMESSAGEBUFFERSEND *r); -WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET(pipes_struct *p, struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r); -WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD(pipes_struct *p, struct WKSSVC_NETRLOGONDOMAINNAMEADD *r); -WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL(pipes_struct *p, struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r); -WERROR _WKSSVC_NETRJOINDOMAIN(pipes_struct *p, struct WKSSVC_NETRJOINDOMAIN *r); -WERROR _WKSSVC_NETRUNJOINDOMAIN(pipes_struct *p, struct WKSSVC_NETRUNJOINDOMAIN *r); -WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN(pipes_struct *p, struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r); -WERROR _WKSSVC_NETRVALIDATENAME(pipes_struct *p, struct WKSSVC_NETRVALIDATENAME *r); -WERROR _WKSSVC_NETRGETJOININFORMATION(pipes_struct *p, struct WKSSVC_NETRGETJOININFORMATION *r); -WERROR _WKSSVC_NETRGETJOINABLEOUS(pipes_struct *p, struct WKSSVC_NETRGETJOINABLEOUS *r); +WERROR _wkssvc_NetrWkstaTransportAdd(pipes_struct *p, struct wkssvc_NetrWkstaTransportAdd *r); +WERROR _wkssvc_NetrWkstaTransportDel(pipes_struct *p, struct wkssvc_NetrWkstaTransportDel *r); +WERROR _wkssvc_NetrUseAdd(pipes_struct *p, struct wkssvc_NetrUseAdd *r); +WERROR _wkssvc_NetrUseGetInfo(pipes_struct *p, struct wkssvc_NetrUseGetInfo *r); +WERROR _wkssvc_NetrUseDel(pipes_struct *p, struct wkssvc_NetrUseDel *r); +WERROR _wkssvc_NetrUseEnum(pipes_struct *p, struct wkssvc_NetrUseEnum *r); +WERROR _wkssvc_NetrMessageBufferSend(pipes_struct *p, struct wkssvc_NetrMessageBufferSend *r); +WERROR _wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p, struct wkssvc_NetrWorkstationStatisticsGet *r); +WERROR _wkssvc_NetrLogonDomainNameAdd(pipes_struct *p, struct wkssvc_NetrLogonDomainNameAdd *r); +WERROR _wkssvc_NetrLogonDomainNameDel(pipes_struct *p, struct wkssvc_NetrLogonDomainNameDel *r); +WERROR _wkssvc_NetrJoinDomain(pipes_struct *p, struct wkssvc_NetrJoinDomain *r); +WERROR _wkssvc_NetrUnjoinDomain(pipes_struct *p, struct wkssvc_NetrUnjoinDomain *r); +WERROR _wkssvc_NetrRenameMachineInDomain(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain *r); +WERROR _wkssvc_NetrValidateName(pipes_struct *p, struct wkssvc_NetrValidateName *r); +WERROR _wkssvc_NetrGetJoinInformation(pipes_struct *p, struct wkssvc_NetrGetJoinInformation *r); +WERROR _wkssvc_NetrGetJoinableOus(pipes_struct *p, struct wkssvc_NetrGetJoinableOus *r); WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p, struct wkssvc_NetrJoinDomain2 *r); WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p, struct wkssvc_NetrUnjoinDomain2 *r); WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain2 *r); -WERROR _WKSSVC_NETRVALIDATENAME2(pipes_struct *p, struct WKSSVC_NETRVALIDATENAME2 *r); -WERROR _WKSSVC_NETRGETJOINABLEOUS2(pipes_struct *p, struct WKSSVC_NETRGETJOINABLEOUS2 *r); +WERROR _wkssvc_NetrValidateName2(pipes_struct *p, struct wkssvc_NetrValidateName2 *r); +WERROR _wkssvc_NetrGetJoinableOus2(pipes_struct *p, struct wkssvc_NetrGetJoinableOus2 *r); WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r); WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_NetrRemoveAlternateComputerName *r); -WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME(pipes_struct *p, struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r); -WERROR _WKSSVC_NETRENUMERATECOMPUTERNAMES(pipes_struct *p, struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r); +WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSetPrimaryComputername *r); +WERROR _wkssvc_NetrEnumerateComputerNames(pipes_struct *p, struct wkssvc_NetrEnumerateComputerNames *r); void wkssvc_get_pipe_fns(struct api_struct **fns, int *n_fns); NTSTATUS rpc_wkssvc_init(void); #endif /* __SRV_WKSSVC__ */ diff --git a/source3/librpc/gen_ndr/wkssvc.h b/source3/librpc/gen_ndr/wkssvc.h index e1b8cb31a2..43f9ae6d63 100644 --- a/source3/librpc/gen_ndr/wkssvc.h +++ b/source3/librpc/gen_ndr/wkssvc.h @@ -3,11 +3,12 @@ #include #include "librpc/gen_ndr/srvsvc.h" +#include "librpc/gen_ndr/lsa.h" #ifndef _HEADER_wkssvc #define _HEADER_wkssvc struct wkssvc_NetWkstaInfo100 { - uint16_t platform_id; + enum srvsvc_PlatformId platform_id; const char *server_name;/* [unique,charset(UTF16)] */ const char *domain_name;/* [unique,charset(UTF16)] */ uint32_t version_major; @@ -15,7 +16,7 @@ struct wkssvc_NetWkstaInfo100 { }; struct wkssvc_NetWkstaInfo101 { - uint16_t platform_id; + enum srvsvc_PlatformId platform_id; const char *server_name;/* [unique,charset(UTF16)] */ const char *domain_name;/* [unique,charset(UTF16)] */ uint32_t version_major; @@ -24,7 +25,7 @@ struct wkssvc_NetWkstaInfo101 { }; struct wkssvc_NetWkstaInfo102 { - uint16_t platform_id; + enum srvsvc_PlatformId platform_id; const char *server_name;/* [unique,charset(UTF16)] */ const char *domain_name;/* [unique,charset(UTF16)] */ uint32_t version_major; @@ -99,10 +100,106 @@ struct wkssvc_NetWkstaInfo1027 { uint32_t errorlog_sz; }; +struct wkssvc_NetWkstaInfo1028 { + uint32_t print_buf_time; +}; + +struct wkssvc_NetWkstaInfo1032 { + uint32_t wrk_heuristics; +}; + struct wkssvc_NetWkstaInfo1033 { uint32_t max_threads; }; +struct wkssvc_NetWkstaInfo1041 { + uint32_t lock_quota; +}; + +struct wkssvc_NetWkstaInfo1042 { + uint32_t lock_increment; +}; + +struct wkssvc_NetWkstaInfo1043 { + uint32_t lock_maximum; +}; + +struct wkssvc_NetWkstaInfo1044 { + uint32_t pipe_increment; +}; + +struct wkssvc_NetWkstaInfo1045 { + uint32_t pipe_maximum; +}; + +struct wkssvc_NetWkstaInfo1046 { + uint32_t dormant_file_limit; +}; + +struct wkssvc_NetWkstaInfo1047 { + uint32_t cache_file_timeout; +}; + +struct wkssvc_NetWkstaInfo1048 { + uint32_t use_opportunistic_locking; +}; + +struct wkssvc_NetWkstaInfo1049 { + uint32_t use_unlock_behind; +}; + +struct wkssvc_NetWkstaInfo1050 { + uint32_t use_close_behind; +}; + +struct wkssvc_NetWkstaInfo1051 { + uint32_t buf_named_pipes; +}; + +struct wkssvc_NetWkstaInfo1052 { + uint32_t use_lock_read_unlock; +}; + +struct wkssvc_NetWkstaInfo1053 { + uint32_t utilize_nt_caching; +}; + +struct wkssvc_NetWkstaInfo1054 { + uint32_t use_raw_read; +}; + +struct wkssvc_NetWkstaInfo1055 { + uint32_t use_raw_write; +}; + +struct wkssvc_NetWkstaInfo1056 { + uint32_t use_write_raw_data; +}; + +struct wkssvc_NetWkstaInfo1057 { + uint32_t use_encryption; +}; + +struct wkssvc_NetWkstaInfo1058 { + uint32_t buf_files_deny_write; +}; + +struct wkssvc_NetWkstaInfo1059 { + uint32_t buf_read_only_files; +}; + +struct wkssvc_NetWkstaInfo1060 { + uint32_t force_core_create_mode; +}; + +struct wkssvc_NetWkstaInfo1061 { + uint32_t use_512_byte_max_transfer; +}; + +struct wkssvc_NetWkstaInfo1062 { + uint32_t read_ahead_throughput; +}; + union wkssvc_NetWkstaInfo { struct wkssvc_NetWkstaInfo100 *info100;/* [unique,case(100)] */ struct wkssvc_NetWkstaInfo101 *info101;/* [unique,case(101)] */ @@ -115,33 +212,72 @@ union wkssvc_NetWkstaInfo { struct wkssvc_NetWkstaInfo1018 *info1018;/* [unique,case(1018)] */ struct wkssvc_NetWkstaInfo1023 *info1023;/* [unique,case(1023)] */ struct wkssvc_NetWkstaInfo1027 *info1027;/* [unique,case(1027)] */ + struct wkssvc_NetWkstaInfo1028 *info1028;/* [unique,case(1028)] */ + struct wkssvc_NetWkstaInfo1032 *info1032;/* [unique,case(1032)] */ struct wkssvc_NetWkstaInfo1033 *info1033;/* [unique,case(1033)] */ + struct wkssvc_NetWkstaInfo1041 *info1041;/* [unique,case(1041)] */ + struct wkssvc_NetWkstaInfo1042 *info1042;/* [unique,case(1042)] */ + struct wkssvc_NetWkstaInfo1043 *info1043;/* [unique,case(1043)] */ + struct wkssvc_NetWkstaInfo1044 *info1044;/* [unique,case(1044)] */ + struct wkssvc_NetWkstaInfo1045 *info1045;/* [unique,case(1045)] */ + struct wkssvc_NetWkstaInfo1046 *info1046;/* [unique,case(1046)] */ + struct wkssvc_NetWkstaInfo1047 *info1047;/* [unique,case(1047)] */ + struct wkssvc_NetWkstaInfo1048 *info1048;/* [unique,case(1048)] */ + struct wkssvc_NetWkstaInfo1049 *info1049;/* [unique,case(1049)] */ + struct wkssvc_NetWkstaInfo1050 *info1050;/* [unique,case(1050)] */ + struct wkssvc_NetWkstaInfo1051 *info1051;/* [unique,case(1051)] */ + struct wkssvc_NetWkstaInfo1052 *info1052;/* [unique,case(1052)] */ + struct wkssvc_NetWkstaInfo1053 *info1053;/* [unique,case(1053)] */ + struct wkssvc_NetWkstaInfo1054 *info1054;/* [unique,case(1054)] */ + struct wkssvc_NetWkstaInfo1055 *info1055;/* [unique,case(1055)] */ + struct wkssvc_NetWkstaInfo1056 *info1056;/* [unique,case(1056)] */ + struct wkssvc_NetWkstaInfo1057 *info1057;/* [unique,case(1057)] */ + struct wkssvc_NetWkstaInfo1058 *info1058;/* [unique,case(1058)] */ + struct wkssvc_NetWkstaInfo1059 *info1059;/* [unique,case(1059)] */ + struct wkssvc_NetWkstaInfo1060 *info1060;/* [unique,case(1060)] */ + struct wkssvc_NetWkstaInfo1061 *info1061;/* [unique,case(1061)] */ + struct wkssvc_NetWkstaInfo1062 *info1062;/* [unique,case(1062)] */ +}; + +struct wkssvc_NetrWkstaUserInfo0 { + const char *user_name;/* [unique,charset(UTF16)] */ }; -struct USER_INFO_0 { - const char *user;/* [unique,charset(UTF16)] */ -}; - -struct USER_INFO_0_CONTAINER { +struct wkssvc_NetWkstaEnumUsersCtr0 { uint32_t entries_read; - struct USER_INFO_0 *user0;/* [unique,size_is(entries_read)] */ + struct wkssvc_NetrWkstaUserInfo0 *user0;/* [unique,size_is(entries_read)] */ }; -struct USER_INFO_1 { +struct wkssvc_NetrWkstaUserInfo1 { const char *user_name;/* [unique,charset(UTF16)] */ const char *logon_domain;/* [unique,charset(UTF16)] */ const char *other_domains;/* [unique,charset(UTF16)] */ const char *logon_server;/* [unique,charset(UTF16)] */ }; -struct USER_INFO_1_CONTAINER { +struct wkssvc_NetWkstaEnumUsersCtr1 { uint32_t entries_read; - struct USER_INFO_1 *user1;/* [unique,size_is(entries_read)] */ + struct wkssvc_NetrWkstaUserInfo1 *user1;/* [unique,size_is(entries_read)] */ +}; + +union wkssvc_NetWkstaEnumUsersCtr { + struct wkssvc_NetWkstaEnumUsersCtr0 *user0;/* [unique,case(0)] */ + struct wkssvc_NetWkstaEnumUsersCtr1 *user1;/* [unique,case] */ +}/* [switch_type(uint32)] */; + +struct wkssvc_NetWkstaEnumUsersInfo { + uint32_t level; + union wkssvc_NetWkstaEnumUsersCtr ctr;/* [switch_is(level)] */ +}; + +struct wkssvc_NetrWkstaUserInfo1101 { + const char *other_domains;/* [unique,charset(UTF16)] */ }; -union WKS_USER_ENUM_UNION { - struct USER_INFO_0_CONTAINER *user0;/* [unique,case(0)] */ - struct USER_INFO_1_CONTAINER *user1;/* [unique,case] */ +union wkssvc_NetrWkstaUserInfo { + struct wkssvc_NetrWkstaUserInfo0 *info0;/* [unique,case(0)] */ + struct wkssvc_NetrWkstaUserInfo1 *info1;/* [unique,case] */ + struct wkssvc_NetrWkstaUserInfo1101 *info1101;/* [unique,case(1101)] */ }/* [switch_type(uint32)] */; struct wkssvc_NetWkstaTransportInfo0 { @@ -161,11 +297,167 @@ union wkssvc_NetWkstaTransportCtr { struct wkssvc_NetWkstaTransportCtr0 *ctr0;/* [unique,case(0)] */ }; +struct wkssvc_NetWkstaTransportInfo { + uint32_t level; + union wkssvc_NetWkstaTransportCtr ctr;/* [switch_is(level)] */ +}; + +struct wkssvc_NetrUseInfo3 { + const char *unknown1;/* [unique,charset(UTF16)] */ + const char *unknown2;/* [unique,charset(UTF16)] */ +}; + +struct wkssvc_NetrUseInfo2 { + const char *local;/* [unique,charset(UTF16)] */ + const char *remote;/* [unique,charset(UTF16)] */ + const char *password;/* [unique,charset(UTF16)] */ + uint32_t status; + uint32_t asg_type; + uint32_t ref_count; + uint32_t use_count; + const char *user_name;/* [unique,charset(UTF16)] */ + const char *domain_name;/* [unique,charset(UTF16)] */ +}; + +struct wkssvc_NetrUseInfo1 { + const char *local;/* [unique,charset(UTF16)] */ + const char *remote;/* [unique,charset(UTF16)] */ + const char *password;/* [unique,charset(UTF16)] */ + uint32_t status; + uint32_t asg_type; + uint32_t ref_count; + uint32_t use_count; +}; + +struct wkssvc_NetrUseInfo0 { + const char *local;/* [unique,charset(UTF16)] */ + const char *remote;/* [unique,charset(UTF16)] */ +}; + +union wkssvc_NetrUseGetInfoCtr { + struct wkssvc_NetrUseInfo0 *info0;/* [unique,case(0)] */ + struct wkssvc_NetrUseInfo1 *info1;/* [unique,case] */ + struct wkssvc_NetrUseInfo2 *info2;/* [unique,case(2)] */ + struct wkssvc_NetrUseInfo3 *info3;/* [unique,case(3)] */ +}/* [switch_type(uint32)] */; + +struct wkssvc_NetrUseEnumCtr2 { + uint32_t count; + struct wkssvc_NetrUseInfo2 *array;/* [unique,size_is(count)] */ +}; + +struct wkssvc_NetrUseEnumCtr1 { + uint32_t count; + struct wkssvc_NetrUseInfo1 *array;/* [unique,size_is(count)] */ +}; + +struct wkssvc_NetrUseEnumCtr0 { + uint32_t count; + struct wkssvc_NetrUseInfo0 *array;/* [unique,size_is(count)] */ +}; + +union wkssvc_NetrUseEnumCtr { + struct wkssvc_NetrUseEnumCtr0 *ctr0;/* [unique,case(0)] */ + struct wkssvc_NetrUseEnumCtr1 *ctr1;/* [unique,case] */ + struct wkssvc_NetrUseEnumCtr2 *ctr2;/* [unique,case(2)] */ +}/* [switch_type(uint32)] */; + +struct wkssvc_NetrUseEnumInfo { + uint32_t level; + union wkssvc_NetrUseEnumCtr ctr;/* [switch_is(level)] */ +}; + +struct wkssvc_NetrWorkstationStatistics { + uint64_t unknown1; + uint64_t unknown2; + uint64_t unknown3; + uint64_t unknown4; + uint64_t unknown5; + uint64_t unknown6; + uint64_t unknown7; + uint64_t unknown8; + uint64_t unknown9; + uint64_t unknown10; + uint64_t unknown11; + uint64_t unknown12; + uint64_t unknown13; + uint32_t unknown14; + uint32_t unknown15; + uint32_t unknown16; + uint32_t unknown17; + uint32_t unknown18; + uint32_t unknown19; + uint32_t unknown20; + uint32_t unknown21; + uint32_t unknown22; + uint32_t unknown23; + uint32_t unknown24; + uint32_t unknown25; + uint32_t unknown26; + uint32_t unknown27; + uint32_t unknown28; + uint32_t unknown29; + uint32_t unknown30; + uint32_t unknown31; + uint32_t unknown32; + uint32_t unknown33; + uint32_t unknown34; + uint32_t unknown35; + uint32_t unknown36; + uint32_t unknown37; + uint32_t unknown38; + uint32_t unknown39; + uint32_t unknown40; +}; + +/* bitmap wkssvc_renameflags */ +#define WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE ( 0x00000002 ) + +; + +#ifndef USE_UINT_ENUMS +enum wkssvc_NetValidateNameType { + NetSetupUnknown=0, + NetSetupMachine=1, + NetSetupWorkgroup=2, + NetSetupDomain=3, + NetSetupNonExistentDomain=4, + NetSetupDnsMachine=5 +} +#else +enum wkssvc_NetValidateNameType { __donnot_use_enum_wkssvc_NetValidateNameType=0x7FFFFFFF} +#define NetSetupUnknown ( 0 ) +#define NetSetupMachine ( 1 ) +#define NetSetupWorkgroup ( 2 ) +#define NetSetupDomain ( 3 ) +#define NetSetupNonExistentDomain ( 4 ) +#define NetSetupDnsMachine ( 5 ) +#endif +; + +#ifndef USE_UINT_ENUMS +enum wkssvc_NetJoinStatus { + NetSetupUnknownStatus=0, + NetSetupUnjoined=1, + NetSetupWorkgroupName=2, + NetSetupDomainName=3 +} +#else +enum wkssvc_NetJoinStatus { __donnot_use_enum_wkssvc_NetJoinStatus=0x7FFFFFFF} +#define NetSetupUnknownStatus ( 0 ) +#define NetSetupUnjoined ( 1 ) +#define NetSetupWorkgroupName ( 2 ) +#define NetSetupDomainName ( 3 ) +#endif +; + struct wkssvc_PasswordBuffer { uint8_t data[524]; -}; +}/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */; /* bitmap wkssvc_joinflags */ +#define WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME ( 0x00000400 ) +#define WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT ( 0x00000200 ) #define WKSSVC_JOIN_FLAGS_DEFER_SPN ( 0x00000100 ) #define WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED ( 0x00000080 ) #define WKSSVC_JOIN_FLAGS_JOIN_UNSECURE ( 0x00000040 ) @@ -177,11 +469,27 @@ struct wkssvc_PasswordBuffer { ; -/* bitmap wkssvc_renameflags */ -#define WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE ( 0x00000002 ) - +#ifndef USE_UINT_ENUMS +enum wkssvc_ComputerNameType { + NetPrimaryComputerName=0, + NetAlternateComputerNames=1, + NetAllComputerNames=2, + NetComputerNameTypeMax=3 +} +#else +enum wkssvc_ComputerNameType { __donnot_use_enum_wkssvc_ComputerNameType=0x7FFFFFFF} +#define NetPrimaryComputerName ( 0 ) +#define NetAlternateComputerNames ( 1 ) +#define NetAllComputerNames ( 2 ) +#define NetComputerNameTypeMax ( 3 ) +#endif ; +struct wkssvc_ComputerNamesCtr { + uint32_t count; + struct lsa_String *computer_name;/* [unique,size_is(count)] */ +}; + struct wkssvc_NetWkstaGetInfo { struct { @@ -216,33 +524,45 @@ struct wkssvc_NetWkstaSetInfo { struct wkssvc_NetWkstaEnumUsers { struct { const char *server_name;/* [unique,charset(UTF16)] */ - uint32_t level; uint32_t prefmaxlen; - union WKS_USER_ENUM_UNION *users;/* [ref] */ - uint32_t *resumehandle;/* [ref] */ + struct wkssvc_NetWkstaEnumUsersInfo *info;/* [ref] */ + uint32_t *resume_handle;/* [unique] */ } in; struct { - uint32_t *entriesread;/* [unique] */ - uint32_t *totalentries;/* [unique] */ - union WKS_USER_ENUM_UNION *users;/* [ref] */ - uint32_t *resumehandle;/* [ref] */ + uint32_t *entries_read;/* [ref] */ + struct wkssvc_NetWkstaEnumUsersInfo *info;/* [ref] */ + uint32_t *resume_handle;/* [unique] */ WERROR result; } out; }; -struct WKSSVC_NETRWKSTAUSERGETINFO { +struct wkssvc_NetrWkstaUserGetInfo { struct { + const char *unknown;/* [unique,charset(UTF16)] */ + uint32_t level; + } in; + + struct { + union wkssvc_NetrWkstaUserInfo *info;/* [ref,switch_is(level)] */ WERROR result; } out; }; -struct WKSSVC_NETRWKSTAUSERSETINFO { +struct wkssvc_NetrWkstaUserSetInfo { struct { + const char *unknown;/* [unique,charset(UTF16)] */ + uint32_t level; + union wkssvc_NetrWkstaUserInfo *info;/* [ref,switch_is(level)] */ + uint32_t *parm_err;/* [unique] */ + } in; + + struct { + uint32_t *parm_err;/* [unique] */ WERROR result; } out; @@ -253,31 +573,43 @@ struct wkssvc_NetWkstaTransportEnum { struct { const char *server_name;/* [unique,charset(UTF16)] */ uint32_t max_buffer; - uint32_t *level;/* [ref] */ - union wkssvc_NetWkstaTransportCtr *ctr;/* [ref,switch_is(*level)] */ - uint32_t *resume_handle;/* [ref] */ + struct wkssvc_NetWkstaTransportInfo *info;/* [ref] */ + uint32_t *resume_handle;/* [unique] */ } in; struct { - uint32_t *totalentries;/* [unique] */ - uint32_t *level;/* [ref] */ - union wkssvc_NetWkstaTransportCtr *ctr;/* [ref,switch_is(*level)] */ - uint32_t *resume_handle;/* [ref] */ + uint32_t *total_entries;/* [ref] */ + struct wkssvc_NetWkstaTransportInfo *info;/* [ref] */ + uint32_t *resume_handle;/* [unique] */ WERROR result; } out; }; -struct WKSSVC_NETRWKSTATRANSPORTADD { +struct wkssvc_NetrWkstaTransportAdd { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + uint32_t level; + struct wkssvc_NetWkstaTransportInfo0 *info0;/* [ref] */ + uint32_t *parm_err;/* [unique] */ + } in; + struct { + uint32_t *parm_err;/* [unique] */ WERROR result; } out; }; -struct WKSSVC_NETRWKSTATRANSPORTDEL { +struct wkssvc_NetrWkstaTransportDel { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *transport_name;/* [unique,charset(UTF16)] */ + uint32_t unknown3; + } in; + struct { WERROR result; } out; @@ -285,23 +617,44 @@ struct WKSSVC_NETRWKSTATRANSPORTDEL { }; -struct WKSSVC_NETRUSEADD { +struct wkssvc_NetrUseAdd { struct { + const char *server_name;/* [unique,charset(UTF16)] */ + uint32_t level; + union wkssvc_NetrUseGetInfoCtr *ctr;/* [ref,switch_is(level)] */ + uint32_t *parm_err;/* [unique] */ + } in; + + struct { + uint32_t *parm_err;/* [unique] */ WERROR result; } out; }; -struct WKSSVC_NETRUSEGETINFO { +struct wkssvc_NetrUseGetInfo { struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *use_name;/* [ref,charset(UTF16)] */ + uint32_t level; + } in; + + struct { + union wkssvc_NetrUseGetInfoCtr *ctr;/* [ref,switch_is(level)] */ WERROR result; } out; }; -struct WKSSVC_NETRUSEDEL { +struct wkssvc_NetrUseDel { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *use_name;/* [ref,charset(UTF16)] */ + uint32_t force_cond; + } in; + struct { WERROR result; } out; @@ -309,15 +662,33 @@ struct WKSSVC_NETRUSEDEL { }; -struct WKSSVC_NETRUSEENUM { +struct wkssvc_NetrUseEnum { struct { + const char *server_name;/* [unique,charset(UTF16)] */ + uint32_t prefmaxlen; + struct wkssvc_NetrUseEnumInfo *info;/* [ref] */ + uint32_t *resume_handle;/* [unique] */ + } in; + + struct { + uint32_t *entries_read;/* [ref] */ + struct wkssvc_NetrUseEnumInfo *info;/* [ref] */ + uint32_t *resume_handle;/* [unique] */ WERROR result; } out; }; -struct WKSSVC_NETRMESSAGEBUFFERSEND { +struct wkssvc_NetrMessageBufferSend { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *message_name;/* [ref,charset(UTF16)] */ + const char *message_sender_name;/* [unique,charset(UTF16)] */ + uint8_t *message_buffer;/* [ref,size_is(message_size)] */ + uint32_t message_size; + } in; + struct { WERROR result; } out; @@ -325,15 +696,27 @@ struct WKSSVC_NETRMESSAGEBUFFERSEND { }; -struct WKSSVC_NETRWORKSTATIONSTATISTICSGET { +struct wkssvc_NetrWorkstationStatisticsGet { struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *unknown2;/* [unique,charset(UTF16)] */ + uint32_t unknown3; + uint32_t unknown4; + } in; + + struct { + struct wkssvc_NetrWorkstationStatistics **info;/* [ref] */ WERROR result; } out; }; -struct WKSSVC_NETRLOGONDOMAINNAMEADD { +struct wkssvc_NetrLogonDomainNameAdd { + struct { + const char *domain_name;/* [ref,charset(UTF16)] */ + } in; + struct { WERROR result; } out; @@ -341,7 +724,11 @@ struct WKSSVC_NETRLOGONDOMAINNAMEADD { }; -struct WKSSVC_NETRLOGONDOMAINNAMEDEL { +struct wkssvc_NetrLogonDomainNameDel { + struct { + const char *domain_name;/* [ref,charset(UTF16)] */ + } in; + struct { WERROR result; } out; @@ -349,7 +736,16 @@ struct WKSSVC_NETRLOGONDOMAINNAMEDEL { }; -struct WKSSVC_NETRJOINDOMAIN { +struct wkssvc_NetrJoinDomain { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *domain_name;/* [ref,charset(UTF16)] */ + const char *account_ou;/* [unique,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + const char *password;/* [unique,charset(UTF16)] */ + uint32_t join_flags; + } in; + struct { WERROR result; } out; @@ -357,7 +753,14 @@ struct WKSSVC_NETRJOINDOMAIN { }; -struct WKSSVC_NETRUNJOINDOMAIN { +struct wkssvc_NetrUnjoinDomain { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + const char *password;/* [unique,charset(UTF16)] */ + uint32_t unjoin_flags; + } in; + struct { WERROR result; } out; @@ -365,7 +768,15 @@ struct WKSSVC_NETRUNJOINDOMAIN { }; -struct WKSSVC_NETRRENAMEMACHINEINDOMAIN { +struct wkssvc_NetrRenameMachineInDomain { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *NewMachineName;/* [unique,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + const char *password;/* [unique,charset(UTF16)] */ + uint32_t RenameOptions; + } in; + struct { WERROR result; } out; @@ -373,7 +784,15 @@ struct WKSSVC_NETRRENAMEMACHINEINDOMAIN { }; -struct WKSSVC_NETRVALIDATENAME { +struct wkssvc_NetrValidateName { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *name;/* [ref,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + const char *Password;/* [unique,charset(UTF16)] */ + enum wkssvc_NetValidateNameType name_type; + } in; + struct { WERROR result; } out; @@ -381,16 +800,33 @@ struct WKSSVC_NETRVALIDATENAME { }; -struct WKSSVC_NETRGETJOININFORMATION { +struct wkssvc_NetrGetJoinInformation { struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char **name_buffer;/* [ref,charset(UTF16)] */ + } in; + + struct { + enum wkssvc_NetJoinStatus *name_type;/* [ref] */ + const char **name_buffer;/* [ref,charset(UTF16)] */ WERROR result; } out; }; -struct WKSSVC_NETRGETJOINABLEOUS { +struct wkssvc_NetrGetJoinableOus { struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *domain_name;/* [ref,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + const char *unknown;/* [unique,charset(UTF16)] */ + uint32_t *num_ous;/* [ref] */ + } in; + + struct { + const char ***ous;/* [ref,charset(UTF16),size_is(*num_ous)] */ + uint32_t *num_ous;/* [ref] */ WERROR result; } out; @@ -401,7 +837,7 @@ struct wkssvc_NetrJoinDomain2 { struct { const char *server_name;/* [unique,charset(UTF16)] */ const char *domain_name;/* [ref,charset(UTF16)] */ - const char *account_name;/* [unique,charset(UTF16)] */ + const char *account_ou;/* [unique,charset(UTF16)] */ const char *admin_account;/* [unique,charset(UTF16)] */ struct wkssvc_PasswordBuffer *encrypted_password;/* [unique] */ uint32_t join_flags; @@ -445,7 +881,15 @@ struct wkssvc_NetrRenameMachineInDomain2 { }; -struct WKSSVC_NETRVALIDATENAME2 { +struct wkssvc_NetrValidateName2 { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *name;/* [ref,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + struct wkssvc_PasswordBuffer *EncryptedPassword;/* [unique] */ + enum wkssvc_NetValidateNameType name_type; + } in; + struct { WERROR result; } out; @@ -453,8 +897,18 @@ struct WKSSVC_NETRVALIDATENAME2 { }; -struct WKSSVC_NETRGETJOINABLEOUS2 { +struct wkssvc_NetrGetJoinableOus2 { struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *domain_name;/* [ref,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + struct wkssvc_PasswordBuffer *EncryptedPassword;/* [unique] */ + uint32_t *num_ous;/* [ref] */ + } in; + + struct { + const char ***ous;/* [ref,charset(UTF16),size_is(*num_ous)] */ + uint32_t *num_ous;/* [ref] */ WERROR result; } out; @@ -493,7 +947,15 @@ struct wkssvc_NetrRemoveAlternateComputerName { }; -struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME { +struct wkssvc_NetrSetPrimaryComputername { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + const char *primary_name;/* [unique,charset(UTF16)] */ + const char *Account;/* [unique,charset(UTF16)] */ + struct wkssvc_PasswordBuffer *EncryptedPassword;/* [unique] */ + uint32_t Reserved; + } in; + struct { WERROR result; } out; @@ -501,8 +963,15 @@ struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME { }; -struct WKSSVC_NETRENUMERATECOMPUTERNAMES { +struct wkssvc_NetrEnumerateComputerNames { + struct { + const char *server_name;/* [unique,charset(UTF16)] */ + enum wkssvc_ComputerNameType name_type; + uint32_t Reserved; + } in; + struct { + struct wkssvc_ComputerNamesCtr **ctr;/* [ref] */ WERROR result; } out; diff --git a/source3/librpc/idl/wkssvc.idl b/source3/librpc/idl/wkssvc.idl index 98688fac46..dfb18e7ea8 100644 --- a/source3/librpc/idl/wkssvc.idl +++ b/source3/librpc/idl/wkssvc.idl @@ -1,16 +1,20 @@ +#include "idl_types.h" + /* wkssvc interface definitions */ -import "srvsvc.idl"; +import "srvsvc.idl", "lsa.idl"; [ uuid("6bffd098-a112-3610-9833-46c3f87e345a"), version(1.0), pointer_default(unique), pointer_default_top(unique), - helpstring("Workstation Service") + helpstring("Workstation Service"), + endpoint("ncacn_np:[\\pipe\\wkssvc]","ncacn_ip_tcp:","ncalrpc:") ] interface wkssvc { + declare [v1_enum] enum srvsvc_PlatformId; #define BOOL uint32 @@ -18,7 +22,7 @@ import "srvsvc.idl"; /* Function: 0x00 */ typedef struct { - uint16 platform_id; + srvsvc_PlatformId platform_id; [string,charset(UTF16)] uint16 *server_name; [string,charset(UTF16)] uint16 *domain_name; uint32 version_major; @@ -26,7 +30,7 @@ import "srvsvc.idl"; } wkssvc_NetWkstaInfo100; typedef struct { - uint16 platform_id; + srvsvc_PlatformId platform_id; [string,charset(UTF16)] uint16 *server_name; [string,charset(UTF16)] uint16 *domain_name; uint32 version_major; @@ -35,7 +39,7 @@ import "srvsvc.idl"; } wkssvc_NetWkstaInfo101; typedef struct { - uint16 platform_id; + srvsvc_PlatformId platform_id; [string,charset(UTF16)] uint16 *server_name; [string,charset(UTF16)] uint16 *domain_name; uint32 version_major; @@ -44,6 +48,8 @@ import "srvsvc.idl"; uint32 logged_on_users; } wkssvc_NetWkstaInfo102; + /* FIXME: 302, 402 */ + typedef struct { uint32 char_wait; uint32 collection_time; @@ -110,10 +116,108 @@ import "srvsvc.idl"; uint32 errorlog_sz; } wkssvc_NetWkstaInfo1027; + /* downlevel */ + typedef struct { + uint32 print_buf_time; + } wkssvc_NetWkstaInfo1028; + + /* downlevel */ + typedef struct { + uint32 wrk_heuristics; + } wkssvc_NetWkstaInfo1032; + typedef struct { uint32 max_threads; } wkssvc_NetWkstaInfo1033; + typedef struct { + uint32 lock_quota; + } wkssvc_NetWkstaInfo1041; + + typedef struct { + uint32 lock_increment; + } wkssvc_NetWkstaInfo1042; + + typedef struct { + uint32 lock_maximum; + } wkssvc_NetWkstaInfo1043; + + typedef struct { + uint32 pipe_increment; + } wkssvc_NetWkstaInfo1044; + + typedef struct { + uint32 pipe_maximum; + } wkssvc_NetWkstaInfo1045; + + typedef struct { + uint32 dormant_file_limit; + } wkssvc_NetWkstaInfo1046; + + typedef struct { + uint32 cache_file_timeout; + } wkssvc_NetWkstaInfo1047; + + typedef struct { + uint32 use_opportunistic_locking; + } wkssvc_NetWkstaInfo1048; + + typedef struct { + uint32 use_unlock_behind; + } wkssvc_NetWkstaInfo1049; + + typedef struct { + uint32 use_close_behind; + } wkssvc_NetWkstaInfo1050; + + typedef struct { + uint32 buf_named_pipes; + } wkssvc_NetWkstaInfo1051; + + typedef struct { + uint32 use_lock_read_unlock; + } wkssvc_NetWkstaInfo1052; + + typedef struct { + uint32 utilize_nt_caching; + } wkssvc_NetWkstaInfo1053; + + typedef struct { + uint32 use_raw_read; + } wkssvc_NetWkstaInfo1054; + + typedef struct { + uint32 use_raw_write; + } wkssvc_NetWkstaInfo1055; + + typedef struct { + uint32 use_write_raw_data; + } wkssvc_NetWkstaInfo1056; + + typedef struct { + uint32 use_encryption; + } wkssvc_NetWkstaInfo1057; + + typedef struct { + uint32 buf_files_deny_write; + } wkssvc_NetWkstaInfo1058; + + typedef struct { + uint32 buf_read_only_files; + } wkssvc_NetWkstaInfo1059; + + typedef struct { + uint32 force_core_create_mode; + } wkssvc_NetWkstaInfo1060; + + typedef struct { + uint32 use_512_byte_max_transfer; + } wkssvc_NetWkstaInfo1061; + + typedef struct { + uint32 read_ahead_throughput; + } wkssvc_NetWkstaInfo1062; + typedef union { [case(100)] wkssvc_NetWkstaInfo100 *info100; [case(101)] wkssvc_NetWkstaInfo101 *info101; @@ -126,7 +230,31 @@ import "srvsvc.idl"; [case(1018)] wkssvc_NetWkstaInfo1018 *info1018; [case(1023)] wkssvc_NetWkstaInfo1023 *info1023; [case(1027)] wkssvc_NetWkstaInfo1027 *info1027; + [case(1028)] wkssvc_NetWkstaInfo1028 *info1028; + [case(1032)] wkssvc_NetWkstaInfo1032 *info1032; [case(1033)] wkssvc_NetWkstaInfo1033 *info1033; + [case(1041)] wkssvc_NetWkstaInfo1041 *info1041; + [case(1042)] wkssvc_NetWkstaInfo1042 *info1042; + [case(1043)] wkssvc_NetWkstaInfo1043 *info1043; + [case(1044)] wkssvc_NetWkstaInfo1044 *info1044; + [case(1045)] wkssvc_NetWkstaInfo1045 *info1045; + [case(1046)] wkssvc_NetWkstaInfo1046 *info1046; + [case(1047)] wkssvc_NetWkstaInfo1047 *info1047; + [case(1048)] wkssvc_NetWkstaInfo1048 *info1048; + [case(1049)] wkssvc_NetWkstaInfo1049 *info1049; + [case(1050)] wkssvc_NetWkstaInfo1050 *info1050; + [case(1051)] wkssvc_NetWkstaInfo1051 *info1051; + [case(1052)] wkssvc_NetWkstaInfo1052 *info1052; + [case(1053)] wkssvc_NetWkstaInfo1053 *info1053; + [case(1054)] wkssvc_NetWkstaInfo1054 *info1054; + [case(1055)] wkssvc_NetWkstaInfo1055 *info1055; + [case(1056)] wkssvc_NetWkstaInfo1056 *info1056; + [case(1057)] wkssvc_NetWkstaInfo1057 *info1057; + [case(1058)] wkssvc_NetWkstaInfo1058 *info1058; + [case(1059)] wkssvc_NetWkstaInfo1059 *info1059; + [case(1060)] wkssvc_NetWkstaInfo1060 *info1060; + [case(1061)] wkssvc_NetWkstaInfo1061 *info1061; + [case(1062)] wkssvc_NetWkstaInfo1062 *info1062; [default] ; } wkssvc_NetWkstaInfo; @@ -150,49 +278,70 @@ import "srvsvc.idl"; /*****************************/ /* Function 0x02 */ typedef struct { - [string,charset(UTF16)] uint16 *user; - } USER_INFO_0; + [string,charset(UTF16)] uint16 *user_name; + } wkssvc_NetrWkstaUserInfo0; typedef struct { uint32 entries_read; - [size_is(entries_read)] USER_INFO_0 *user0; - } USER_INFO_0_CONTAINER; + [size_is(entries_read)] wkssvc_NetrWkstaUserInfo0 *user0; + } wkssvc_NetWkstaEnumUsersCtr0; typedef struct { [string,charset(UTF16)] uint16 *user_name; [string,charset(UTF16)] uint16 *logon_domain; [string,charset(UTF16)] uint16 *other_domains; [string,charset(UTF16)] uint16 *logon_server; - } USER_INFO_1; + } wkssvc_NetrWkstaUserInfo1; typedef struct { uint32 entries_read; - [size_is(entries_read)] USER_INFO_1 *user1; - } USER_INFO_1_CONTAINER; + [size_is(entries_read)] wkssvc_NetrWkstaUserInfo1 *user1; + } wkssvc_NetWkstaEnumUsersCtr1; typedef [switch_type(uint32)] union { - [case(0)] USER_INFO_0_CONTAINER *user0; - [case(1)] USER_INFO_1_CONTAINER *user1; - } WKS_USER_ENUM_UNION; + [case(0)] wkssvc_NetWkstaEnumUsersCtr0 *user0; + [case(1)] wkssvc_NetWkstaEnumUsersCtr1 *user1; + } wkssvc_NetWkstaEnumUsersCtr; + + typedef struct { + uint32 level; + [switch_is(level)] wkssvc_NetWkstaEnumUsersCtr ctr; + } wkssvc_NetWkstaEnumUsersInfo; WERROR wkssvc_NetWkstaEnumUsers( [in] [string,charset(UTF16)] uint16 *server_name, - [in] uint32 level, - [in] [out] [ref] WKS_USER_ENUM_UNION *users, + [in,out,ref] wkssvc_NetWkstaEnumUsersInfo *info, [in] uint32 prefmaxlen, - [out] uint32 *entriesread, - [out] uint32 *totalentries, - [in] [out] [ref] uint32 *resumehandle + [out,ref] uint32 *entries_read, + [in,out] uint32 *resume_handle ); /*****************************/ /* Function 0x03 */ - WERROR WKSSVC_NETRWKSTAUSERGETINFO (); + typedef struct { + [string,charset(UTF16)] uint16 *other_domains; + } wkssvc_NetrWkstaUserInfo1101; + + typedef [switch_type(uint32)] union { + [case(0)] wkssvc_NetrWkstaUserInfo0 *info0; + [case(1)] wkssvc_NetrWkstaUserInfo1 *info1; + [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101; + } wkssvc_NetrWkstaUserInfo; + + WERROR wkssvc_NetrWkstaUserGetInfo( + [in] [string,charset(UTF16)] uint16 *unknown, + [in] uint32 level, + [out,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info + ); /*****************************/ /* Function 0x04 */ - WERROR WKSSVC_NETRWKSTAUSERSETINFO (); - + WERROR wkssvc_NetrWkstaUserSetInfo( + [in] [string,charset(UTF16)] uint16 *unknown, + [in] uint32 level, + [in,ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info, + [in,out] uint32 *parm_err + ); /*****************************/ /* Function 0x05 */ @@ -212,88 +361,303 @@ import "srvsvc.idl"; typedef union { [case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0; - [default] ; } wkssvc_NetWkstaTransportCtr; + typedef struct { + uint32 level; + [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr; + } wkssvc_NetWkstaTransportInfo; + WERROR wkssvc_NetWkstaTransportEnum ( [in] [string,charset(UTF16)] uint16 *server_name, - [in,out,ref] uint32 *level, - [in,out,switch_is(*level),ref] wkssvc_NetWkstaTransportCtr *ctr, + [in,out,ref] wkssvc_NetWkstaTransportInfo *info, [in] uint32 max_buffer, - [out] uint32 *totalentries, - [in,out,ref] uint32 *resume_handle + [out,ref] uint32 *total_entries, + [in,out] uint32 *resume_handle ); - /*****************************/ /* Function 0x06 */ - WERROR WKSSVC_NETRWKSTATRANSPORTADD (); + /* only supported on NT */ + WERROR wkssvc_NetrWkstaTransportAdd( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, /* must be 0 */ + [in,ref] wkssvc_NetWkstaTransportInfo0 *info0, + [in,out] uint32 *parm_err + ); /*****************************/ /* Function 0x07 */ - WERROR WKSSVC_NETRWKSTATRANSPORTDEL (); + /* only supported on NT */ + WERROR wkssvc_NetrWkstaTransportDel( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *transport_name, + [in] uint32 unknown3 + ); /*****************************/ /* Function 0x08 */ - WERROR WKSSVC_NETRUSEADD (); + typedef struct { + [string,charset(UTF16)] uint16 *unknown1; + [string,charset(UTF16)] uint16 *unknown2; + } wkssvc_NetrUseInfo3; + + typedef struct { + [string,charset(UTF16)] uint16 *local; + [string,charset(UTF16)] uint16 *remote; + [string,charset(UTF16)] uint16 *password; + uint32 status; + uint32 asg_type; + uint32 ref_count; + uint32 use_count; + [string,charset(UTF16)] uint16 *user_name; + [string,charset(UTF16)] uint16 *domain_name; + } wkssvc_NetrUseInfo2; + + typedef struct { + [string,charset(UTF16)] uint16 *local; + [string,charset(UTF16)] uint16 *remote; + [string,charset(UTF16)] uint16 *password; + uint32 status; + uint32 asg_type; + uint32 ref_count; + uint32 use_count; + } wkssvc_NetrUseInfo1; + + typedef struct { + [string,charset(UTF16)] uint16 *local; + [string,charset(UTF16)] uint16 *remote; + } wkssvc_NetrUseInfo0; + + typedef [switch_type(uint32)] union { + [case(0)] wkssvc_NetrUseInfo0 *info0; + [case(1)] wkssvc_NetrUseInfo1 *info1; + [case(2)] wkssvc_NetrUseInfo2 *info2; + [case(3)] wkssvc_NetrUseInfo3 *info3; + } wkssvc_NetrUseGetInfoCtr; + + WERROR wkssvc_NetrUseAdd( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] uint32 level, + [in,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr, + [in,out] uint32 *parm_err + ); /*****************************/ /* Function 0x09 */ - WERROR WKSSVC_NETRUSEGETINFO (); + WERROR wkssvc_NetrUseGetInfo( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *use_name, + [in] uint32 level, + [out,ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr + ); /*****************************/ /* Function 0x0a */ - WERROR WKSSVC_NETRUSEDEL (); + WERROR wkssvc_NetrUseDel( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *use_name, + [in] uint32 force_cond + ); /*****************************/ /* Function 0x0b */ - WERROR WKSSVC_NETRUSEENUM (); + typedef struct { + uint32 count; + [size_is(count)] wkssvc_NetrUseInfo2 *array; + } wkssvc_NetrUseEnumCtr2; + + typedef struct { + uint32 count; + [size_is(count)] wkssvc_NetrUseInfo1 *array; + } wkssvc_NetrUseEnumCtr1; + + typedef struct { + uint32 count; + [size_is(count)] wkssvc_NetrUseInfo0 *array; + } wkssvc_NetrUseEnumCtr0; + + typedef [switch_type(uint32)] union { + [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0; + [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1; + [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2; + } wkssvc_NetrUseEnumCtr; + + typedef struct { + uint32 level; + [switch_is(level)] wkssvc_NetrUseEnumCtr ctr; + } wkssvc_NetrUseEnumInfo; + + WERROR wkssvc_NetrUseEnum( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,out,ref] wkssvc_NetrUseEnumInfo *info, + [in] uint32 prefmaxlen, + [out,ref] uint32 *entries_read, + [in,out] uint32 *resume_handle + ); /*****************************/ /* Function 0x0c */ - WERROR WKSSVC_NETRMESSAGEBUFFERSEND (); + WERROR wkssvc_NetrMessageBufferSend( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *message_name, + [in] [string,charset(UTF16)] uint16 *message_sender_name, + [in,ref] [size_is(message_size)] uint8 *message_buffer, + [in] uint32 message_size + ); /*****************************/ /* Function 0x0d */ - WERROR WKSSVC_NETRWORKSTATIONSTATISTICSGET (); + typedef struct { + hyper unknown1; + hyper unknown2; + hyper unknown3; + hyper unknown4; + hyper unknown5; + hyper unknown6; + hyper unknown7; + hyper unknown8; + hyper unknown9; + hyper unknown10; + hyper unknown11; + hyper unknown12; + hyper unknown13; + uint32 unknown14; + uint32 unknown15; + uint32 unknown16; + uint32 unknown17; + uint32 unknown18; + uint32 unknown19; + uint32 unknown20; + uint32 unknown21; + uint32 unknown22; + uint32 unknown23; + uint32 unknown24; + uint32 unknown25; + uint32 unknown26; + uint32 unknown27; + uint32 unknown28; + uint32 unknown29; + uint32 unknown30; + uint32 unknown31; + uint32 unknown32; + uint32 unknown33; + uint32 unknown34; + uint32 unknown35; + uint32 unknown36; + uint32 unknown37; + uint32 unknown38; + uint32 unknown39; + uint32 unknown40; + } wkssvc_NetrWorkstationStatistics; + + WERROR wkssvc_NetrWorkstationStatisticsGet( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *unknown2, + [in] uint32 unknown3, + [in] uint32 unknown4, + [out,ref] wkssvc_NetrWorkstationStatistics **info + ); /*****************************/ /* Function 0x0e */ - WERROR WKSSVC_NETRLOGONDOMAINNAMEADD (); + WERROR wkssvc_NetrLogonDomainNameAdd( + [in,ref] [string,charset(UTF16)] uint16 *domain_name + ); /*****************************/ /* Function 0x0f */ - WERROR WKSSVC_NETRLOGONDOMAINNAMEDEL (); + WERROR wkssvc_NetrLogonDomainNameDel( + [in,ref] [string,charset(UTF16)] uint16 *domain_name + ); /*****************************/ /* Function 0x10 */ - WERROR WKSSVC_NETRJOINDOMAIN (); + WERROR wkssvc_NetrJoinDomain( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in] [string,charset(UTF16)] uint16 *account_ou, + [in] [string,charset(UTF16)] uint16 *Account, + [in] [string,charset(UTF16)] uint16 *password, + [in] wkssvc_joinflags join_flags + ); /*****************************/ /* Function 0x11 */ - WERROR WKSSVC_NETRUNJOINDOMAIN (); + WERROR wkssvc_NetrUnjoinDomain( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *Account, + [in] [string,charset(UTF16)] uint16 *password, + [in] wkssvc_joinflags unjoin_flags + ); /*****************************/ /* Function 0x12 */ - WERROR WKSSVC_NETRRENAMEMACHINEINDOMAIN (); + typedef [bitmap32bit] bitmap { + /* TRUE: create the account in the domain */ + WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002 + } wkssvc_renameflags; + + WERROR wkssvc_NetrRenameMachineInDomain( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *NewMachineName, + [in] [string,charset(UTF16)] uint16 *Account, + [in] [string,charset(UTF16)] uint16 *password, + [in] wkssvc_renameflags RenameOptions + ); /*****************************/ /* Function 0x13 */ - WERROR WKSSVC_NETRVALIDATENAME (); + typedef enum { + NetSetupUnknown = 0, + NetSetupMachine = 1, + NetSetupWorkgroup = 2, + NetSetupDomain = 3, + NetSetupNonExistentDomain = 4, + NetSetupDnsMachine = 5 + } wkssvc_NetValidateNameType; + + WERROR wkssvc_NetrValidateName( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *name, + [in] [string,charset(UTF16)] uint16 *Account, + [in] [string,charset(UTF16)] uint16 *Password, + [in] wkssvc_NetValidateNameType name_type + ); /*****************************/ /* Function 0x14 */ - WERROR WKSSVC_NETRGETJOININFORMATION (); + typedef enum { + NetSetupUnknownStatus = 0, + NetSetupUnjoined = 1, + NetSetupWorkgroupName = 2, + NetSetupDomainName = 3 + } wkssvc_NetJoinStatus; + + WERROR wkssvc_NetrGetJoinInformation( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,out,ref] [string,charset(UTF16)] uint16 **name_buffer, + [out,ref] wkssvc_NetJoinStatus *name_type + ); /*****************************/ /* Function 0x15 */ - WERROR WKSSVC_NETRGETJOINABLEOUS (); + WERROR wkssvc_NetrGetJoinableOus( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in] [string,charset(UTF16)] uint16 *Account, + [in] [string,charset(UTF16)] uint16 *unknown, + [in,out,ref] uint32 *num_ous, + [out,ref] [size_is(*num_ous)] [string,charset(UTF16)] uint16 ***ous + ); - typedef struct { + typedef [flag(NDR_PAHEX)] struct { uint8 data[524]; } wkssvc_PasswordBuffer; typedef [bitmap32bit] bitmap { + WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME = 0x00000400, + WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT = 0x00000200, /* TRUE: defer setting the SPN and dNSHostName until a rename operation */ WKSSVC_JOIN_FLAGS_DEFER_SPN = 0x00000100, @@ -305,7 +669,7 @@ import "srvsvc.idl"; /* TRUE: allow the join to complete even if the account already exists */ WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = 0x00000020, - + /* TRUE: this join is part of a w9x upgrade */ WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = 0x00000010, @@ -317,15 +681,15 @@ import "srvsvc.idl"; /* TRUE: join domain FALSE: join workgroup */ WKSSVC_JOIN_FLAGS_JOIN_TYPE = 0x00000001 - + } wkssvc_joinflags; /*****************************/ /* Function 0x16 */ WERROR wkssvc_NetrJoinDomain2 ( [in] [string,charset(UTF16)] uint16 *server_name, - [in] [string,charset(UTF16),ref] uint16 *domain_name, - [in] [string,charset(UTF16)] uint16 *account_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in] [string,charset(UTF16)] uint16 *account_ou, [in] [string,charset(UTF16)] uint16 *admin_account, [in] wkssvc_PasswordBuffer *encrypted_password, [in] wkssvc_joinflags join_flags @@ -334,60 +698,91 @@ import "srvsvc.idl"; /*****************************/ /* Function 0x17 */ WERROR wkssvc_NetrUnjoinDomain2 ( - [in] [unique] [string,charset(UTF16)] uint16 *server_name, - [in] [unique] [string,charset(UTF16)] uint16 *account, - [in] [unique] wkssvc_PasswordBuffer *encrypted_password, + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *account, + [in] wkssvc_PasswordBuffer *encrypted_password, [in] wkssvc_joinflags unjoin_flags ); - typedef [bitmap32bit] bitmap { - /* TRUE: create the account in the domain */ - WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = 0x00000002 - } wkssvc_renameflags; - /*****************************/ /* Function 0x18 */ WERROR wkssvc_NetrRenameMachineInDomain2( - [in] [unique] [string,charset(UTF16)] uint16 *server_name, - [in] [unique] [string,charset(UTF16)] uint16 *NewMachineName, - [in] [unique] [string,charset(UTF16)] uint16 *Account, - [in] [unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *NewMachineName, + [in] [string,charset(UTF16)] uint16 *Account, + [in] wkssvc_PasswordBuffer *EncryptedPassword, [in] wkssvc_renameflags RenameOptions ); /*****************************/ /* Function 0x19 */ - WERROR WKSSVC_NETRVALIDATENAME2 (); + WERROR wkssvc_NetrValidateName2( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *name, + [in] [string,charset(UTF16)] uint16 *Account, + [in] wkssvc_PasswordBuffer *EncryptedPassword, + [in] wkssvc_NetValidateNameType name_type + ); /*****************************/ /* Function 0x1a */ - WERROR WKSSVC_NETRGETJOINABLEOUS2 (); + WERROR wkssvc_NetrGetJoinableOus2( + [in] [string,charset(UTF16)] uint16 *server_name, + [in,ref] [string,charset(UTF16)] uint16 *domain_name, + [in] [string,charset(UTF16)] uint16 *Account, + [in] wkssvc_PasswordBuffer *EncryptedPassword, + [in,out,ref] uint32 *num_ous, + [out,ref] [size_is(*num_ous)] [string,charset(UTF16)] uint16 ***ous + ); /*****************************/ /* Function 0x1b */ WERROR wkssvc_NetrAddAlternateComputerName( - [in] [unique] [string,charset(UTF16)] uint16 *server_name, - [in] [unique] [string,charset(UTF16)] uint16 *NewAlternateMachineName, - [in] [unique] [string,charset(UTF16)] uint16 *Account, - [in] [unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *NewAlternateMachineName, + [in] [string,charset(UTF16)] uint16 *Account, + [in] wkssvc_PasswordBuffer *EncryptedPassword, [in] uint32 Reserved ); /*****************************/ /* Function 0x1c */ WERROR wkssvc_NetrRemoveAlternateComputerName( - [in] [unique] [string,charset(UTF16)] uint16 *server_name, - [in] [unique] [string,charset(UTF16)] uint16 *AlternateMachineNameToRemove, - [in] [unique] [string,charset(UTF16)] uint16 *Account, - [in] [unique] wkssvc_PasswordBuffer *EncryptedPassword, + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *AlternateMachineNameToRemove, + [in] [string,charset(UTF16)] uint16 *Account, + [in] wkssvc_PasswordBuffer *EncryptedPassword, [in] uint32 Reserved ); /*****************************/ /* Function 0x1d */ - WERROR WKSSVC_NETRSETPRIMARYCOMPUTERNAME (); + WERROR wkssvc_NetrSetPrimaryComputername( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] [string,charset(UTF16)] uint16 *primary_name, + [in] [string,charset(UTF16)] uint16 *Account, + [in] wkssvc_PasswordBuffer *EncryptedPassword, + [in] uint32 Reserved + ); /*****************************/ /* Function 0x1e */ - WERROR WKSSVC_NETRENUMERATECOMPUTERNAMES (); + typedef enum { + NetPrimaryComputerName = 0, + NetAlternateComputerNames = 1, + NetAllComputerNames = 2, + NetComputerNameTypeMax = 3 + } wkssvc_ComputerNameType; + + typedef struct { + uint32 count; + [size_is(count)] lsa_String *computer_name; + } wkssvc_ComputerNamesCtr; + + WERROR wkssvc_NetrEnumerateComputerNames( + [in] [string,charset(UTF16)] uint16 *server_name, + [in] wkssvc_ComputerNameType name_type, + [in] uint32 Reserved, + [out,ref] wkssvc_ComputerNamesCtr **ctr + ); } diff --git a/source3/rpc_server/srv_wkssvc_nt.c b/source3/rpc_server/srv_wkssvc_nt.c index 11ca8915a2..70cf80c20a 100644 --- a/source3/rpc_server/srv_wkssvc_nt.c +++ b/source3/rpc_server/srv_wkssvc_nt.c @@ -48,7 +48,7 @@ static void create_wks_info_100(struct wkssvc_NetWkstaInfo100 *info100) only supports info level 100 at the moment. ********************************************************************/ -WERROR _wkssvc_NetWkstaGetInfo( pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r) +WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r) { struct wkssvc_NetWkstaInfo100 *wks100 = NULL; @@ -72,7 +72,7 @@ WERROR _wkssvc_NetWkstaGetInfo( pipes_struct *p, struct wkssvc_NetWkstaGetInfo * /******************************************************************** ********************************************************************/ -WERROR _wkssvc_NetWkstaSetInfo( pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r) +WERROR _wkssvc_NetWkstaSetInfo(pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -82,7 +82,7 @@ WERROR _wkssvc_NetWkstaSetInfo( pipes_struct *p, struct wkssvc_NetWkstaSetInfo * /******************************************************************** ********************************************************************/ -WERROR _wkssvc_NetWkstaEnumUsers( pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r) +WERROR _wkssvc_NetWkstaEnumUsers(pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -92,7 +92,7 @@ WERROR _wkssvc_NetWkstaEnumUsers( pipes_struct *p, struct wkssvc_NetWkstaEnumUse /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRWKSTAUSERGETINFO( pipes_struct *p, struct WKSSVC_NETRWKSTAUSERGETINFO *r ) +WERROR _wkssvc_NetrWkstaUserGetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserGetInfo *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -102,7 +102,7 @@ WERROR _WKSSVC_NETRWKSTAUSERGETINFO( pipes_struct *p, struct WKSSVC_NETRWKSTAUSE /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRWKSTAUSERSETINFO( pipes_struct *p, struct WKSSVC_NETRWKSTAUSERSETINFO *r ) +WERROR _wkssvc_NetrWkstaUserSetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserSetInfo *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -112,7 +112,7 @@ WERROR _WKSSVC_NETRWKSTAUSERSETINFO( pipes_struct *p, struct WKSSVC_NETRWKSTAUSE /******************************************************************** ********************************************************************/ -WERROR _wkssvc_NetWkstaTransportEnum( pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r) +WERROR _wkssvc_NetWkstaTransportEnum(pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -122,7 +122,7 @@ WERROR _wkssvc_NetWkstaTransportEnum( pipes_struct *p, struct wkssvc_NetWkstaTra /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRWKSTATRANSPORTADD( pipes_struct *p, struct WKSSVC_NETRWKSTATRANSPORTADD *r ) +WERROR _wkssvc_NetrWkstaTransportAdd(pipes_struct *p, struct wkssvc_NetrWkstaTransportAdd *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -132,7 +132,7 @@ WERROR _WKSSVC_NETRWKSTATRANSPORTADD( pipes_struct *p, struct WKSSVC_NETRWKSTATR /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRWKSTATRANSPORTDEL( pipes_struct *p, struct WKSSVC_NETRWKSTATRANSPORTDEL *r ) +WERROR _wkssvc_NetrWkstaTransportDel(pipes_struct *p, struct wkssvc_NetrWkstaTransportDel *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -142,7 +142,7 @@ WERROR _WKSSVC_NETRWKSTATRANSPORTDEL( pipes_struct *p, struct WKSSVC_NETRWKSTATR /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRUSEADD( pipes_struct *p, struct WKSSVC_NETRUSEADD *r ) +WERROR _wkssvc_NetrUseAdd(pipes_struct *p, struct wkssvc_NetrUseAdd *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -152,7 +152,7 @@ WERROR _WKSSVC_NETRUSEADD( pipes_struct *p, struct WKSSVC_NETRUSEADD *r ) /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRUSEGETINFO( pipes_struct *p, struct WKSSVC_NETRUSEGETINFO *r ) +WERROR _wkssvc_NetrUseGetInfo(pipes_struct *p, struct wkssvc_NetrUseGetInfo *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -162,7 +162,7 @@ WERROR _WKSSVC_NETRUSEGETINFO( pipes_struct *p, struct WKSSVC_NETRUSEGETINFO *r /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRUSEDEL( pipes_struct *p, struct WKSSVC_NETRUSEDEL *r ) +WERROR _wkssvc_NetrUseDel(pipes_struct *p, struct wkssvc_NetrUseDel *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -172,7 +172,7 @@ WERROR _WKSSVC_NETRUSEDEL( pipes_struct *p, struct WKSSVC_NETRUSEDEL *r ) /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRUSEENUM( pipes_struct *p, struct WKSSVC_NETRUSEENUM *r ) +WERROR _wkssvc_NetrUseEnum(pipes_struct *p, struct wkssvc_NetrUseEnum *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -182,7 +182,7 @@ WERROR _WKSSVC_NETRUSEENUM( pipes_struct *p, struct WKSSVC_NETRUSEENUM *r ) /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRMESSAGEBUFFERSEND( pipes_struct *p, struct WKSSVC_NETRMESSAGEBUFFERSEND *r ) +WERROR _wkssvc_NetrMessageBufferSend(pipes_struct *p, struct wkssvc_NetrMessageBufferSend *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -192,7 +192,7 @@ WERROR _WKSSVC_NETRMESSAGEBUFFERSEND( pipes_struct *p, struct WKSSVC_NETRMESSAGE /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET( pipes_struct *p, struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r ) +WERROR _wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p, struct wkssvc_NetrWorkstationStatisticsGet *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -202,7 +202,7 @@ WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET( pipes_struct *p, struct WKSSVC_NETR /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD( pipes_struct *p, struct WKSSVC_NETRLOGONDOMAINNAMEADD *r ) +WERROR _wkssvc_NetrLogonDomainNameAdd(pipes_struct *p, struct wkssvc_NetrLogonDomainNameAdd *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -212,7 +212,7 @@ WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD( pipes_struct *p, struct WKSSVC_NETRLOGOND /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL( pipes_struct *p, struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r ) +WERROR _wkssvc_NetrLogonDomainNameDel(pipes_struct *p, struct wkssvc_NetrLogonDomainNameDel *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -222,7 +222,7 @@ WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL( pipes_struct *p, struct WKSSVC_NETRLOGOND /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRJOINDOMAIN( pipes_struct *p, struct WKSSVC_NETRJOINDOMAIN *r ) +WERROR _wkssvc_NetrJoinDomain(pipes_struct *p, struct wkssvc_NetrJoinDomain *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -232,7 +232,7 @@ WERROR _WKSSVC_NETRJOINDOMAIN( pipes_struct *p, struct WKSSVC_NETRJOINDOMAIN *r /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRUNJOINDOMAIN( pipes_struct *p, struct WKSSVC_NETRUNJOINDOMAIN *r ) +WERROR _wkssvc_NetrUnjoinDomain(pipes_struct *p, struct wkssvc_NetrUnjoinDomain *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -242,7 +242,7 @@ WERROR _WKSSVC_NETRUNJOINDOMAIN( pipes_struct *p, struct WKSSVC_NETRUNJOINDOMAIN /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN( pipes_struct *p, struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r ) +WERROR _wkssvc_NetrRenameMachineInDomain(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -252,7 +252,7 @@ WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN( pipes_struct *p, struct WKSSVC_NETRREN /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRVALIDATENAME( pipes_struct *p, struct WKSSVC_NETRVALIDATENAME *r ) +WERROR _wkssvc_NetrValidateName(pipes_struct *p, struct wkssvc_NetrValidateName *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -262,7 +262,7 @@ WERROR _WKSSVC_NETRVALIDATENAME( pipes_struct *p, struct WKSSVC_NETRVALIDATENAME /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRGETJOININFORMATION( pipes_struct *p, struct WKSSVC_NETRGETJOININFORMATION *r ) +WERROR _wkssvc_NetrGetJoinInformation(pipes_struct *p, struct wkssvc_NetrGetJoinInformation *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -272,7 +272,7 @@ WERROR _WKSSVC_NETRGETJOININFORMATION( pipes_struct *p, struct WKSSVC_NETRGETJOI /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRGETJOINABLEOUS( pipes_struct *p, struct WKSSVC_NETRGETJOINABLEOUS *r ) +WERROR _wkssvc_NetrGetJoinableOus(pipes_struct *p, struct wkssvc_NetrGetJoinableOus *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -312,7 +312,7 @@ WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRen /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRVALIDATENAME2( pipes_struct *p, struct WKSSVC_NETRVALIDATENAME2 *r ) +WERROR _wkssvc_NetrValidateName2(pipes_struct *p, struct wkssvc_NetrValidateName2 *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -322,7 +322,7 @@ WERROR _WKSSVC_NETRVALIDATENAME2( pipes_struct *p, struct WKSSVC_NETRVALIDATENAM /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRGETJOINABLEOUS2( pipes_struct *p, struct WKSSVC_NETRGETJOINABLEOUS2 *r ) +WERROR _wkssvc_NetrGetJoinableOus2(pipes_struct *p, struct wkssvc_NetrGetJoinableOus2 *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -332,7 +332,7 @@ WERROR _WKSSVC_NETRGETJOINABLEOUS2( pipes_struct *p, struct WKSSVC_NETRGETJOINAB /******************************************************************** ********************************************************************/ -WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r ) +WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -352,7 +352,7 @@ WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_Ne /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME( pipes_struct *p, struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r ) +WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSetPrimaryComputername *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; @@ -362,7 +362,7 @@ WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME( pipes_struct *p, struct WKSSVC_NETRSE /******************************************************************** ********************************************************************/ -WERROR _WKSSVC_NETRENUMERATECOMPUTERNAMES( pipes_struct *p, struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r ) +WERROR _wkssvc_NetrEnumerateComputerNames(pipes_struct *p, struct wkssvc_NetrEnumerateComputerNames *r) { /* FIXME: Add implementation code here */ p->rng_fault_state = True; -- cgit