summaryrefslogtreecommitdiff
path: root/librpc/gen_ndr/cli_netlogon.c
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/gen_ndr/cli_netlogon.c')
-rw-r--r--librpc/gen_ndr/cli_netlogon.c2352
1 files changed, 2352 insertions, 0 deletions
diff --git a/librpc/gen_ndr/cli_netlogon.c b/librpc/gen_ndr/cli_netlogon.c
new file mode 100644
index 0000000000..39eaf7bfe9
--- /dev/null
+++ b/librpc/gen_ndr/cli_netlogon.c
@@ -0,0 +1,2352 @@
+/*
+ * Unix SMB/CIFS implementation.
+ * client auto-generated by pidl. DO NOT MODIFY!
+ */
+
+#include "includes.h"
+#include "../librpc/gen_ndr/cli_netlogon.h"
+
+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)] */,
+ struct netr_UasInfo **info /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_LogonUasLogon r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.workstation = workstation;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonUasLogon, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONUASLOGON,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonUasLogon, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *info = *r.out.info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+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)] */,
+ struct netr_UasLogoffInfo *info /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_LogonUasLogoff r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.workstation = workstation;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonUasLogoff, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONUASLOGOFF,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonUasLogoff, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *info = *r.out.info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_LogonSamLogon(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *computer_name /* [in] [unique,charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [unique] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
+ enum netr_LogonInfoClass logon_level /* [in] */,
+ union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
+ uint16_t validation_level /* [in] */,
+ union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
+ uint8_t *authoritative /* [out] [ref] */)
+{
+ struct netr_LogonSamLogon r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.logon_level = logon_level;
+ r.in.logon = logon;
+ r.in.validation_level = validation_level;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonSamLogon, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONSAMLOGON,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonSamLogon, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ if (return_authenticator && r.out.return_authenticator) {
+ *return_authenticator = *r.out.return_authenticator;
+ }
+ *validation = *r.out.validation;
+ *authoritative = *r.out.authoritative;
+
+ /* Return result */
+ return r.out.result;
+}
+
+NTSTATUS rpccli_netr_LogonSamLogoff(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *computer_name /* [in] [unique,charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [unique] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
+ enum netr_LogonInfoClass logon_level /* [in] */,
+ union netr_LogonLevel logon /* [in] [switch_is(logon_level)] */)
+{
+ struct netr_LogonSamLogoff r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.logon_level = logon_level;
+ r.in.logon = logon;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonSamLogoff, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONSAMLOGOFF,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonSamLogoff, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ if (return_authenticator && r.out.return_authenticator) {
+ *return_authenticator = *r.out.return_authenticator;
+ }
+
+ /* Return result */
+ return r.out.result;
+}
+
+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)] */,
+ struct netr_Credential *credentials /* [in] [ref] */,
+ struct netr_Credential *return_credentials /* [out] [ref] */)
+{
+ struct netr_ServerReqChallenge r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.computer_name = computer_name;
+ r.in.credentials = credentials;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerReqChallenge, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERREQCHALLENGE,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerReqChallenge, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_credentials = *r.out.return_credentials;
+
+ /* Return result */
+ return r.out.result;
+}
+
+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)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [charset(UTF16)] */,
+ struct netr_Credential *credentials /* [in] [ref] */,
+ struct netr_Credential *return_credentials /* [out] [ref] */)
+{
+ struct netr_ServerAuthenticate r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credentials = credentials;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERAUTHENTICATE,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerAuthenticate, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_credentials = *r.out.return_credentials;
+
+ /* Return result */
+ return r.out.result;
+}
+
+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)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [out] [ref] */,
+ struct samr_Password *new_password /* [in] [ref] */)
+{
+ struct netr_ServerPasswordSet r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+ r.in.new_password = new_password;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerPasswordSet, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERPASSWORDSET,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerPasswordSet, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+
+ /* Return result */
+ return r.out.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)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
+ enum netr_SamDatabaseID database_id /* [in] */,
+ uint64_t *sequence_num /* [in,out] [ref] */,
+ struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
+ uint32_t preferredmaximumlength /* [in] */)
+{
+ struct netr_DatabaseDeltas r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.computername = computername;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.database_id = database_id;
+ r.in.sequence_num = sequence_num;
+ r.in.preferredmaximumlength = preferredmaximumlength;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DatabaseDeltas, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DATABASEDELTAS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DatabaseDeltas, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *sequence_num = *r.out.sequence_num;
+ *delta_enum_array = *r.out.delta_enum_array;
+
+ /* Return result */
+ return r.out.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)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
+ enum netr_SamDatabaseID database_id /* [in] */,
+ uint32_t *sync_context /* [in,out] [ref] */,
+ struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
+ uint32_t preferredmaximumlength /* [in] */)
+{
+ struct netr_DatabaseSync r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.computername = computername;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.database_id = database_id;
+ r.in.sync_context = sync_context;
+ r.in.preferredmaximumlength = preferredmaximumlength;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DatabaseSync, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DATABASESYNC,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DatabaseSync, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *sync_context = *r.out.sync_context;
+ *delta_enum_array = *r.out.delta_enum_array;
+
+ /* Return result */
+ return r.out.result;
+}
+
+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)] */,
+ struct netr_Authenticator credential /* [in] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
+ struct netr_UAS_INFO_0 uas /* [in] */,
+ uint32_t count /* [in] */,
+ uint32_t level /* [in] */,
+ uint32_t buffersize /* [in] */,
+ struct netr_AccountBuffer *buffer /* [out] [ref,subcontext(4)] */,
+ uint32_t *count_returned /* [out] [ref] */,
+ uint32_t *total_entries /* [out] [ref] */,
+ struct netr_UAS_INFO_0 *recordid /* [out] [ref] */)
+{
+ struct netr_AccountDeltas r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.computername = computername;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.uas = uas;
+ r.in.count = count;
+ r.in.level = level;
+ r.in.buffersize = buffersize;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_AccountDeltas, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_ACCOUNTDELTAS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_AccountDeltas, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *buffer = *r.out.buffer;
+ *count_returned = *r.out.count_returned;
+ *total_entries = *r.out.total_entries;
+ *recordid = *r.out.recordid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+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)] */,
+ struct netr_Authenticator credential /* [in] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
+ uint32_t reference /* [in] */,
+ uint32_t level /* [in] */,
+ uint32_t buffersize /* [in] */,
+ struct netr_AccountBuffer *buffer /* [out] [ref,subcontext(4)] */,
+ uint32_t *count_returned /* [out] [ref] */,
+ uint32_t *total_entries /* [out] [ref] */,
+ uint32_t *next_reference /* [out] [ref] */,
+ struct netr_UAS_INFO_0 *recordid /* [in,out] [ref] */)
+{
+ struct netr_AccountSync r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.computername = computername;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.reference = reference;
+ r.in.level = level;
+ r.in.buffersize = buffersize;
+ r.in.recordid = recordid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_AccountSync, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_ACCOUNTSYNC,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_AccountSync, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *buffer = *r.out.buffer;
+ *count_returned = *r.out.count_returned;
+ *total_entries = *r.out.total_entries;
+ *next_reference = *r.out.next_reference;
+ *recordid = *r.out.recordid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+NTSTATUS rpccli_netr_GetDcName(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *logon_server /* [in] [charset(UTF16)] */,
+ const char *domainname /* [in] [unique,charset(UTF16)] */,
+ const char **dcname /* [out] [ref,charset(UTF16)] */,
+ WERROR *werror)
+{
+ struct netr_GetDcName r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.domainname = domainname;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_GetDcName, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_GETDCNAME,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_GetDcName, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *dcname = *r.out.dcname;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_LogonControl(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *logon_server /* [in] [unique,charset(UTF16)] */,
+ enum netr_LogonControlCode function_code /* [in] */,
+ uint32_t level /* [in] */,
+ union netr_CONTROL_QUERY_INFORMATION *info /* [out] [ref,switch_is(level)] */,
+ WERROR *werror)
+{
+ struct netr_LogonControl r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.function_code = function_code;
+ r.in.level = level;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonControl, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONCONTROL,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonControl, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *info = *r.out.info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_GetAnyDCName(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *logon_server /* [in] [unique,charset(UTF16)] */,
+ const char *domainname /* [in] [unique,charset(UTF16)] */,
+ const char **dcname /* [out] [ref,charset(UTF16)] */,
+ WERROR *werror)
+{
+ struct netr_GetAnyDCName r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.domainname = domainname;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_GetAnyDCName, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_GETANYDCNAME,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_GetAnyDCName, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *dcname = *r.out.dcname;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_LogonControl2(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *logon_server /* [in] [unique,charset(UTF16)] */,
+ enum netr_LogonControlCode function_code /* [in] */,
+ uint32_t level /* [in] */,
+ union netr_CONTROL_DATA_INFORMATION *data /* [in] [ref,switch_is(function_code)] */,
+ union netr_CONTROL_QUERY_INFORMATION *query /* [out] [ref,switch_is(level)] */,
+ WERROR *werror)
+{
+ struct netr_LogonControl2 r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.function_code = function_code;
+ r.in.level = level;
+ r.in.data = data;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonControl2, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONCONTROL2,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonControl2, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *query = *r.out.query;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+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)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [charset(UTF16)] */,
+ struct netr_Credential *credentials /* [in] [ref] */,
+ struct netr_Credential *return_credentials /* [out] [ref] */,
+ uint32_t *negotiate_flags /* [in,out] [ref] */)
+{
+ struct netr_ServerAuthenticate2 r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credentials = credentials;
+ r.in.negotiate_flags = negotiate_flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate2, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERAUTHENTICATE2,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerAuthenticate2, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_credentials = *r.out.return_credentials;
+ *negotiate_flags = *r.out.negotiate_flags;
+
+ /* Return result */
+ return r.out.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)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
+ enum netr_SamDatabaseID database_id /* [in] */,
+ uint16_t restart_state /* [in] */,
+ uint32_t *sync_context /* [in,out] [ref] */,
+ struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
+ uint32_t preferredmaximumlength /* [in] */)
+{
+ struct netr_DatabaseSync2 r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.computername = computername;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.database_id = database_id;
+ r.in.restart_state = restart_state;
+ r.in.sync_context = sync_context;
+ r.in.preferredmaximumlength = preferredmaximumlength;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DatabaseSync2, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DATABASESYNC2,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DatabaseSync2, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *sync_context = *r.out.sync_context;
+ *delta_enum_array = *r.out.delta_enum_array;
+
+ /* Return result */
+ return r.out.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)] */,
+ 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)] */,
+ uint32_t change_log_entry_size /* [in] [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] */,
+ struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */)
+{
+ struct netr_DatabaseRedo r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.computername = computername;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.change_log_entry = change_log_entry;
+ r.in.change_log_entry_size = change_log_entry_size;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DatabaseRedo, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DATABASEREDO,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DatabaseRedo, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *delta_enum_array = *r.out.delta_enum_array;
+
+ /* Return result */
+ return r.out.result;
+}
+
+NTSTATUS rpccli_netr_LogonControl2Ex(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *logon_server /* [in] [unique,charset(UTF16)] */,
+ uint32_t function_code /* [in] */,
+ uint32_t level /* [in] */,
+ union netr_CONTROL_DATA_INFORMATION data /* [in] [switch_is(function_code)] */,
+ union netr_CONTROL_QUERY_INFORMATION *query /* [out] [ref,switch_is(level)] */,
+ WERROR *werror)
+{
+ struct netr_LogonControl2Ex r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.logon_server = logon_server;
+ r.in.function_code = function_code;
+ r.in.level = level;
+ r.in.data = data;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonControl2Ex, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONCONTROL2EX,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonControl2Ex, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *query = *r.out.query;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NetrEnumerateTrustedDomains(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ struct netr_Blob *trusted_domains_blob /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_NetrEnumerateTrustedDomains r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NetrEnumerateTrustedDomains, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRENUMERATETRUSTEDDOMAINS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NetrEnumerateTrustedDomains, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *trusted_domains_blob = *r.out.trusted_domains_blob;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_DsRGetDCName(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_unc /* [in] [unique,charset(UTF16)] */,
+ const char *domain_name /* [in] [unique,charset(UTF16)] */,
+ struct GUID *domain_guid /* [in] [unique] */,
+ struct GUID *site_guid /* [in] [unique] */,
+ uint32_t flags /* [in] */,
+ struct netr_DsRGetDCNameInfo **info /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsRGetDCName r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_unc = server_unc;
+ r.in.domain_name = domain_name;
+ r.in.domain_guid = domain_guid;
+ r.in.site_guid = site_guid;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsRGetDCName, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRGETDCNAME,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsRGetDCName, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *info = *r.out.info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NETRLOGONDUMMYROUTINE1(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ WERROR *werror)
+{
+ struct netr_NETRLOGONDUMMYROUTINE1 r;
+ NTSTATUS status;
+
+ /* In parameters */
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NETRLOGONDUMMYROUTINE1, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRLOGONDUMMYROUTINE1,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NETRLOGONDUMMYROUTINE1, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NETRLOGONSETSERVICEBITS(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ WERROR *werror)
+{
+ struct netr_NETRLOGONSETSERVICEBITS r;
+ NTSTATUS status;
+
+ /* In parameters */
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NETRLOGONSETSERVICEBITS, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRLOGONSETSERVICEBITS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NETRLOGONSETSERVICEBITS, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_LogonGetTrustRid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *domain_name /* [in] [unique,charset(UTF16)] */,
+ uint32_t *rid /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_LogonGetTrustRid r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.domain_name = domain_name;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonGetTrustRid, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONGETTRUSTRID,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonGetTrustRid, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *rid = *r.out.rid;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ WERROR *werror)
+{
+ struct netr_NETRLOGONCOMPUTESERVERDIGEST r;
+ NTSTATUS status;
+
+ /* In parameters */
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NETRLOGONCOMPUTESERVERDIGEST, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NETRLOGONCOMPUTESERVERDIGEST, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ WERROR *werror)
+{
+ struct netr_NETRLOGONCOMPUTECLIENTDIGEST r;
+ NTSTATUS status;
+
+ /* In parameters */
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NETRLOGONCOMPUTECLIENTDIGEST, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NETRLOGONCOMPUTECLIENTDIGEST, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+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)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [charset(UTF16)] */,
+ struct netr_Credential *credentials /* [in] [ref] */,
+ struct netr_Credential *return_credentials /* [out] [ref] */,
+ uint32_t *negotiate_flags /* [in,out] [ref] */,
+ uint32_t *rid /* [out] [ref] */)
+{
+ struct netr_ServerAuthenticate3 r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credentials = credentials;
+ r.in.negotiate_flags = negotiate_flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate3, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERAUTHENTICATE3,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerAuthenticate3, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_credentials = *r.out.return_credentials;
+ *negotiate_flags = *r.out.negotiate_flags;
+ *rid = *r.out.rid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+NTSTATUS rpccli_netr_DsRGetDCNameEx(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_unc /* [in] [unique,charset(UTF16)] */,
+ const char *domain_name /* [in] [unique,charset(UTF16)] */,
+ struct GUID *domain_guid /* [in] [unique] */,
+ const char *site_name /* [in] [unique,charset(UTF16)] */,
+ uint32_t flags /* [in] */,
+ struct netr_DsRGetDCNameInfo **info /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsRGetDCNameEx r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_unc = server_unc;
+ r.in.domain_name = domain_name;
+ r.in.domain_guid = domain_guid;
+ r.in.site_name = site_name;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsRGetDCNameEx, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRGETDCNAMEEX,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsRGetDCNameEx, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *info = *r.out.info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_DsRGetSiteName(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *computer_name /* [in] [unique,charset(UTF16)] */,
+ const char **site /* [out] [ref,charset(UTF16)] */,
+ WERROR *werror)
+{
+ struct netr_DsRGetSiteName r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.computer_name = computer_name;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsRGetSiteName, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRGETSITENAME,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsRGetSiteName, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *site = *r.out.site;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_LogonGetDomainInfo(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [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_DomainInfo *info /* [out] [ref,switch_is(level)] */)
+{
+ struct netr_LogonGetDomainInfo r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.level = level;
+ r.in.query = query;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonGetDomainInfo, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONGETDOMAININFO,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonGetDomainInfo, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *info = *r.out.info;
+
+ /* Return result */
+ return r.out.result;
+}
+
+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)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [out] [ref] */,
+ struct netr_CryptPassword *new_password /* [in] [ref] */)
+{
+ struct netr_ServerPasswordSet2 r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+ r.in.new_password = new_password;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerPasswordSet2, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERPASSWORDSET2,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerPasswordSet2, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+
+ /* Return result */
+ return r.out.result;
+}
+
+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)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [out] [ref] */,
+ struct samr_Password *password /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_ServerPasswordGet r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerPasswordGet, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERPASSWORDGET,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerPasswordGet, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *password = *r.out.password;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NETRLOGONSENDTOSAM(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ WERROR *werror)
+{
+ struct netr_NETRLOGONSENDTOSAM r;
+ NTSTATUS status;
+
+ /* In parameters */
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NETRLOGONSENDTOSAM, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRLOGONSENDTOSAM,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NETRLOGONSENDTOSAM, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_DsRAddressToSitenamesW(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ uint32_t count /* [in] [range(0,32000)] */,
+ struct netr_DsRAddress *addresses /* [in] [ref,size_is(count)] */,
+ struct netr_DsRAddressToSitenamesWCtr **ctr /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsRAddressToSitenamesW r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.count = count;
+ r.in.addresses = addresses;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsRAddressToSitenamesW, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRADDRESSTOSITENAMESW,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsRAddressToSitenamesW, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *ctr = *r.out.ctr;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_DsRGetDCNameEx2(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_unc /* [in] [unique,charset(UTF16)] */,
+ const char *client_account /* [in] [unique,charset(UTF16)] */,
+ uint32_t mask /* [in] */,
+ const char *domain_name /* [in] [unique,charset(UTF16)] */,
+ struct GUID *domain_guid /* [in] [unique] */,
+ const char *site_name /* [in] [unique,charset(UTF16)] */,
+ uint32_t flags /* [in] */,
+ struct netr_DsRGetDCNameInfo **info /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsRGetDCNameEx2 r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_unc = server_unc;
+ r.in.client_account = client_account;
+ r.in.mask = mask;
+ r.in.domain_name = domain_name;
+ r.in.domain_guid = domain_guid;
+ r.in.site_name = site_name;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsRGetDCNameEx2, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRGETDCNAMEEX2,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsRGetDCNameEx2, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *info = *r.out.info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ WERROR *werror)
+{
+ struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN r;
+ NTSTATUS status;
+
+ /* In parameters */
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_NetrEnumerateTrustedDomainsEx(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ struct netr_DomainTrustList *dom_trust_list /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_NetrEnumerateTrustedDomainsEx r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_NetrEnumerateTrustedDomainsEx, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_NetrEnumerateTrustedDomainsEx, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *dom_trust_list = *r.out.dom_trust_list;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_DsRAddressToSitenamesExW(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ uint32_t count /* [in] [range(0,32000)] */,
+ struct netr_DsRAddress *addresses /* [in] [ref,size_is(count)] */,
+ struct netr_DsRAddressToSitenamesExWCtr **ctr /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsRAddressToSitenamesExW r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.count = count;
+ r.in.addresses = addresses;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsRAddressToSitenamesExW, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRADDRESSTOSITENAMESEXW,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsRAddressToSitenamesExW, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *ctr = *r.out.ctr;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_DsrGetDcSiteCoverageW(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ struct DcSitesCtr **ctr /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsrGetDcSiteCoverageW r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsrGetDcSiteCoverageW, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRGETDCSITECOVERAGEW,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsrGetDcSiteCoverageW, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *ctr = *r.out.ctr;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_LogonSamLogonEx(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *computer_name /* [in] [unique,charset(UTF16)] */,
+ enum netr_LogonInfoClass logon_level /* [in] */,
+ union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
+ uint16_t validation_level /* [in] */,
+ union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
+ uint8_t *authoritative /* [out] [ref] */,
+ uint32_t *flags /* [in,out] [ref] */)
+{
+ struct netr_LogonSamLogonEx r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.computer_name = computer_name;
+ r.in.logon_level = logon_level;
+ r.in.logon = logon;
+ r.in.validation_level = validation_level;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonSamLogonEx, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONSAMLOGONEX,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonSamLogonEx, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *validation = *r.out.validation;
+ *authoritative = *r.out.authoritative;
+ *flags = *r.out.flags;
+
+ /* Return result */
+ return r.out.result;
+}
+
+NTSTATUS rpccli_netr_DsrEnumerateDomainTrusts(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ uint32_t trust_flags /* [in] */,
+ struct netr_DomainTrustList *trusts /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsrEnumerateDomainTrusts r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.trust_flags = trust_flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsrEnumerateDomainTrusts, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRENUMERATEDOMAINTRUSTS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsrEnumerateDomainTrusts, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *trusts = *r.out.trusts;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_DsrDeregisterDNSHostRecords(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *domain /* [in] [unique,charset(UTF16)] */,
+ struct GUID *domain_guid /* [in] [unique] */,
+ struct GUID *dsa_guid /* [in] [unique] */,
+ const char *dns_host /* [in] [ref,charset(UTF16)] */,
+ WERROR *werror)
+{
+ struct netr_DsrDeregisterDNSHostRecords r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.domain = domain;
+ r.in.domain_guid = domain_guid;
+ r.in.dsa_guid = dsa_guid;
+ r.in.dns_host = dns_host;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsrDeregisterDNSHostRecords, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsrDeregisterDNSHostRecords, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+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)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [out] [ref] */,
+ struct samr_Password *password /* [out] [ref] */,
+ struct samr_Password *password2 /* [out] [ref] */)
+{
+ struct netr_ServerTrustPasswordsGet r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerTrustPasswordsGet, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERTRUSTPASSWORDSGET,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerTrustPasswordsGet, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *password = *r.out.password;
+ *password2 = *r.out.password2;
+
+ /* Return result */
+ return r.out.result;
+}
+
+NTSTATUS rpccli_netr_DsRGetForestTrustInformation(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *trusted_domain_name /* [in] [unique,charset(UTF16)] */,
+ uint32_t flags /* [in] */,
+ struct lsa_ForestTrustInformation **forest_trust_info /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_DsRGetForestTrustInformation r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.trusted_domain_name = trusted_domain_name;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_DsRGetForestTrustInformation, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_DSRGETFORESTTRUSTINFORMATION,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_DsRGetForestTrustInformation, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *forest_trust_info = *r.out.forest_trust_info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_GetForestTrustInformation(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *trusted_domain_name /* [in] [ref,charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [out] [ref] */,
+ uint32_t flags /* [in] */,
+ struct lsa_ForestTrustInformation **forest_trust_info /* [out] [ref] */,
+ WERROR *werror)
+{
+ struct netr_GetForestTrustInformation r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.trusted_domain_name = trusted_domain_name;
+ r.in.credential = credential;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_GetForestTrustInformation, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_GETFORESTTRUSTINFORMATION,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_GetForestTrustInformation, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *forest_trust_info = *r.out.forest_trust_info;
+
+ /* Return result */
+ if (werror) {
+ *werror = r.out.result;
+ }
+
+ return werror_to_ntstatus(r.out.result);
+}
+
+NTSTATUS rpccli_netr_LogonSamLogonWithFlags(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *computer_name /* [in] [unique,charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [unique] */,
+ struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
+ enum netr_LogonInfoClass logon_level /* [in] */,
+ union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
+ uint16_t validation_level /* [in] */,
+ union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
+ uint8_t *authoritative /* [out] [ref] */,
+ uint32_t *flags /* [in,out] [ref] */)
+{
+ struct netr_LogonSamLogonWithFlags r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+ r.in.return_authenticator = return_authenticator;
+ r.in.logon_level = logon_level;
+ r.in.logon = logon;
+ r.in.validation_level = validation_level;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_LogonSamLogonWithFlags, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_LOGONSAMLOGONWITHFLAGS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_LogonSamLogonWithFlags, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ if (return_authenticator && r.out.return_authenticator) {
+ *return_authenticator = *r.out.return_authenticator;
+ }
+ *validation = *r.out.validation;
+ *authoritative = *r.out.authoritative;
+ *flags = *r.out.flags;
+
+ /* Return result */
+ return r.out.result;
+}
+
+NTSTATUS rpccli_netr_ServerGetTrustInfo(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *account_name /* [in] [ref,charset(UTF16)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ 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_owf_password /* [out] [ref] */,
+ struct samr_Password *old_owf_password /* [out] [ref] */,
+ struct netr_TrustInfo **trust_info /* [out] [ref] */)
+{
+ struct netr_ServerGetTrustInfo r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(netr_ServerGetTrustInfo, &r);
+ }
+
+ status = cli_do_rpc_ndr(cli,
+ mem_ctx,
+ &ndr_table_netlogon,
+ NDR_NETR_SERVERGETTRUSTINFO,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(netr_ServerGetTrustInfo, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *new_owf_password = *r.out.new_owf_password;
+ *old_owf_password = *r.out.old_owf_password;
+ *trust_info = *r.out.trust_info;
+
+ /* Return result */
+ return r.out.result;
+}
+