From 3fae13ba805aff4fec3f98875d539dd1e11fd7a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Matthias=20Dieter=20Walln=C3=B6fer?= Date: Mon, 3 Aug 2009 09:51:44 +0200 Subject: [PATCH] s3/s4: Add new autogenerated files from "make idl_full" --- librpc/gen_ndr/cli_netlogon.c | 132 +-- librpc/gen_ndr/cli_netlogon.h | 132 +-- librpc/gen_ndr/ndr_netlogon.c | 1443 +++++++++++++++++++++------------ librpc/gen_ndr/ndr_netlogon.h | 19 +- librpc/gen_ndr/netlogon.h | 209 +++-- 5 files changed, 1185 insertions(+), 750 deletions(-) diff --git a/librpc/gen_ndr/cli_netlogon.c b/librpc/gen_ndr/cli_netlogon.c index 6d454ce9f2e..b173804c621 100644 --- a/librpc/gen_ndr/cli_netlogon.c +++ b/librpc/gen_ndr/cli_netlogon.c @@ -19,8 +19,8 @@ struct tevent_req *rpccli_netr_LogonUasLogon_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, - const char *_workstation /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, + const char *_workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasInfo **_info /* [out] [ref] */) { struct tevent_req *req; @@ -134,8 +134,8 @@ NTSTATUS rpccli_netr_LogonUasLogon_recv(struct tevent_req *req, NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, - const char *workstation /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, + const char *workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasInfo **info /* [out] [ref] */, WERROR *werror) { @@ -193,8 +193,8 @@ struct tevent_req *rpccli_netr_LogonUasLogoff_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, - const char *_workstation /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, + const char *_workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasLogoffInfo *_info /* [out] [ref] */) { struct tevent_req *req; @@ -308,8 +308,8 @@ NTSTATUS rpccli_netr_LogonUasLogoff_recv(struct tevent_req *req, NTSTATUS rpccli_netr_LogonUasLogoff(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, - const char *workstation /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, + const char *workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasLogoffInfo *info /* [out] [ref] */, WERROR *werror) { @@ -747,7 +747,7 @@ struct tevent_req *rpccli_netr_ServerReqChallenge_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */) { @@ -862,7 +862,7 @@ NTSTATUS rpccli_netr_ServerReqChallenge_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerReqChallenge(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */) { @@ -916,9 +916,9 @@ struct tevent_req *rpccli_netr_ServerAuthenticate_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */) { @@ -1035,9 +1035,9 @@ NTSTATUS rpccli_netr_ServerAuthenticate_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerAuthenticate(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */) { @@ -1093,9 +1093,9 @@ struct tevent_req *rpccli_netr_ServerPasswordSet_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct samr_Password *_new_password /* [in] [ref] */) @@ -1214,9 +1214,9 @@ NTSTATUS rpccli_netr_ServerPasswordSet_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerPasswordSet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct samr_Password *new_password /* [in] [ref] */) @@ -1273,8 +1273,8 @@ static void rpccli_netr_DatabaseDeltas_done(struct tevent_req *subreq); struct tevent_req *rpccli_netr_DatabaseDeltas_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID _database_id /* [in] */, @@ -1400,8 +1400,8 @@ NTSTATUS rpccli_netr_DatabaseDeltas_recv(struct tevent_req *req, NTSTATUS rpccli_netr_DatabaseDeltas(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID database_id /* [in] */, @@ -1464,8 +1464,8 @@ static void rpccli_netr_DatabaseSync_done(struct tevent_req *subreq); struct tevent_req *rpccli_netr_DatabaseSync_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID _database_id /* [in] */, @@ -1591,8 +1591,8 @@ NTSTATUS rpccli_netr_DatabaseSync_recv(struct tevent_req *req, NTSTATUS rpccli_netr_DatabaseSync(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID database_id /* [in] */, @@ -1656,7 +1656,7 @@ struct tevent_req *rpccli_netr_AccountDeltas_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_logon_server /* [in] [unique,charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator _credential /* [in] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, struct netr_UAS_INFO_0 _uas /* [in] */, @@ -1792,7 +1792,7 @@ NTSTATUS rpccli_netr_AccountDeltas_recv(struct tevent_req *req, NTSTATUS rpccli_netr_AccountDeltas(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *logon_server /* [in] [unique,charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator credential /* [in] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, struct netr_UAS_INFO_0 uas /* [in] */, @@ -1863,7 +1863,7 @@ struct tevent_req *rpccli_netr_AccountSync_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_logon_server /* [in] [unique,charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator _credential /* [in] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, uint32_t _reference /* [in] */, @@ -2001,7 +2001,7 @@ NTSTATUS rpccli_netr_AccountSync_recv(struct tevent_req *req, NTSTATUS rpccli_netr_AccountSync(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *logon_server /* [in] [unique,charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator credential /* [in] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, uint32_t reference /* [in] */, @@ -2072,7 +2072,7 @@ static void rpccli_netr_GetDcName_done(struct tevent_req *subreq); struct tevent_req *rpccli_netr_GetDcName_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, const char *_domainname /* [in] [unique,charset(UTF16)] */, const char **_dcname /* [out] [ref,charset(UTF16)] */) { @@ -2185,7 +2185,7 @@ NTSTATUS rpccli_netr_GetDcName_recv(struct tevent_req *req, NTSTATUS rpccli_netr_GetDcName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, const char *domainname /* [in] [unique,charset(UTF16)] */, const char **dcname /* [out] [ref,charset(UTF16)] */, WERROR *werror) @@ -2765,9 +2765,9 @@ struct tevent_req *rpccli_netr_ServerAuthenticate2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */, uint32_t *_negotiate_flags /* [in,out] [ref] */) @@ -2888,9 +2888,9 @@ NTSTATUS rpccli_netr_ServerAuthenticate2_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerAuthenticate2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */, uint32_t *negotiate_flags /* [in,out] [ref] */) @@ -2948,8 +2948,8 @@ static void rpccli_netr_DatabaseSync2_done(struct tevent_req *subreq); struct tevent_req *rpccli_netr_DatabaseSync2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID _database_id /* [in] */, @@ -3077,8 +3077,8 @@ NTSTATUS rpccli_netr_DatabaseSync2_recv(struct tevent_req *req, NTSTATUS rpccli_netr_DatabaseSync2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID database_id /* [in] */, @@ -3143,8 +3143,8 @@ static void rpccli_netr_DatabaseRedo_done(struct tevent_req *subreq); struct tevent_req *rpccli_netr_DatabaseRedo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, struct netr_ChangeLogEntry _change_log_entry /* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */, @@ -3266,8 +3266,8 @@ NTSTATUS rpccli_netr_DatabaseRedo_recv(struct tevent_req *req, NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, struct netr_ChangeLogEntry change_log_entry /* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */, @@ -3853,7 +3853,7 @@ static void rpccli_netr_LogonGetCapabilities_done(struct tevent_req *subreq); struct tevent_req *rpccli_netr_LogonGetCapabilities_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_server_name /* [in] [charset(UTF16)] */, + const char *_server_name /* [in] [ref,charset(UTF16)] */, const char *_computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, @@ -3974,7 +3974,7 @@ NTSTATUS rpccli_netr_LogonGetCapabilities_recv(struct tevent_req *req, NTSTATUS rpccli_netr_LogonGetCapabilities(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *server_name /* [in] [charset(UTF16)] */, + const char *server_name /* [in] [ref,charset(UTF16)] */, const char *computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, @@ -4657,9 +4657,9 @@ struct tevent_req *rpccli_netr_ServerAuthenticate3_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */, uint32_t *_negotiate_flags /* [in,out] [ref] */, @@ -4783,9 +4783,9 @@ NTSTATUS rpccli_netr_ServerAuthenticate3_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerAuthenticate3(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */, uint32_t *negotiate_flags /* [in,out] [ref] */, @@ -5193,12 +5193,12 @@ static void rpccli_netr_LogonGetDomainInfo_done(struct tevent_req *subreq); struct tevent_req *rpccli_netr_LogonGetDomainInfo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_server_name /* [in] [charset(UTF16)] */, + const char *_server_name /* [in] [ref,charset(UTF16)] */, const char *_computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, uint32_t _level /* [in] */, - union netr_DomainQuery _query /* [in] [switch_is(level)] */, + union netr_WorkstationInfo *_query /* [in] [ref,switch_is(level)] */, union netr_DomainInfo *_info /* [out] [ref,switch_is(level)] */) { struct tevent_req *req; @@ -5316,12 +5316,12 @@ NTSTATUS rpccli_netr_LogonGetDomainInfo_recv(struct tevent_req *req, NTSTATUS rpccli_netr_LogonGetDomainInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *server_name /* [in] [charset(UTF16)] */, + const char *server_name /* [in] [ref,charset(UTF16)] */, const char *computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, uint32_t level /* [in] */, - union netr_DomainQuery query /* [in] [switch_is(level)] */, + union netr_WorkstationInfo *query /* [in] [ref,switch_is(level)] */, union netr_DomainInfo *info /* [out] [ref,switch_is(level)] */) { struct netr_LogonGetDomainInfo r; @@ -5378,9 +5378,9 @@ struct tevent_req *rpccli_netr_ServerPasswordSet2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct netr_CryptPassword *_new_password /* [in] [ref] */) @@ -5499,9 +5499,9 @@ NTSTATUS rpccli_netr_ServerPasswordSet2_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerPasswordSet2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct netr_CryptPassword *new_password /* [in] [ref] */) @@ -5559,9 +5559,9 @@ struct tevent_req *rpccli_netr_ServerPasswordGet_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct samr_Password *_password /* [out] [ref] */) @@ -5681,9 +5681,9 @@ NTSTATUS rpccli_netr_ServerPasswordGet_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerPasswordGet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct samr_Password *password /* [out] [ref] */, @@ -7448,9 +7448,9 @@ struct tevent_req *rpccli_netr_ServerTrustPasswordsGet_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct samr_Password *_password /* [out] [ref] */, @@ -7573,9 +7573,9 @@ NTSTATUS rpccli_netr_ServerTrustPasswordsGet_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerTrustPasswordsGet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct samr_Password *password /* [out] [ref] */, diff --git a/librpc/gen_ndr/cli_netlogon.h b/librpc/gen_ndr/cli_netlogon.h index eb6b1933274..adbe176e6a9 100644 --- a/librpc/gen_ndr/cli_netlogon.h +++ b/librpc/gen_ndr/cli_netlogon.h @@ -5,8 +5,8 @@ struct tevent_req *rpccli_netr_LogonUasLogon_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, - const char *_workstation /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, + const char *_workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasInfo **_info /* [out] [ref] */); NTSTATUS rpccli_netr_LogonUasLogon_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, @@ -14,16 +14,16 @@ NTSTATUS rpccli_netr_LogonUasLogon_recv(struct tevent_req *req, NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, - const char *workstation /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, + const char *workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasInfo **info /* [out] [ref] */, WERROR *werror); struct tevent_req *rpccli_netr_LogonUasLogoff_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, - const char *_workstation /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, + const char *_workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasLogoffInfo *_info /* [out] [ref] */); NTSTATUS rpccli_netr_LogonUasLogoff_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, @@ -31,8 +31,8 @@ NTSTATUS rpccli_netr_LogonUasLogoff_recv(struct tevent_req *req, NTSTATUS rpccli_netr_LogonUasLogoff(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, - const char *workstation /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, + const char *workstation /* [in] [ref,charset(UTF16)] */, struct netr_UasLogoffInfo *info /* [out] [ref] */, WERROR *werror); struct tevent_req *rpccli_netr_LogonSamLogon_send(TALLOC_CTX *mem_ctx, @@ -85,7 +85,7 @@ struct tevent_req *rpccli_netr_ServerReqChallenge_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */); NTSTATUS rpccli_netr_ServerReqChallenge_recv(struct tevent_req *req, @@ -94,16 +94,16 @@ NTSTATUS rpccli_netr_ServerReqChallenge_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerReqChallenge(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */); struct tevent_req *rpccli_netr_ServerAuthenticate_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */); NTSTATUS rpccli_netr_ServerAuthenticate_recv(struct tevent_req *req, @@ -112,18 +112,18 @@ NTSTATUS rpccli_netr_ServerAuthenticate_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerAuthenticate(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */); struct tevent_req *rpccli_netr_ServerPasswordSet_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct samr_Password *_new_password /* [in] [ref] */); @@ -133,17 +133,17 @@ NTSTATUS rpccli_netr_ServerPasswordSet_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerPasswordSet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct samr_Password *new_password /* [in] [ref] */); struct tevent_req *rpccli_netr_DatabaseDeltas_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID _database_id /* [in] */, @@ -155,8 +155,8 @@ NTSTATUS rpccli_netr_DatabaseDeltas_recv(struct tevent_req *req, NTSTATUS *result); NTSTATUS rpccli_netr_DatabaseDeltas(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID database_id /* [in] */, @@ -166,8 +166,8 @@ NTSTATUS rpccli_netr_DatabaseDeltas(struct rpc_pipe_client *cli, struct tevent_req *rpccli_netr_DatabaseSync_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID _database_id /* [in] */, @@ -179,8 +179,8 @@ NTSTATUS rpccli_netr_DatabaseSync_recv(struct tevent_req *req, NTSTATUS *result); NTSTATUS rpccli_netr_DatabaseSync(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID database_id /* [in] */, @@ -191,7 +191,7 @@ struct tevent_req *rpccli_netr_AccountDeltas_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_logon_server /* [in] [unique,charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator _credential /* [in] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, struct netr_UAS_INFO_0 _uas /* [in] */, @@ -208,7 +208,7 @@ NTSTATUS rpccli_netr_AccountDeltas_recv(struct tevent_req *req, NTSTATUS rpccli_netr_AccountDeltas(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *logon_server /* [in] [unique,charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator credential /* [in] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, struct netr_UAS_INFO_0 uas /* [in] */, @@ -223,7 +223,7 @@ struct tevent_req *rpccli_netr_AccountSync_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_logon_server /* [in] [unique,charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator _credential /* [in] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, uint32_t _reference /* [in] */, @@ -240,7 +240,7 @@ NTSTATUS rpccli_netr_AccountSync_recv(struct tevent_req *req, NTSTATUS rpccli_netr_AccountSync(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *logon_server /* [in] [unique,charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator credential /* [in] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, uint32_t reference /* [in] */, @@ -254,7 +254,7 @@ NTSTATUS rpccli_netr_AccountSync(struct rpc_pipe_client *cli, struct tevent_req *rpccli_netr_GetDcName_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, const char *_domainname /* [in] [unique,charset(UTF16)] */, const char **_dcname /* [out] [ref,charset(UTF16)] */); NTSTATUS rpccli_netr_GetDcName_recv(struct tevent_req *req, @@ -262,7 +262,7 @@ NTSTATUS rpccli_netr_GetDcName_recv(struct tevent_req *req, WERROR *result); NTSTATUS rpccli_netr_GetDcName(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, const char *domainname /* [in] [unique,charset(UTF16)] */, const char **dcname /* [out] [ref,charset(UTF16)] */, WERROR *werror); @@ -321,9 +321,9 @@ struct tevent_req *rpccli_netr_ServerAuthenticate2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */, uint32_t *_negotiate_flags /* [in,out] [ref] */); @@ -333,17 +333,17 @@ NTSTATUS rpccli_netr_ServerAuthenticate2_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerAuthenticate2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */, uint32_t *negotiate_flags /* [in,out] [ref] */); struct tevent_req *rpccli_netr_DatabaseSync2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID _database_id /* [in] */, @@ -356,8 +356,8 @@ NTSTATUS rpccli_netr_DatabaseSync2_recv(struct tevent_req *req, NTSTATUS *result); NTSTATUS rpccli_netr_DatabaseSync2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, enum netr_SamDatabaseID database_id /* [in] */, @@ -368,8 +368,8 @@ NTSTATUS rpccli_netr_DatabaseSync2(struct rpc_pipe_client *cli, struct tevent_req *rpccli_netr_DatabaseRedo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_logon_server /* [in] [charset(UTF16)] */, - const char *_computername /* [in] [charset(UTF16)] */, + const char *_logon_server /* [in] [ref,charset(UTF16)] */, + const char *_computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, struct netr_ChangeLogEntry _change_log_entry /* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */, @@ -380,8 +380,8 @@ NTSTATUS rpccli_netr_DatabaseRedo_recv(struct tevent_req *req, NTSTATUS *result); NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *logon_server /* [in] [charset(UTF16)] */, - const char *computername /* [in] [charset(UTF16)] */, + const char *logon_server /* [in] [ref,charset(UTF16)] */, + const char *computername /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, struct netr_ChangeLogEntry change_log_entry /* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */, @@ -443,7 +443,7 @@ NTSTATUS rpccli_netr_DsRGetDCName(struct rpc_pipe_client *cli, struct tevent_req *rpccli_netr_LogonGetCapabilities_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_server_name /* [in] [charset(UTF16)] */, + const char *_server_name /* [in] [ref,charset(UTF16)] */, const char *_computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, @@ -454,7 +454,7 @@ NTSTATUS rpccli_netr_LogonGetCapabilities_recv(struct tevent_req *req, NTSTATUS *result); NTSTATUS rpccli_netr_LogonGetCapabilities(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *server_name /* [in] [charset(UTF16)] */, + const char *server_name /* [in] [ref,charset(UTF16)] */, const char *computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, @@ -506,9 +506,9 @@ struct tevent_req *rpccli_netr_ServerAuthenticate3_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *_credentials /* [in] [ref] */, struct netr_Credential *_return_credentials /* [out] [ref] */, uint32_t *_negotiate_flags /* [in,out] [ref] */, @@ -519,9 +519,9 @@ NTSTATUS rpccli_netr_ServerAuthenticate3_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerAuthenticate3(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Credential *credentials /* [in] [ref] */, struct netr_Credential *return_credentials /* [out] [ref] */, uint32_t *negotiate_flags /* [in,out] [ref] */, @@ -563,32 +563,32 @@ NTSTATUS rpccli_netr_DsRGetSiteName(struct rpc_pipe_client *cli, struct tevent_req *rpccli_netr_LogonGetDomainInfo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, - const char *_server_name /* [in] [charset(UTF16)] */, + const char *_server_name /* [in] [ref,charset(UTF16)] */, const char *_computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */, uint32_t _level /* [in] */, - union netr_DomainQuery _query /* [in] [switch_is(level)] */, + union netr_WorkstationInfo *_query /* [in] [ref,switch_is(level)] */, union netr_DomainInfo *_info /* [out] [ref,switch_is(level)] */); NTSTATUS rpccli_netr_LogonGetDomainInfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, NTSTATUS *result); NTSTATUS rpccli_netr_LogonGetDomainInfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - const char *server_name /* [in] [charset(UTF16)] */, + const char *server_name /* [in] [ref,charset(UTF16)] */, const char *computer_name /* [in] [unique,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [in,out] [ref] */, uint32_t level /* [in] */, - union netr_DomainQuery query /* [in] [switch_is(level)] */, + union netr_WorkstationInfo *query /* [in] [ref,switch_is(level)] */, union netr_DomainInfo *info /* [out] [ref,switch_is(level)] */); struct tevent_req *rpccli_netr_ServerPasswordSet2_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct netr_CryptPassword *_new_password /* [in] [ref] */); @@ -598,9 +598,9 @@ NTSTATUS rpccli_netr_ServerPasswordSet2_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerPasswordSet2(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct netr_CryptPassword *new_password /* [in] [ref] */); @@ -608,9 +608,9 @@ struct tevent_req *rpccli_netr_ServerPasswordGet_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct samr_Password *_password /* [out] [ref] */); @@ -620,9 +620,9 @@ NTSTATUS rpccli_netr_ServerPasswordGet_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerPasswordGet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct samr_Password *password /* [out] [ref] */, @@ -792,9 +792,9 @@ struct tevent_req *rpccli_netr_ServerTrustPasswordsGet_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct rpc_pipe_client *cli, const char *_server_name /* [in] [unique,charset(UTF16)] */, - const char *_account_name /* [in] [charset(UTF16)] */, + const char *_account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType _secure_channel_type /* [in] */, - const char *_computer_name /* [in] [charset(UTF16)] */, + const char *_computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *_credential /* [in] [ref] */, struct netr_Authenticator *_return_authenticator /* [out] [ref] */, struct samr_Password *_password /* [out] [ref] */, @@ -805,9 +805,9 @@ NTSTATUS rpccli_netr_ServerTrustPasswordsGet_recv(struct tevent_req *req, NTSTATUS rpccli_netr_ServerTrustPasswordsGet(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *server_name /* [in] [unique,charset(UTF16)] */, - const char *account_name /* [in] [charset(UTF16)] */, + const char *account_name /* [in] [ref,charset(UTF16)] */, enum netr_SchannelType secure_channel_type /* [in] */, - const char *computer_name /* [in] [charset(UTF16)] */, + const char *computer_name /* [in] [ref,charset(UTF16)] */, struct netr_Authenticator *credential /* [in] [ref] */, struct netr_Authenticator *return_authenticator /* [out] [ref] */, struct samr_Password *password /* [out] [ref] */, diff --git a/librpc/gen_ndr/ndr_netlogon.c b/librpc/gen_ndr/ndr_netlogon.c index 8db8c112767..82d2dca1fe0 100644 --- a/librpc/gen_ndr/ndr_netlogon.c +++ b/librpc/gen_ndr/ndr_netlogon.c @@ -7213,287 +7213,577 @@ _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, ndr->depth--; } -static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r) +static enum ndr_err_code ndr_push_netr_WorkstationFlags(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_netr_WorkstationFlags(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_netr_WorkstationFlags(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), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r); + ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_netr_SuiteMask(struct ndr_push *ndr, int ndr_flags, uint16_t r) +{ + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r)); + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_netr_SuiteMask(struct ndr_pull *ndr, int ndr_flags, uint16_t *r) +{ + uint16_t v; + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v)); + *r = v; + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_netr_SuiteMask(struct ndr_print *ndr, const char *name, uint16_t r) +{ + ndr_print_uint16(ndr, name, r); + ndr->depth++; + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL, r); + ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER, r); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_netr_ProductType(struct ndr_push *ndr, int ndr_flags, uint8_t r) +{ + NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r)); + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_netr_ProductType(struct ndr_pull *ndr, int ndr_flags, uint8_t *r) +{ + uint8_t v; + NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v)); + *r = v; + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_netr_ProductType(struct ndr_print *ndr, const char *name, uint8_t r) +{ + ndr_print_uint8(ndr, name, r); + ndr->depth++; + ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER, r); + ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER, r); + ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION, r); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_netr_LsaPolicyInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInformation *r) { - uint32_t cntr_unknown7_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4)); - NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->blob2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6)); - for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0])); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->policy) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size)); + NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_netr_LsaPolicyInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInformation *r) +{ + uint32_t _ptr_policy; + TALLOC_CTX *_mem_save_policy_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy)); + if (_ptr_policy) { + NDR_PULL_ALLOC(ndr, r->policy); + } else { + r->policy = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->policy) { + _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->policy)); + NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy)); + NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy))); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0); + } + if (r->policy) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size)); } } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_netr_LsaPolicyInformation(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInformation *r) +{ + ndr_print_struct(ndr, name, "netr_LsaPolicyInformation"); + ndr->depth++; + ndr_print_uint32(ndr, "policy_size", r->policy_size); + ndr_print_ptr(ndr, "policy", r->policy); + ndr->depth++; + if (r->policy) { + ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_netr_OsVersionInfoEx(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionInfoEx *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 284)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MajorVersion)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MinorVersion)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->BuildNumber)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PlatformId)); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CSDVersion, 128, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMajor)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMinor)); + NDR_CHECK(ndr_push_netr_SuiteMask(ndr, NDR_SCALARS, r->SuiteMask)); + NDR_CHECK(ndr_push_netr_ProductType(ndr, NDR_SCALARS, r->ProductType)); + NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Reserved)); + } if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob)); - if (r->workstation_domain) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16))); + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_netr_OsVersionInfoEx(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionInfoEx *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->OSVersionInfoSize)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MajorVersion)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MinorVersion)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->BuildNumber)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PlatformId)); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CSDVersion, 128, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMajor)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMinor)); + NDR_CHECK(ndr_pull_netr_SuiteMask(ndr, NDR_SCALARS, &r->SuiteMask)); + NDR_CHECK(ndr_pull_netr_ProductType(ndr, NDR_SCALARS, &r->ProductType)); + NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Reserved)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_netr_OsVersionInfoEx(struct ndr_print *ndr, const char *name, const struct netr_OsVersionInfoEx *r) +{ + ndr_print_struct(ndr, name, "netr_OsVersionInfoEx"); + ndr->depth++; + ndr_print_uint32(ndr, "OSVersionInfoSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?284:r->OSVersionInfoSize); + ndr_print_uint32(ndr, "MajorVersion", r->MajorVersion); + ndr_print_uint32(ndr, "MinorVersion", r->MinorVersion); + ndr_print_uint32(ndr, "BuildNumber", r->BuildNumber); + ndr_print_uint32(ndr, "PlatformId", r->PlatformId); + ndr_print_string(ndr, "CSDVersion", r->CSDVersion); + ndr_print_uint16(ndr, "ServicePackMajor", r->ServicePackMajor); + ndr_print_uint16(ndr, "ServicePackMinor", r->ServicePackMinor); + ndr_print_netr_SuiteMask(ndr, "SuiteMask", r->SuiteMask); + ndr_print_netr_ProductType(ndr, "ProductType", r->ProductType); + ndr_print_uint8(ndr, "Reserved", r->Reserved); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_netr_OsVersion(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersion *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142)); + NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_netr_OsVersion(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersion *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size)); + NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_netr_OsVersion(struct ndr_print *ndr, const char *name, const struct netr_OsVersion *r) +{ + ndr_print_struct(ndr, name, "netr_OsVersion"); + ndr->depth++; + ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->length); + ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy); + ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->size); + ndr_print_netr_OsVersionInfoEx(ndr, "os", &r->os); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_netr_OsVersionContainer(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionContainer *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->os)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->os) { + NDR_CHECK(ndr_push_netr_OsVersion(ndr, NDR_SCALARS, r->os)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_netr_OsVersionContainer(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionContainer *r) +{ + uint32_t _ptr_os; + TALLOC_CTX *_mem_save_os_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_os)); + if (_ptr_os) { + NDR_PULL_ALLOC(ndr, r->os); + } else { + r->os = NULL; + } + } + if (ndr_flags & NDR_BUFFERS) { + if (r->os) { + _mem_save_os_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->os, 0); + NDR_CHECK(ndr_pull_netr_OsVersion(ndr, NDR_SCALARS, r->os)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_os_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_netr_OsVersionContainer(struct ndr_print *ndr, const char *name, const struct netr_OsVersionContainer *r) +{ + ndr_print_struct(ndr, name, "netr_OsVersionContainer"); + ndr->depth++; + ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->length); + ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->size); + ndr_print_ptr(ndr, "os", r->os); + ndr->depth++; + if (r->os) { + ndr_print_netr_OsVersion(ndr, "os", r->os); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_netr_WorkstationInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_WorkstationInformation *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 4)); + NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_hostname)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy1)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy2)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy3)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy4)); + NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->os_name)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4)); + NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4)); + } + if (ndr_flags & NDR_BUFFERS) { + NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy)); + if (r->dns_hostname) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_hostname, ndr_charset_length(r->dns_hostname, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - if (r->workstation_site) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16))); + if (r->sitename) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sitename, ndr_charset_length(r->sitename, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - if (r->unknown1) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16))); + if (r->dummy1) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, 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)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy1, ndr_charset_length(r->dummy1, 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))); + if (r->dummy2) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, 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)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy2, ndr_charset_length(r->dummy2, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - if (r->unknown3) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16))); + if (r->dummy3) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy3, ndr_charset_length(r->dummy3, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - if (r->unknown4) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16))); + if (r->dummy4) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy4, ndr_charset_length(r->dummy4, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } - NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->blob2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6)); + NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->os_name)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r) +static enum ndr_err_code ndr_pull_netr_WorkstationInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_WorkstationInformation *r) { - uint32_t _ptr_workstation_domain; - TALLOC_CTX *_mem_save_workstation_domain_0; - uint32_t _ptr_workstation_site; - TALLOC_CTX *_mem_save_workstation_site_0; - uint32_t _ptr_unknown1; - TALLOC_CTX *_mem_save_unknown1_0; - uint32_t _ptr_unknown2; - TALLOC_CTX *_mem_save_unknown2_0; - uint32_t _ptr_unknown3; - TALLOC_CTX *_mem_save_unknown3_0; - uint32_t _ptr_unknown4; - TALLOC_CTX *_mem_save_unknown4_0; - uint32_t cntr_unknown7_0; + uint32_t _ptr_dns_hostname; + TALLOC_CTX *_mem_save_dns_hostname_0; + uint32_t _ptr_sitename; + TALLOC_CTX *_mem_save_sitename_0; + uint32_t _ptr_dummy1; + TALLOC_CTX *_mem_save_dummy1_0; + uint32_t _ptr_dummy2; + TALLOC_CTX *_mem_save_dummy2_0; + uint32_t _ptr_dummy3; + TALLOC_CTX *_mem_save_dummy3_0; + uint32_t _ptr_dummy4; + TALLOC_CTX *_mem_save_dummy4_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain)); - if (_ptr_workstation_domain) { - NDR_PULL_ALLOC(ndr, r->workstation_domain); + NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_hostname)); + if (_ptr_dns_hostname) { + NDR_PULL_ALLOC(ndr, r->dns_hostname); } else { - r->workstation_domain = NULL; + r->dns_hostname = NULL; } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site)); - if (_ptr_workstation_site) { - NDR_PULL_ALLOC(ndr, r->workstation_site); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename)); + if (_ptr_sitename) { + NDR_PULL_ALLOC(ndr, r->sitename); } else { - r->workstation_site = NULL; + r->sitename = NULL; } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1)); - if (_ptr_unknown1) { - NDR_PULL_ALLOC(ndr, r->unknown1); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy1)); + if (_ptr_dummy1) { + NDR_PULL_ALLOC(ndr, r->dummy1); } else { - r->unknown1 = NULL; + r->dummy1 = NULL; } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2)); - if (_ptr_unknown2) { - NDR_PULL_ALLOC(ndr, r->unknown2); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy2)); + if (_ptr_dummy2) { + NDR_PULL_ALLOC(ndr, r->dummy2); } else { - r->unknown2 = NULL; + r->dummy2 = NULL; } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3)); - if (_ptr_unknown3) { - NDR_PULL_ALLOC(ndr, r->unknown3); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy3)); + if (_ptr_dummy3) { + NDR_PULL_ALLOC(ndr, r->dummy3); } else { - r->unknown3 = NULL; + r->dummy3 = NULL; } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4)); - if (_ptr_unknown4) { - NDR_PULL_ALLOC(ndr, r->unknown4); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy4)); + if (_ptr_dummy4) { + NDR_PULL_ALLOC(ndr, r->dummy4); } else { - r->unknown4 = NULL; - } - NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->blob2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6)); - for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0])); + r->dummy4 = NULL; } + NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->os_name)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4)); + NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4)); } if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob)); - if (r->workstation_domain) { - _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain)); - if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_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->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain)); + NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy)); + if (r->dns_hostname) { + _mem_save_dns_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->dns_hostname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_hostname)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_hostname)); + if (ndr_get_array_length(ndr, &r->dns_hostname) > ndr_get_array_size(ndr, &r->dns_hostname)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_hostname), ndr_get_array_length(ndr, &r->dns_hostname)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0); - } - if (r->workstation_site) { - _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site)); - if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site)); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_hostname, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_hostname_0, 0); + } + if (r->sitename) { + _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->sitename)); + if (ndr_get_array_length(ndr, &r->sitename) > ndr_get_array_size(ndr, &r->sitename)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sitename), ndr_get_array_length(ndr, &r->sitename)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0); - } - 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->sitename), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sitename, ndr_get_array_length(ndr, &r->sitename), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0); + } + if (r->dummy1) { + _mem_save_dummy1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->dummy1, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy1)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy1)); + if (ndr_get_array_length(ndr, &r->dummy1) > ndr_get_array_size(ndr, &r->dummy1)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy1), ndr_get_array_length(ndr, &r->dummy1)); } - 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->dummy1), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy1, ndr_get_array_length(ndr, &r->dummy1), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy1_0, 0); + } + if (r->dummy2) { + _mem_save_dummy2_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->dummy2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy2)); + if (ndr_get_array_length(ndr, &r->dummy2) > ndr_get_array_size(ndr, &r->dummy2)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy2), ndr_get_array_length(ndr, &r->dummy2)); } - 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); - } - if (r->unknown3) { - _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3)); - if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3)); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy2, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy2_0, 0); + } + if (r->dummy3) { + _mem_save_dummy3_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->dummy3, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy3)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy3)); + if (ndr_get_array_length(ndr, &r->dummy3) > ndr_get_array_size(ndr, &r->dummy3)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy3), ndr_get_array_length(ndr, &r->dummy3)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0); - } - if (r->unknown4) { - _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4)); - if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4)); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy3, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy3_0, 0); + } + if (r->dummy4) { + _mem_save_dummy4_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->dummy4, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy4)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy4)); + if (ndr_get_array_length(ndr, &r->dummy4) > ndr_get_array_size(ndr, &r->dummy4)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy4), ndr_get_array_length(ndr, &r->dummy4)); } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0); + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy4, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy4_0, 0); } - NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->blob2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6)); + NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->os_name)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r) +_PUBLIC_ void ndr_print_netr_WorkstationInformation(struct ndr_print *ndr, const char *name, const struct netr_WorkstationInformation *r) { - uint32_t cntr_unknown7_0; - ndr_print_struct(ndr, name, "netr_DomainQuery1"); + ndr_print_struct(ndr, name, "netr_WorkstationInformation"); ndr->depth++; - ndr_print_netr_Blob(ndr, "blob", &r->blob); - ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain); + ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy); + ndr_print_ptr(ndr, "dns_hostname", r->dns_hostname); ndr->depth++; - if (r->workstation_domain) { - ndr_print_string(ndr, "workstation_domain", r->workstation_domain); + if (r->dns_hostname) { + ndr_print_string(ndr, "dns_hostname", r->dns_hostname); } ndr->depth--; - ndr_print_ptr(ndr, "workstation_site", r->workstation_site); + ndr_print_ptr(ndr, "sitename", r->sitename); ndr->depth++; - if (r->workstation_site) { - ndr_print_string(ndr, "workstation_site", r->workstation_site); + if (r->sitename) { + ndr_print_string(ndr, "sitename", r->sitename); } ndr->depth--; - ndr_print_ptr(ndr, "unknown1", r->unknown1); + ndr_print_ptr(ndr, "dummy1", r->dummy1); ndr->depth++; - if (r->unknown1) { - ndr_print_string(ndr, "unknown1", r->unknown1); + if (r->dummy1) { + ndr_print_string(ndr, "dummy1", r->dummy1); } ndr->depth--; - ndr_print_ptr(ndr, "unknown2", r->unknown2); + ndr_print_ptr(ndr, "dummy2", r->dummy2); ndr->depth++; - if (r->unknown2) { - ndr_print_string(ndr, "unknown2", r->unknown2); + if (r->dummy2) { + ndr_print_string(ndr, "dummy2", r->dummy2); } ndr->depth--; - ndr_print_ptr(ndr, "unknown3", r->unknown3); + ndr_print_ptr(ndr, "dummy3", r->dummy3); ndr->depth++; - if (r->unknown3) { - ndr_print_string(ndr, "unknown3", r->unknown3); + if (r->dummy3) { + ndr_print_string(ndr, "dummy3", r->dummy3); } ndr->depth--; - ndr_print_ptr(ndr, "unknown4", r->unknown4); + ndr_print_ptr(ndr, "dummy4", r->dummy4); ndr->depth++; - if (r->unknown4) { - ndr_print_string(ndr, "unknown4", r->unknown4); - } - ndr->depth--; - ndr_print_lsa_BinaryString(ndr, "blob2", &r->blob2); - ndr_print_lsa_String(ndr, "product", &r->product); - ndr_print_lsa_String(ndr, "unknown5", &r->unknown5); - ndr_print_lsa_String(ndr, "unknown6", &r->unknown6); - ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4); - ndr->depth++; - for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) { - char *idx_0=NULL; - if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) { - ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]); - free(idx_0); - } + if (r->dummy4) { + ndr_print_string(ndr, "dummy4", r->dummy4); } ndr->depth--; + ndr_print_netr_OsVersionContainer(ndr, "os_version", &r->os_version); + ndr_print_lsa_String(ndr, "os_name", &r->os_name); + ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3); + ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4); + ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags); + ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2); + ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3); + ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4); ndr->depth--; } -static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r) +static enum ndr_err_code ndr_push_netr_WorkstationInfo(struct ndr_push *ndr, int ndr_flags, const union netr_WorkstationInfo *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 1: { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_info)); break; } case 2: { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info)); break; } default: @@ -7504,14 +7794,14 @@ static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr int level = ndr_push_get_switch_value(ndr, r); switch (level) { case 1: - if (r->query1) { - NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); + if (r->workstation_info) { + NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info)); } break; case 2: - if (r->query1) { - NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); + if (r->lsa_policy_info) { + NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info)); } break; @@ -7522,11 +7812,12 @@ static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r) +static enum ndr_err_code ndr_pull_netr_WorkstationInfo(struct ndr_pull *ndr, int ndr_flags, union netr_WorkstationInfo *r) { int level; uint32_t _level; - TALLOC_CTX *_mem_save_query1_0; + TALLOC_CTX *_mem_save_workstation_info_0; + TALLOC_CTX *_mem_save_lsa_policy_info_0; level = ndr_pull_get_switch_value(ndr, r); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); @@ -7535,22 +7826,22 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr } switch (level) { case 1: { - uint32_t _ptr_query1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1)); - if (_ptr_query1) { - NDR_PULL_ALLOC(ndr, r->query1); + uint32_t _ptr_workstation_info; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_info)); + if (_ptr_workstation_info) { + NDR_PULL_ALLOC(ndr, r->workstation_info); } else { - r->query1 = NULL; + r->workstation_info = NULL; } break; } case 2: { - uint32_t _ptr_query1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1)); - if (_ptr_query1) { - NDR_PULL_ALLOC(ndr, r->query1); + uint32_t _ptr_lsa_policy_info; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info)); + if (_ptr_lsa_policy_info) { + NDR_PULL_ALLOC(ndr, r->lsa_policy_info); } else { - r->query1 = NULL; + r->lsa_policy_info = NULL; } break; } @@ -7561,20 +7852,20 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr if (ndr_flags & NDR_BUFFERS) { switch (level) { case 1: - if (r->query1) { - _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0); - NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0); + if (r->workstation_info) { + _mem_save_workstation_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->workstation_info, 0); + NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_info_0, 0); } break; case 2: - if (r->query1) { - _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0); - NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0); + if (r->lsa_policy_info) { + _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0); + NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0); } break; @@ -7585,26 +7876,26 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r) +_PUBLIC_ void ndr_print_netr_WorkstationInfo(struct ndr_print *ndr, const char *name, const union netr_WorkstationInfo *r) { int level; level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_DomainQuery"); + ndr_print_union(ndr, name, level, "netr_WorkstationInfo"); switch (level) { case 1: - ndr_print_ptr(ndr, "query1", r->query1); + ndr_print_ptr(ndr, "workstation_info", r->workstation_info); ndr->depth++; - if (r->query1) { - ndr_print_netr_DomainQuery1(ndr, "query1", r->query1); + if (r->workstation_info) { + ndr_print_netr_WorkstationInformation(ndr, "workstation_info", r->workstation_info); } ndr->depth--; break; case 2: - ndr_print_ptr(ndr, "query1", r->query1); + ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info); ndr->depth++; - if (r->query1) { - ndr_print_netr_DomainQuery1(ndr, "query1", r->query1); + if (r->lsa_policy_info) { + ndr_print_netr_WorkstationInformation(ndr, "lsa_policy_info", r->lsa_policy_info); } ndr->depth--; break; @@ -7719,355 +8010,232 @@ _PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, co ndr->depth--; } -static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r) +static enum ndr_err_code ndr_push_netr_OneDomainInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_OneDomainInfo *r) { - uint32_t cntr_dummystring_0; - uint32_t cntr_dummy_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest)); - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_domainname)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_forestname)); + NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid)); NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0])); - } - for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0])); - } + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long1)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4)); } if (ndr_flags & NDR_BUFFERS) { NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest)); - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_domainname)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_forestname)); + if (r->domain_sid) { + NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid)); } NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0])); - } + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r) +static enum ndr_err_code ndr_pull_netr_OneDomainInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_OneDomainInfo *r) { - uint32_t _ptr_sid; - TALLOC_CTX *_mem_save_sid_0; - uint32_t cntr_dummystring_0; - uint32_t cntr_dummy_0; + uint32_t _ptr_domain_sid; + TALLOC_CTX *_mem_save_domain_sid_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest)); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_domainname)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_forestname)); + NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid)); + if (_ptr_domain_sid) { + NDR_PULL_ALLOC(ndr, r->domain_sid); } else { - r->sid = NULL; + r->domain_sid = NULL; } NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0])); - } - for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0])); - } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long1)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4)); } if (ndr_flags & NDR_BUFFERS) { NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest)); - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_domainname)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_forestname)); + if (r->domain_sid) { + _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0); + NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0); } NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0])); - } - } - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r) -{ - uint32_t cntr_dummystring_0; - uint32_t cntr_dummy_0; - ndr_print_struct(ndr, name, "netr_DomainTrustInfo"); - ndr->depth++; - ndr_print_lsa_String(ndr, "domainname", &r->domainname); - ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname); - ndr_print_lsa_String(ndr, "forest", &r->forest); - ndr_print_GUID(ndr, "guid", &r->guid); - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension); - ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3); - ndr->depth++; - for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) { - char *idx_0=NULL; - if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) { - ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)4); - ndr->depth++; - for (cntr_dummy_0=0;cntr_dummy_0<4;cntr_dummy_0++) { - char *idx_0=NULL; - if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) { - ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->depth--; -} - -static enum ndr_err_code ndr_push_netr_LsaPolicyInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->policy) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size)); - } - } - return NDR_ERR_SUCCESS; -} - -static enum ndr_err_code ndr_pull_netr_LsaPolicyInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInfo *r) -{ - uint32_t _ptr_policy; - TALLOC_CTX *_mem_save_policy_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy)); - if (_ptr_policy) { - NDR_PULL_ALLOC(ndr, r->policy); - } else { - r->policy = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->policy) { - _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->policy)); - NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0); - } - if (r->policy) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size)); - } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4)); } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_netr_LsaPolicyInfo(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInfo *r) +_PUBLIC_ void ndr_print_netr_OneDomainInfo(struct ndr_print *ndr, const char *name, const struct netr_OneDomainInfo *r) { - ndr_print_struct(ndr, name, "netr_LsaPolicyInfo"); + ndr_print_struct(ndr, name, "netr_OneDomainInfo"); ndr->depth++; - ndr_print_uint32(ndr, "policy_size", r->policy_size); - ndr_print_ptr(ndr, "policy", r->policy); + ndr_print_lsa_String(ndr, "domainname", &r->domainname); + ndr_print_lsa_String(ndr, "dns_domainname", &r->dns_domainname); + ndr_print_lsa_String(ndr, "dns_forestname", &r->dns_forestname); + ndr_print_GUID(ndr, "domain_guid", &r->domain_guid); + ndr_print_ptr(ndr, "domain_sid", r->domain_sid); ndr->depth++; - if (r->policy) { - ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size); + if (r->domain_sid) { + ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid); } ndr->depth--; + ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension); + ndr_print_lsa_String(ndr, "dummy_string2", &r->dummy_string2); + ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3); + ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4); + ndr_print_uint32(ndr, "dummy_long1", r->dummy_long1); + ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2); + ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3); + ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4); ndr->depth--; } -_PUBLIC_ enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r) -{ - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); - return NDR_ERR_SUCCESS; -} - -_PUBLIC_ enum ndr_err_code ndr_pull_netr_WorkstationFlags(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_netr_WorkstationFlags(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), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r); - ndr->depth--; -} - -static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r) +static enum ndr_err_code ndr_push_netr_DomainInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInformation *r) { - uint32_t cntr_trusts_1; - uint32_t cntr_dummystring_0; - uint32_t cntr_dummy_0; + uint32_t cntr_trusted_domains_1; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts)); - NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy)); + NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trusted_domain_count)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domains)); + NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy)); NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0])); - } + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4)); NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->supported_enc_types)); - for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0])); - } + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4)); } if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo)); - if (r->trusts) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts)); - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1])); + NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain)); + if (r->trusted_domains) { + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trusted_domain_count)); + for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) { + NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1])); } - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1])); + for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) { + NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1])); } } - NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy)); + NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy)); NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0])); - } + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3)); + NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4)); } return NDR_ERR_SUCCESS; } -static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r) +static enum ndr_err_code ndr_pull_netr_DomainInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInformation *r) { - uint32_t _ptr_trusts; - uint32_t cntr_trusts_1; - TALLOC_CTX *_mem_save_trusts_0; - TALLOC_CTX *_mem_save_trusts_1; - uint32_t cntr_dummystring_0; - uint32_t cntr_dummy_0; + uint32_t _ptr_trusted_domains; + uint32_t cntr_trusted_domains_1; + TALLOC_CTX *_mem_save_trusted_domains_0; + TALLOC_CTX *_mem_save_trusted_domains_1; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts)); - if (_ptr_trusts) { - NDR_PULL_ALLOC(ndr, r->trusts); + NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trusted_domain_count)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domains)); + if (_ptr_trusted_domains) { + NDR_PULL_ALLOC(ndr, r->trusted_domains); } else { - r->trusts = NULL; + r->trusted_domains = NULL; } - NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy)); + NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy)); NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0])); - } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4)); NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->supported_enc_types)); - for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0])); - } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4)); } if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo)); - if (r->trusts) { - _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts)); - NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts)); - _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0); - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1])); + NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain)); + if (r->trusted_domains) { + _mem_save_trusted_domains_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domains)); + NDR_PULL_ALLOC_N(ndr, r->trusted_domains, ndr_get_array_size(ndr, &r->trusted_domains)); + _mem_save_trusted_domains_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0); + for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) { + NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1])); } - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1])); + for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) { + NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1])); } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_1, 0); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_0, 0); } - NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy)); + NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy)); NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname)); - for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0])); - } - if (r->trusts) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4)); + if (r->trusted_domains) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusted_domains, r->trusted_domain_count)); } } return NDR_ERR_SUCCESS; } -_PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r) +_PUBLIC_ void ndr_print_netr_DomainInformation(struct ndr_print *ndr, const char *name, const struct netr_DomainInformation *r) { - uint32_t cntr_trusts_1; - uint32_t cntr_dummystring_0; - uint32_t cntr_dummy_0; - ndr_print_struct(ndr, name, "netr_DomainInfo1"); + uint32_t cntr_trusted_domains_1; + ndr_print_struct(ndr, name, "netr_DomainInformation"); ndr->depth++; - ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo); - ndr_print_uint32(ndr, "num_trusts", r->num_trusts); - ndr_print_ptr(ndr, "trusts", r->trusts); + ndr_print_netr_OneDomainInfo(ndr, "primary_domain", &r->primary_domain); + ndr_print_uint32(ndr, "trusted_domain_count", r->trusted_domain_count); + ndr_print_ptr(ndr, "trusted_domains", r->trusted_domains); ndr->depth++; - if (r->trusts) { - ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts); + if (r->trusted_domains) { + ndr->print(ndr, "%s: ARRAY(%d)", "trusted_domains", (int)r->trusted_domain_count); ndr->depth++; - for (cntr_trusts_1=0;cntr_trusts_1num_trusts;cntr_trusts_1++) { + for (cntr_trusted_domains_1=0;cntr_trusted_domains_1trusted_domain_count;cntr_trusted_domains_1++) { char *idx_1=NULL; - if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) { - ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]); + if (asprintf(&idx_1, "[%d]", cntr_trusted_domains_1) != -1) { + ndr_print_netr_OneDomainInfo(ndr, "trusted_domains", &r->trusted_domains[cntr_trusted_domains_1]); free(idx_1); } } ndr->depth--; } ndr->depth--; - ndr_print_netr_LsaPolicyInfo(ndr, "lsa_policy", &r->lsa_policy); + ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy); ndr_print_lsa_String(ndr, "dns_hostname", &r->dns_hostname); - ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3); - ndr->depth++; - for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) { - char *idx_0=NULL; - if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) { - ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]); - free(idx_0); - } - } - ndr->depth--; + ndr_print_lsa_String(ndr, "dummy_string2", &r->dummy_string2); + ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3); + ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4); ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags); ndr_print_uint32(ndr, "supported_enc_types", r->supported_enc_types); - ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)2); - ndr->depth++; - for (cntr_dummy_0=0;cntr_dummy_0<2;cntr_dummy_0++) { - char *idx_0=NULL; - if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) { - ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]); - free(idx_0); - } - } - ndr->depth--; + ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3); + ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4); ndr->depth--; } @@ -8078,11 +8246,11 @@ static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); switch (level) { case 1: { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_info)); break; } case 2: { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2)); + NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info)); break; } default: @@ -8093,14 +8261,14 @@ static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_ int level = ndr_push_get_switch_value(ndr, r); switch (level) { case 1: - if (r->info1) { - NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); + if (r->domain_info) { + NDR_CHECK(ndr_push_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info)); } break; case 2: - if (r->info2) { - NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2)); + if (r->lsa_policy_info) { + NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info)); } break; @@ -8115,8 +8283,8 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_ { int level; uint32_t _level; - TALLOC_CTX *_mem_save_info1_0; - TALLOC_CTX *_mem_save_info2_0; + TALLOC_CTX *_mem_save_domain_info_0; + TALLOC_CTX *_mem_save_lsa_policy_info_0; level = ndr_pull_get_switch_value(ndr, r); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); @@ -8125,22 +8293,22 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_ } switch (level) { case 1: { - uint32_t _ptr_info1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); - if (_ptr_info1) { - NDR_PULL_ALLOC(ndr, r->info1); + uint32_t _ptr_domain_info; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_info)); + if (_ptr_domain_info) { + NDR_PULL_ALLOC(ndr, r->domain_info); } else { - r->info1 = NULL; + r->domain_info = 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); + uint32_t _ptr_lsa_policy_info; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info)); + if (_ptr_lsa_policy_info) { + NDR_PULL_ALLOC(ndr, r->lsa_policy_info); } else { - r->info2 = NULL; + r->lsa_policy_info = NULL; } break; } @@ -8151,20 +8319,20 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_ if (ndr_flags & NDR_BUFFERS) { switch (level) { 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_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0); + if (r->domain_info) { + _mem_save_domain_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domain_info, 0); + NDR_CHECK(ndr_pull_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_info_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_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0); + if (r->lsa_policy_info) { + _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0); + NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0); } break; @@ -8182,19 +8350,19 @@ _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, ndr_print_union(ndr, name, level, "netr_DomainInfo"); switch (level) { case 1: - ndr_print_ptr(ndr, "info1", r->info1); + ndr_print_ptr(ndr, "domain_info", r->domain_info); ndr->depth++; - if (r->info1) { - ndr_print_netr_DomainInfo1(ndr, "info1", r->info1); + if (r->domain_info) { + ndr_print_netr_DomainInformation(ndr, "domain_info", r->domain_info); } ndr->depth--; break; case 2: - ndr_print_ptr(ndr, "info2", r->info2); + ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info); ndr->depth++; - if (r->info2) { - ndr_print_netr_DomainInfo1(ndr, "info2", r->info2); + if (r->lsa_policy_info) { + ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy_info", r->lsa_policy_info); } ndr->depth--; break; @@ -9048,10 +9216,16 @@ static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int f 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.account_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.account_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.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)); + if (r->in.workstation == 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.workstation, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16))); @@ -9155,9 +9329,15 @@ _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *na ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; + ndr_print_ptr(ndr, "workstation", r->in.workstation); + ndr->depth++; ndr_print_string(ndr, "workstation", r->in.workstation); ndr->depth--; + ndr->depth--; } if (flags & NDR_OUT) { ndr_print_struct(ndr, "out", "netr_LogonUasLogon"); @@ -9187,10 +9367,16 @@ static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int 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.account_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.account_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.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)); + if (r->in.workstation == 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.workstation, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16))); @@ -9278,9 +9464,15 @@ _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *n ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; + ndr_print_ptr(ndr, "workstation", r->in.workstation); + ndr->depth++; ndr_print_string(ndr, "workstation", r->in.workstation); ndr->depth--; + ndr->depth--; } if (flags & NDR_OUT) { ndr_print_struct(ndr, "out", "netr_LogonUasLogoff"); @@ -9736,6 +9928,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(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)); } + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -9828,7 +10023,10 @@ _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const cha ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credentials", r->in.credentials); ndr->depth++; ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); @@ -9858,11 +10056,17 @@ static enum ndr_err_code ndr_push_netr_ServerAuthenticate(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)); } + if (r->in.account_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.account_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.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_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -9963,9 +10167,15 @@ _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const cha ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credentials", r->in.credentials); ndr->depth++; ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); @@ -9995,11 +10205,17 @@ static enum ndr_err_code ndr_push_netr_ServerPasswordSet(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.account_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.account_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.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_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -10112,9 +10328,15 @@ _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); @@ -10141,10 +10363,16 @@ _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r) { if (flags & NDR_IN) { + if (r->in.logon_server == 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.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->in.logon_server, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + if (r->in.computername == 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.computername, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); @@ -10288,8 +10516,14 @@ _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *n if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "netr_DatabaseDeltas"); ndr->depth++; + ndr_print_ptr(ndr, "logon_server", r->in.logon_server); + ndr->depth++; ndr_print_string(ndr, "logon_server", r->in.logon_server); + ndr->depth--; + ndr_print_ptr(ndr, "computername", r->in.computername); + ndr->depth++; ndr_print_string(ndr, "computername", r->in.computername); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); @@ -10335,10 +10569,16 @@ _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *n static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r) { if (flags & NDR_IN) { + if (r->in.logon_server == 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.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->in.logon_server, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + if (r->in.computername == 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.computername, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); @@ -10482,8 +10722,14 @@ _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *nam if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "netr_DatabaseSync"); ndr->depth++; + ndr_print_ptr(ndr, "logon_server", r->in.logon_server); + ndr->depth++; ndr_print_string(ndr, "logon_server", r->in.logon_server); + ndr->depth--; + ndr_print_ptr(ndr, "computername", r->in.computername); + ndr->depth++; ndr_print_string(ndr, "computername", r->in.computername); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); @@ -10536,6 +10782,9 @@ static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int f NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } + if (r->in.computername == 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.computername, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); @@ -10703,7 +10952,10 @@ _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *na ndr_print_string(ndr, "logon_server", r->in.logon_server); } ndr->depth--; + ndr_print_ptr(ndr, "computername", r->in.computername); + ndr->depth++; ndr_print_string(ndr, "computername", r->in.computername); + ndr->depth--; ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); ndr->depth++; @@ -10754,6 +11006,9 @@ static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int fla NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } + if (r->in.computername == 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.computername, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); @@ -10944,7 +11199,10 @@ _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name ndr_print_string(ndr, "logon_server", r->in.logon_server); } ndr->depth--; + ndr_print_ptr(ndr, "computername", r->in.computername); + ndr->depth++; ndr_print_string(ndr, "computername", r->in.computername); + ndr->depth--; ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); ndr->depth++; @@ -10995,6 +11253,9 @@ _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r) { if (flags & NDR_IN) { + if (r->in.logon_server == 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.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->in.logon_server, CH_UTF16))); @@ -11101,7 +11362,10 @@ _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "netr_GetDcName"); ndr->depth++; + ndr_print_ptr(ndr, "logon_server", r->in.logon_server); + ndr->depth++; ndr_print_string(ndr, "logon_server", r->in.logon_server); + ndr->depth--; ndr_print_ptr(ndr, "domainname", r->in.domainname); ndr->depth++; if (r->in.domainname) { @@ -11520,11 +11784,17 @@ static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(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)); } + if (r->in.account_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.account_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.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_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -11650,9 +11920,15 @@ _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const ch ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credentials", r->in.credentials); ndr->depth++; ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); @@ -11683,10 +11959,16 @@ _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const ch static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r) { if (flags & NDR_IN) { + if (r->in.logon_server == 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.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->in.logon_server, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + if (r->in.computername == 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.computername, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); @@ -11832,8 +12114,14 @@ _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *na if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "netr_DatabaseSync2"); ndr->depth++; + ndr_print_ptr(ndr, "logon_server", r->in.logon_server); + ndr->depth++; ndr_print_string(ndr, "logon_server", r->in.logon_server); + ndr->depth--; + ndr_print_ptr(ndr, "computername", r->in.computername); + ndr->depth++; ndr_print_string(ndr, "computername", r->in.computername); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); @@ -11880,10 +12168,16 @@ _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *na static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r) { if (flags & NDR_IN) { + if (r->in.logon_server == 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.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->in.logon_server, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); + if (r->in.computername == 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.computername, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); @@ -12012,8 +12306,14 @@ _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *nam if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "netr_DatabaseRedo"); ndr->depth++; + ndr_print_ptr(ndr, "logon_server", r->in.logon_server); + ndr->depth++; ndr_print_string(ndr, "logon_server", r->in.logon_server); + ndr->depth--; + ndr_print_ptr(ndr, "computername", r->in.computername); + ndr->depth++; ndr_print_string(ndr, "computername", r->in.computername); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); @@ -12466,6 +12766,9 @@ _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *nam static enum ndr_err_code ndr_push_netr_LogonGetCapabilities(struct ndr_push *ndr, int flags, const struct netr_LogonGetCapabilities *r) { if (flags & NDR_IN) { + if (r->in.server_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.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))); @@ -12588,7 +12891,10 @@ _PUBLIC_ void ndr_print_netr_LogonGetCapabilities(struct ndr_print *ndr, const c if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "netr_LogonGetCapabilities"); ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; ndr_print_string(ndr, "server_name", r->in.server_name); + ndr->depth--; ndr_print_ptr(ndr, "computer_name", r->in.computer_name); ndr->depth++; if (r->in.computer_name) { @@ -12884,11 +13190,17 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *nd 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.account_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.account_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.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_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -13028,9 +13340,15 @@ _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const ch ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credentials", r->in.credentials); ndr->depth++; ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); @@ -13397,6 +13715,9 @@ _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *n static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r) { if (flags & NDR_IN) { + if (r->in.server_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.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))); @@ -13417,8 +13738,11 @@ static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, } NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level)); - NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query)); + if (r->in.query == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.query, r->in.level)); + NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query)); } if (flags & NDR_OUT) { if (r->out.return_authenticator == NULL) { @@ -13441,6 +13765,7 @@ static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, TALLOC_CTX *_mem_save_computer_name_0; TALLOC_CTX *_mem_save_credential_0; TALLOC_CTX *_mem_save_return_authenticator_0; + TALLOC_CTX *_mem_save_query_0; TALLOC_CTX *_mem_save_info_0; if (flags & NDR_IN) { ZERO_STRUCT(r->out); @@ -13485,8 +13810,14 @@ static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level)); - NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.query); + } + _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.query, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.query, r->in.level)); + NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC); NDR_PULL_ALLOC(ndr, r->out.return_authenticator); *r->out.return_authenticator = *r->in.return_authenticator; NDR_PULL_ALLOC(ndr, r->out.info); @@ -13523,7 +13854,10 @@ _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const cha if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo"); ndr->depth++; + ndr_print_ptr(ndr, "server_name", r->in.server_name); + ndr->depth++; ndr_print_string(ndr, "server_name", r->in.server_name); + ndr->depth--; ndr_print_ptr(ndr, "computer_name", r->in.computer_name); ndr->depth++; if (r->in.computer_name) { @@ -13539,8 +13873,11 @@ _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const cha ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); ndr->depth--; ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_set_switch_value(ndr, &r->in.query, r->in.level); - ndr_print_netr_DomainQuery(ndr, "query", &r->in.query); + ndr_print_ptr(ndr, "query", r->in.query); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->in.query, r->in.level); + ndr_print_netr_WorkstationInfo(ndr, "query", r->in.query); + ndr->depth--; ndr->depth--; } if (flags & NDR_OUT) { @@ -13571,11 +13908,17 @@ static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(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)); } + if (r->in.account_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.account_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.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_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -13688,9 +14031,15 @@ _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const cha ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); @@ -13724,11 +14073,17 @@ static enum ndr_err_code ndr_push_netr_ServerPasswordGet(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.account_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.account_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.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_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -13843,9 +14198,15 @@ _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); @@ -15218,11 +15579,17 @@ static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(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.account_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.account_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.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_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); + if (r->in.computer_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.computer_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.computer_name, CH_UTF16))); @@ -15351,9 +15718,15 @@ _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, cons ndr_print_string(ndr, "server_name", r->in.server_name); } ndr->depth--; + ndr_print_ptr(ndr, "account_name", r->in.account_name); + ndr->depth++; ndr_print_string(ndr, "account_name", r->in.account_name); + ndr->depth--; ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); + ndr_print_ptr(ndr, "computer_name", r->in.computer_name); + ndr->depth++; ndr_print_string(ndr, "computer_name", r->in.computer_name); + ndr->depth--; ndr_print_ptr(ndr, "credential", r->in.credential); ndr->depth++; ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); diff --git a/librpc/gen_ndr/ndr_netlogon.h b/librpc/gen_ndr/ndr_netlogon.h index 2dfc0edc215..f1b250135ef 100644 --- a/librpc/gen_ndr/ndr_netlogon.h +++ b/librpc/gen_ndr/ndr_netlogon.h @@ -208,16 +208,19 @@ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_f void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r); void ndr_print_netr_Capabilities(struct ndr_print *ndr, const char *name, const union netr_Capabilities *r); void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r); -void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r); -void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r); +void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r); +void ndr_print_netr_SuiteMask(struct ndr_print *ndr, const char *name, uint16_t r); +void ndr_print_netr_ProductType(struct ndr_print *ndr, const char *name, uint8_t r); +void ndr_print_netr_LsaPolicyInformation(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInformation *r); +void ndr_print_netr_OsVersionInfoEx(struct ndr_print *ndr, const char *name, const struct netr_OsVersionInfoEx *r); +void ndr_print_netr_OsVersion(struct ndr_print *ndr, const char *name, const struct netr_OsVersion *r); +void ndr_print_netr_OsVersionContainer(struct ndr_print *ndr, const char *name, const struct netr_OsVersionContainer *r); +void ndr_print_netr_WorkstationInformation(struct ndr_print *ndr, const char *name, const struct netr_WorkstationInformation *r); +void ndr_print_netr_WorkstationInfo(struct ndr_print *ndr, const char *name, const union netr_WorkstationInfo *r); void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r); void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r); -void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r); -void ndr_print_netr_LsaPolicyInfo(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInfo *r); -enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r); -enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r); -void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r); -void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r); +void ndr_print_netr_OneDomainInfo(struct ndr_print *ndr, const char *name, const struct netr_OneDomainInfo *r); +void ndr_print_netr_DomainInformation(struct ndr_print *ndr, const char *name, const struct netr_DomainInformation *r); void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r); void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r); void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r); diff --git a/librpc/gen_ndr/netlogon.h b/librpc/gen_ndr/netlogon.h index 7010e808434..6f621075e6a 100644 --- a/librpc/gen_ndr/netlogon.h +++ b/librpc/gen_ndr/netlogon.h @@ -875,23 +875,83 @@ union netr_Capabilities { #define NETR_TRUST_FLAG_MIT_KRB5 ( 0x00000080 ) #define NETR_TRUST_FLAG_AES ( 0x00000100 ) -struct netr_DomainQuery1 { - struct netr_Blob blob; - const char *workstation_domain;/* [unique,charset(UTF16)] */ - const char *workstation_site;/* [unique,charset(UTF16)] */ - const char *unknown1;/* [unique,charset(UTF16)] */ - const char *unknown2;/* [unique,charset(UTF16)] */ - const char *unknown3;/* [unique,charset(UTF16)] */ - const char *unknown4;/* [unique,charset(UTF16)] */ - struct lsa_BinaryString blob2; - struct lsa_String product; - struct lsa_String unknown5; - struct lsa_String unknown6; - uint32_t unknown7[4]; +/* bitmap netr_WorkstationFlags */ +#define NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS ( 0x00000001 ) +#define NETR_WS_FLAG_HANDLES_SPN_UPDATE ( 0x00000002 ) + +/* bitmap netr_SuiteMask */ +#define NETR_VER_SUITE_BACKOFFICE ( 0x0004 ) +#define NETR_VER_SUITE_BLADE ( 0x0400 ) +#define NETR_VER_SUITE_COMPUTE_SERVER ( 0x4000 ) +#define NETR_VER_SUITE_DATACENTER ( 0x0080 ) +#define NETR_VER_SUITE_ENTERPRISE ( 0x0002 ) +#define NETR_VER_SUITE_EMBEDDEDNT ( 0x0040 ) +#define NETR_VER_SUITE_PERSONAL ( 0x0200 ) +#define NETR_VER_SUITE_SINGLEUSERTS ( 0x0100 ) +#define NETR_VER_SUITE_SMALLBUSINESS ( 0x0001 ) +#define NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED ( 0x0020 ) +#define NETR_VER_SUITE_STORAGE_SERVER ( 0x2000 ) +#define NETR_VER_SUITE_TERMINAL ( 0x0010 ) +#define NETR_VER_SUITE_WH_SERVER ( 0x8000 ) + +/* bitmap netr_ProductType */ +#define NETR_VER_NT_DOMAIN_CONTROLLER ( 0x02 ) +#define NETR_VER_NT_SERVER ( 0x03 ) +#define NETR_VER_NT_WORKSTATION ( 0x01 ) + +struct netr_LsaPolicyInformation { + uint32_t policy_size; + uint8_t *policy;/* [unique,size_is(policy_size)] */ +}; + +struct netr_OsVersionInfoEx { + uint32_t OSVersionInfoSize;/* [value(284)] */ + uint32_t MajorVersion; + uint32_t MinorVersion; + uint32_t BuildNumber; + uint32_t PlatformId; + const char *CSDVersion;/* [charset(UTF16)] */ + uint16_t ServicePackMajor; + uint16_t ServicePackMinor; + uint16_t SuiteMask; + uint8_t ProductType; + uint8_t Reserved; +}; + +struct netr_OsVersion { + uint32_t length;/* [value(142)] */ + uint32_t dummy;/* [value(0)] */ + uint32_t size;/* [value(142)] */ + struct netr_OsVersionInfoEx os; +}; + +struct netr_OsVersionContainer { + uint16_t length;/* [value(os==NULL?0:284)] */ + uint16_t size;/* [value(os==NULL?0:284)] */ + struct netr_OsVersion *os;/* [unique] */ +}; + +struct netr_WorkstationInformation { + struct netr_LsaPolicyInformation lsa_policy; + const char *dns_hostname;/* [unique,charset(UTF16)] */ + const char *sitename;/* [unique,charset(UTF16)] */ + const char *dummy1;/* [unique,charset(UTF16)] */ + const char *dummy2;/* [unique,charset(UTF16)] */ + const char *dummy3;/* [unique,charset(UTF16)] */ + const char *dummy4;/* [unique,charset(UTF16)] */ + struct netr_OsVersionContainer os_version; + struct lsa_String os_name; + struct lsa_String dummy_string3; + struct lsa_String dummy_string4; + uint32_t workstation_flags; + uint32_t dummy_long2; + uint32_t dummy_long3; + uint32_t dummy_long4; }; -union netr_DomainQuery { - struct netr_DomainQuery1 *query1;/* [unique,case] */ +union netr_WorkstationInfo { + struct netr_WorkstationInformation *workstation_info;/* [unique,case] */ + struct netr_WorkstationInformation *lsa_policy_info;/* [unique,case(2)] */ }; struct netr_trust_extension { @@ -910,41 +970,40 @@ struct netr_trust_extension_container { struct netr_trust_extension *info;/* [unique] */ }; -struct netr_DomainTrustInfo { +struct netr_OneDomainInfo { struct lsa_String domainname; - struct lsa_String fulldomainname; - struct lsa_String forest; - struct GUID guid; - struct dom_sid2 *sid;/* [unique] */ + struct lsa_String dns_domainname; + struct lsa_String dns_forestname; + struct GUID domain_guid; + struct dom_sid2 *domain_sid;/* [unique] */ struct netr_trust_extension_container trust_extension; - struct lsa_String dummystring[3]; - uint32_t dummy[4]; -}; - -struct netr_LsaPolicyInfo { - uint32_t policy_size; - uint8_t *policy;/* [unique,size_is(policy_size)] */ -}; - -/* bitmap netr_WorkstationFlags */ -#define NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS ( 0x00000001 ) -#define NETR_WS_FLAG_HANDLES_SPN_UPDATE ( 0x00000002 ) - -struct netr_DomainInfo1 { - struct netr_DomainTrustInfo domaininfo; - uint32_t num_trusts; - struct netr_DomainTrustInfo *trusts;/* [unique,size_is(num_trusts)] */ - struct netr_LsaPolicyInfo lsa_policy; + struct lsa_String dummy_string2; + struct lsa_String dummy_string3; + struct lsa_String dummy_string4; + uint32_t dummy_long1; + uint32_t dummy_long2; + uint32_t dummy_long3; + uint32_t dummy_long4; +}; + +struct netr_DomainInformation { + struct netr_OneDomainInfo primary_domain; + uint32_t trusted_domain_count; + struct netr_OneDomainInfo *trusted_domains;/* [unique,size_is(trusted_domain_count)] */ + struct netr_LsaPolicyInformation lsa_policy; struct lsa_String dns_hostname; - struct lsa_String dummystring[3]; + struct lsa_String dummy_string2; + struct lsa_String dummy_string3; + struct lsa_String dummy_string4; uint32_t workstation_flags; uint32_t supported_enc_types; - uint32_t dummy[2]; + uint32_t dummy_long3; + uint32_t dummy_long4; }; union netr_DomainInfo { - struct netr_DomainInfo1 *info1;/* [unique,case] */ - struct netr_DomainInfo1 *info2;/* [unique,case(2)] */ + struct netr_DomainInformation *domain_info;/* [unique,case] */ + struct netr_LsaPolicyInformation *lsa_policy_info;/* [unique,case(2)] */ }; struct netr_CryptPassword { @@ -1026,8 +1085,8 @@ struct netr_TrustInfo { struct netr_LogonUasLogon { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ - const char *workstation;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ + const char *workstation;/* [ref,charset(UTF16)] */ } in; struct { @@ -1041,8 +1100,8 @@ struct netr_LogonUasLogon { struct netr_LogonUasLogoff { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ - const char *workstation;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ + const char *workstation;/* [ref,charset(UTF16)] */ } in; struct { @@ -1095,7 +1154,7 @@ struct netr_LogonSamLogoff { struct netr_ServerReqChallenge { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Credential *credentials;/* [ref] */ } in; @@ -1110,9 +1169,9 @@ struct netr_ServerReqChallenge { struct netr_ServerAuthenticate { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type; - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Credential *credentials;/* [ref] */ } in; @@ -1127,9 +1186,9 @@ struct netr_ServerAuthenticate { struct netr_ServerPasswordSet { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type; - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ struct samr_Password *new_password;/* [ref] */ } in; @@ -1144,8 +1203,8 @@ struct netr_ServerPasswordSet { struct netr_DatabaseDeltas { struct { - const char *logon_server;/* [charset(UTF16)] */ - const char *computername;/* [charset(UTF16)] */ + const char *logon_server;/* [ref,charset(UTF16)] */ + const char *computername;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ enum netr_SamDatabaseID database_id; uint32_t preferredmaximumlength; @@ -1165,8 +1224,8 @@ struct netr_DatabaseDeltas { struct netr_DatabaseSync { struct { - const char *logon_server;/* [charset(UTF16)] */ - const char *computername;/* [charset(UTF16)] */ + const char *logon_server;/* [ref,charset(UTF16)] */ + const char *computername;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ enum netr_SamDatabaseID database_id; uint32_t preferredmaximumlength; @@ -1187,7 +1246,7 @@ struct netr_DatabaseSync { struct netr_AccountDeltas { struct { const char *logon_server;/* [unique,charset(UTF16)] */ - const char *computername;/* [charset(UTF16)] */ + const char *computername;/* [ref,charset(UTF16)] */ struct netr_Authenticator credential; struct netr_UAS_INFO_0 uas; uint32_t count; @@ -1211,7 +1270,7 @@ struct netr_AccountDeltas { struct netr_AccountSync { struct { const char *logon_server;/* [unique,charset(UTF16)] */ - const char *computername;/* [charset(UTF16)] */ + const char *computername;/* [ref,charset(UTF16)] */ struct netr_Authenticator credential; uint32_t reference; uint32_t level; @@ -1235,7 +1294,7 @@ struct netr_AccountSync { struct netr_GetDcName { struct { - const char *logon_server;/* [charset(UTF16)] */ + const char *logon_server;/* [ref,charset(UTF16)] */ const char *domainname;/* [unique,charset(UTF16)] */ } in; @@ -1295,9 +1354,9 @@ struct netr_LogonControl2 { struct netr_ServerAuthenticate2 { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type; - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Credential *credentials;/* [ref] */ uint32_t *negotiate_flags;/* [ref] */ } in; @@ -1313,8 +1372,8 @@ struct netr_ServerAuthenticate2 { struct netr_DatabaseSync2 { struct { - const char *logon_server;/* [charset(UTF16)] */ - const char *computername;/* [charset(UTF16)] */ + const char *logon_server;/* [ref,charset(UTF16)] */ + const char *computername;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ enum netr_SamDatabaseID database_id; enum SyncStateEnum restart_state; @@ -1335,8 +1394,8 @@ struct netr_DatabaseSync2 { struct netr_DatabaseRedo { struct { - const char *logon_server;/* [charset(UTF16)] */ - const char *computername;/* [charset(UTF16)] */ + const char *logon_server;/* [ref,charset(UTF16)] */ + const char *computername;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ struct netr_ChangeLogEntry change_log_entry;/* [subcontext_size(change_log_entry_size),subcontext(4)] */ uint32_t change_log_entry_size;/* [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */ @@ -1400,7 +1459,7 @@ struct netr_DsRGetDCName { struct netr_LogonGetCapabilities { struct { - const char *server_name;/* [charset(UTF16)] */ + const char *server_name;/* [ref,charset(UTF16)] */ const char *computer_name;/* [unique,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ uint32_t query_level; @@ -1457,9 +1516,9 @@ struct netr_NETRLOGONCOMPUTECLIENTDIGEST { struct netr_ServerAuthenticate3 { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type; - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Credential *credentials;/* [ref] */ uint32_t *negotiate_flags;/* [ref] */ } in; @@ -1506,11 +1565,11 @@ struct netr_DsRGetSiteName { struct netr_LogonGetDomainInfo { struct { - const char *server_name;/* [charset(UTF16)] */ + const char *server_name;/* [ref,charset(UTF16)] */ const char *computer_name;/* [unique,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ uint32_t level; - union netr_DomainQuery query;/* [switch_is(level)] */ + union netr_WorkstationInfo *query;/* [ref,switch_is(level)] */ struct netr_Authenticator *return_authenticator;/* [ref] */ } in; @@ -1526,9 +1585,9 @@ struct netr_LogonGetDomainInfo { struct netr_ServerPasswordSet2 { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type; - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ struct netr_CryptPassword *new_password;/* [ref] */ } in; @@ -1544,9 +1603,9 @@ struct netr_ServerPasswordSet2 { struct netr_ServerPasswordGet { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type; - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ } in; @@ -1703,9 +1762,9 @@ struct netr_DsrDeregisterDNSHostRecords { struct netr_ServerTrustPasswordsGet { struct { const char *server_name;/* [unique,charset(UTF16)] */ - const char *account_name;/* [charset(UTF16)] */ + const char *account_name;/* [ref,charset(UTF16)] */ enum netr_SchannelType secure_channel_type; - const char *computer_name;/* [charset(UTF16)] */ + const char *computer_name;/* [ref,charset(UTF16)] */ struct netr_Authenticator *credential;/* [ref] */ } in; -- 2.34.1