summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-01-21 14:05:51 +0100
committerJelmer Vernooij <jelmer@samba.org>2009-01-21 14:05:51 +0100
commit11a25f90500b64f4b43907f6f311dc5e9731da39 (patch)
treea2fb07bb2cc4040cf5b1c57b827ead14bd84f4a6
parent53293f2ccba357eab6c4325a08517660e979c1d8 (diff)
downloadsamba-11a25f90500b64f4b43907f6f311dc5e9731da39.tar.gz
samba-11a25f90500b64f4b43907f6f311dc5e9731da39.tar.bz2
samba-11a25f90500b64f4b43907f6f311dc5e9731da39.zip
Allow calling DCE/RPC server implementations directly using
rpc_pipe_client.
-rw-r--r--librpc/gen_ndr/cli_dfs.c46
-rw-r--r--librpc/gen_ndr/cli_drsuapi.c50
-rw-r--r--librpc/gen_ndr/cli_dssetup.c22
-rw-r--r--librpc/gen_ndr/cli_echo.c20
-rw-r--r--librpc/gen_ndr/cli_epmapper.c16
-rw-r--r--librpc/gen_ndr/cli_eventlog.c48
-rw-r--r--librpc/gen_ndr/cli_initshutdown.c6
-rw-r--r--librpc/gen_ndr/cli_lsa.c164
-rw-r--r--librpc/gen_ndr/cli_netlogon.c94
-rw-r--r--librpc/gen_ndr/cli_ntsvcs.c130
-rw-r--r--librpc/gen_ndr/cli_samr.c136
-rw-r--r--librpc/gen_ndr/cli_srvsvc.c108
-rw-r--r--librpc/gen_ndr/cli_svcctl.c88
-rw-r--r--librpc/gen_ndr/cli_winreg.c70
-rw-r--r--librpc/gen_ndr/cli_wkssvc.c62
-rw-r--r--librpc/gen_ndr/srv_dfs.c177
-rw-r--r--librpc/gen_ndr/srv_dfs.h24
-rw-r--r--librpc/gen_ndr/srv_dssetup.c85
-rw-r--r--librpc/gen_ndr/srv_dssetup.h12
-rw-r--r--librpc/gen_ndr/srv_echo.c109
-rw-r--r--librpc/gen_ndr/srv_echo.h11
-rw-r--r--librpc/gen_ndr/srv_epmapper.c87
-rw-r--r--librpc/gen_ndr/srv_epmapper.h9
-rw-r--r--librpc/gen_ndr/srv_eventlog.c193
-rw-r--r--librpc/gen_ndr/srv_eventlog.h25
-rw-r--r--librpc/gen_ndr/srv_initshutdown.c31
-rw-r--r--librpc/gen_ndr/srv_initshutdown.h4
-rw-r--r--librpc/gen_ndr/srv_lsa.c764
-rw-r--r--librpc/gen_ndr/srv_lsa.h83
-rw-r--r--librpc/gen_ndr/srv_netlogon.c633
-rw-r--r--librpc/gen_ndr/srv_netlogon.h48
-rw-r--r--librpc/gen_ndr/srv_ntsvcs.c441
-rw-r--r--librpc/gen_ndr/srv_ntsvcs.h66
-rw-r--r--librpc/gen_ndr/srv_samr.c785
-rw-r--r--librpc/gen_ndr/srv_samr.h69
-rw-r--r--librpc/gen_ndr/srv_srvsvc.c492
-rw-r--r--librpc/gen_ndr/srv_srvsvc.h55
-rw-r--r--librpc/gen_ndr/srv_svcctl.c563
-rw-r--r--librpc/gen_ndr/srv_svcctl.h45
-rw-r--r--librpc/gen_ndr/srv_winreg.c361
-rw-r--r--librpc/gen_ndr/srv_winreg.h36
-rw-r--r--librpc/gen_ndr/srv_wkssvc.c282
-rw-r--r--librpc/gen_ndr/srv_wkssvc.h32
-rw-r--r--pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm2
-rw-r--r--pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm133
-rw-r--r--source3/include/client.h8
-rw-r--r--source3/include/proto.h4
-rw-r--r--source3/librpc/rpc/dcerpc.h2
-rw-r--r--source3/rpc_client/cli_pipe.c42
-rw-r--r--source3/rpc_client/ndr.c2
50 files changed, 6201 insertions, 574 deletions
diff --git a/librpc/gen_ndr/cli_dfs.c b/librpc/gen_ndr/cli_dfs.c
index d2c9b4f03f..e8691dc635 100644
--- a/librpc/gen_ndr/cli_dfs.c
+++ b/librpc/gen_ndr/cli_dfs.c
@@ -19,7 +19,7 @@ NTSTATUS rpccli_dfs_GetManagerVersion(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_GetManagerVersion, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_GETMANAGERVERSION,
@@ -67,7 +67,7 @@ NTSTATUS rpccli_dfs_Add(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_Add, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_ADD,
@@ -114,7 +114,7 @@ NTSTATUS rpccli_dfs_Remove(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_Remove, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_REMOVE,
@@ -165,7 +165,7 @@ NTSTATUS rpccli_dfs_SetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_SetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_SETINFO,
@@ -215,7 +215,7 @@ NTSTATUS rpccli_dfs_GetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_GetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_GETINFO,
@@ -265,7 +265,7 @@ NTSTATUS rpccli_dfs_Enum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_Enum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_ENUM,
@@ -312,7 +312,7 @@ NTSTATUS rpccli_dfs_Rename(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_Rename, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_RENAME,
@@ -353,7 +353,7 @@ NTSTATUS rpccli_dfs_Move(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_Move, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_MOVE,
@@ -394,7 +394,7 @@ NTSTATUS rpccli_dfs_ManagerGetConfigInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_ManagerGetConfigInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_MANAGERGETCONFIGINFO,
@@ -435,7 +435,7 @@ NTSTATUS rpccli_dfs_ManagerSendSiteInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_ManagerSendSiteInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_MANAGERSENDSITEINFO,
@@ -494,7 +494,7 @@ NTSTATUS rpccli_dfs_AddFtRoot(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_AddFtRoot, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_ADDFTROOT,
@@ -550,7 +550,7 @@ NTSTATUS rpccli_dfs_RemoveFtRoot(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_RemoveFtRoot, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_REMOVEFTROOT,
@@ -602,7 +602,7 @@ NTSTATUS rpccli_dfs_AddStdRoot(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_AddStdRoot, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_ADDSTDROOT,
@@ -649,7 +649,7 @@ NTSTATUS rpccli_dfs_RemoveStdRoot(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_RemoveStdRoot, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_REMOVESTDROOT,
@@ -694,7 +694,7 @@ NTSTATUS rpccli_dfs_ManagerInitialize(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_ManagerInitialize, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_MANAGERINITIALIZE,
@@ -743,7 +743,7 @@ NTSTATUS rpccli_dfs_AddStdRootForced(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_AddStdRootForced, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_ADDSTDROOTFORCED,
@@ -792,7 +792,7 @@ NTSTATUS rpccli_dfs_GetDcAddress(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_GetDcAddress, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_GETDCADDRESS,
@@ -844,7 +844,7 @@ NTSTATUS rpccli_dfs_SetDcAddress(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_SetDcAddress, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_SETDCADDRESS,
@@ -889,7 +889,7 @@ NTSTATUS rpccli_dfs_FlushFtTable(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_FlushFtTable, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_FLUSHFTTABLE,
@@ -930,7 +930,7 @@ NTSTATUS rpccli_dfs_Add2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_Add2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_ADD2,
@@ -971,7 +971,7 @@ NTSTATUS rpccli_dfs_Remove2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_Remove2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_REMOVE2,
@@ -1022,7 +1022,7 @@ NTSTATUS rpccli_dfs_EnumEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_EnumEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_ENUMEX,
@@ -1069,7 +1069,7 @@ NTSTATUS rpccli_dfs_SetInfo2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dfs_SetInfo2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netdfs,
NDR_DFS_SETINFO2,
diff --git a/librpc/gen_ndr/cli_drsuapi.c b/librpc/gen_ndr/cli_drsuapi.c
index 4063a67c43..be83eebe1f 100644
--- a/librpc/gen_ndr/cli_drsuapi.c
+++ b/librpc/gen_ndr/cli_drsuapi.c
@@ -24,7 +24,7 @@ NTSTATUS rpccli_drsuapi_DsBind(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsBind, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSBIND,
@@ -71,7 +71,7 @@ NTSTATUS rpccli_drsuapi_DsUnbind(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsUnbind, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSUNBIND,
@@ -119,7 +119,7 @@ NTSTATUS rpccli_drsuapi_DsReplicaSync(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaSync, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSREPLICASYNC,
@@ -168,7 +168,7 @@ NTSTATUS rpccli_drsuapi_DsGetNCChanges(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsGetNCChanges, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSGETNCCHANGES,
@@ -217,7 +217,7 @@ NTSTATUS rpccli_drsuapi_DsReplicaUpdateRefs(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaUpdateRefs, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSREPLICAUPDATEREFS,
@@ -258,7 +258,7 @@ NTSTATUS rpccli_DRSUAPI_REPLICA_ADD(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_ADD, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_REPLICA_ADD,
@@ -299,7 +299,7 @@ NTSTATUS rpccli_DRSUAPI_REPLICA_DEL(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_DEL, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_REPLICA_DEL,
@@ -340,7 +340,7 @@ NTSTATUS rpccli_DRSUAPI_REPLICA_MODIFY(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_MODIFY, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_REPLICA_MODIFY,
@@ -381,7 +381,7 @@ NTSTATUS rpccli_DRSUAPI_VERIFY_NAMES(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_VERIFY_NAMES, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_VERIFY_NAMES,
@@ -430,7 +430,7 @@ NTSTATUS rpccli_drsuapi_DsGetMemberships(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsGetMemberships, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSGETMEMBERSHIPS,
@@ -473,7 +473,7 @@ NTSTATUS rpccli_DRSUAPI_INTER_DOMAIN_MOVE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_INTER_DOMAIN_MOVE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_INTER_DOMAIN_MOVE,
@@ -522,7 +522,7 @@ NTSTATUS rpccli_drsuapi_DsGetNT4ChangeLog(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsGetNT4ChangeLog, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSGETNT4CHANGELOG,
@@ -573,7 +573,7 @@ NTSTATUS rpccli_drsuapi_DsCrackNames(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsCrackNames, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSCRACKNAMES,
@@ -624,7 +624,7 @@ NTSTATUS rpccli_drsuapi_DsWriteAccountSpn(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsWriteAccountSpn, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSWRITEACCOUNTSPN,
@@ -675,7 +675,7 @@ NTSTATUS rpccli_drsuapi_DsRemoveDSServer(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsRemoveDSServer, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSREMOVEDSSERVER,
@@ -718,7 +718,7 @@ NTSTATUS rpccli_DRSUAPI_REMOVE_DS_DOMAIN(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_REMOVE_DS_DOMAIN, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_REMOVE_DS_DOMAIN,
@@ -767,7 +767,7 @@ NTSTATUS rpccli_drsuapi_DsGetDomainControllerInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsGetDomainControllerInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSGETDOMAINCONTROLLERINFO,
@@ -818,7 +818,7 @@ NTSTATUS rpccli_drsuapi_DsAddEntry(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsAddEntry, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSADDENTRY,
@@ -861,7 +861,7 @@ NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_EXECUTE_KCC, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_EXECUTE_KCC,
@@ -910,7 +910,7 @@ NTSTATUS rpccli_drsuapi_DsReplicaGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsReplicaGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSREPLICAGETINFO,
@@ -953,7 +953,7 @@ NTSTATUS rpccli_DRSUAPI_ADD_SID_HISTORY(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_ADD_SID_HISTORY, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_ADD_SID_HISTORY,
@@ -1002,7 +1002,7 @@ NTSTATUS rpccli_drsuapi_DsGetMemberships2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_DsGetMemberships2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_DSGETMEMBERSHIPS2,
@@ -1045,7 +1045,7 @@ NTSTATUS rpccli_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_REPLICA_VERIFY_OBJECTS, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_REPLICA_VERIFY_OBJECTS,
@@ -1086,7 +1086,7 @@ NTSTATUS rpccli_DRSUAPI_GET_OBJECT_EXISTENCE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(DRSUAPI_GET_OBJECT_EXISTENCE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_GET_OBJECT_EXISTENCE,
@@ -1135,7 +1135,7 @@ NTSTATUS rpccli_drsuapi_QuerySitesByCost(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(drsuapi_QuerySitesByCost, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_drsuapi,
NDR_DRSUAPI_QUERYSITESBYCOST,
diff --git a/librpc/gen_ndr/cli_dssetup.c b/librpc/gen_ndr/cli_dssetup.c
index 39abe34d4d..6cf923ff82 100644
--- a/librpc/gen_ndr/cli_dssetup.c
+++ b/librpc/gen_ndr/cli_dssetup.c
@@ -22,7 +22,7 @@ NTSTATUS rpccli_dssetup_DsRoleGetPrimaryDomainInformation(struct rpc_pipe_client
NDR_PRINT_IN_DEBUG(dssetup_DsRoleGetPrimaryDomainInformation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEGETPRIMARYDOMAININFORMATION,
@@ -66,7 +66,7 @@ NTSTATUS rpccli_dssetup_DsRoleDnsNameToFlatName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dssetup_DsRoleDnsNameToFlatName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEDNSNAMETOFLATNAME,
@@ -107,7 +107,7 @@ NTSTATUS rpccli_dssetup_DsRoleDcAsDc(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dssetup_DsRoleDcAsDc, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEDCASDC,
@@ -148,7 +148,7 @@ NTSTATUS rpccli_dssetup_DsRoleDcAsReplica(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dssetup_DsRoleDcAsReplica, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEDCASREPLICA,
@@ -189,7 +189,7 @@ NTSTATUS rpccli_dssetup_DsRoleDemoteDc(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dssetup_DsRoleDemoteDc, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEDEMOTEDC,
@@ -230,7 +230,7 @@ NTSTATUS rpccli_dssetup_DsRoleGetDcOperationProgress(struct rpc_pipe_client *cli
NDR_PRINT_IN_DEBUG(dssetup_DsRoleGetDcOperationProgress, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEGETDCOPERATIONPROGRESS,
@@ -271,7 +271,7 @@ NTSTATUS rpccli_dssetup_DsRoleGetDcOperationResults(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dssetup_DsRoleGetDcOperationResults, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEGETDCOPERATIONRESULTS,
@@ -312,7 +312,7 @@ NTSTATUS rpccli_dssetup_DsRoleCancel(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(dssetup_DsRoleCancel, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLECANCEL,
@@ -353,7 +353,7 @@ NTSTATUS rpccli_dssetup_DsRoleServerSaveStateForUpgrade(struct rpc_pipe_client *
NDR_PRINT_IN_DEBUG(dssetup_DsRoleServerSaveStateForUpgrade, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLESERVERSAVESTATEFORUPGRADE,
@@ -394,7 +394,7 @@ NTSTATUS rpccli_dssetup_DsRoleUpgradeDownlevelServer(struct rpc_pipe_client *cli
NDR_PRINT_IN_DEBUG(dssetup_DsRoleUpgradeDownlevelServer, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEUPGRADEDOWNLEVELSERVER,
@@ -435,7 +435,7 @@ NTSTATUS rpccli_dssetup_DsRoleAbortDownlevelServerUpgrade(struct rpc_pipe_client
NDR_PRINT_IN_DEBUG(dssetup_DsRoleAbortDownlevelServerUpgrade, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_dssetup,
NDR_DSSETUP_DSROLEABORTDOWNLEVELSERVERUPGRADE,
diff --git a/librpc/gen_ndr/cli_echo.c b/librpc/gen_ndr/cli_echo.c
index f59a191883..ff369c7d5a 100644
--- a/librpc/gen_ndr/cli_echo.c
+++ b/librpc/gen_ndr/cli_echo.c
@@ -21,7 +21,7 @@ NTSTATUS rpccli_echo_AddOne(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_AddOne, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_ADDONE,
@@ -63,7 +63,7 @@ NTSTATUS rpccli_echo_EchoData(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_EchoData, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_ECHODATA,
@@ -104,7 +104,7 @@ NTSTATUS rpccli_echo_SinkData(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_SinkData, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_SINKDATA,
@@ -143,7 +143,7 @@ NTSTATUS rpccli_echo_SourceData(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_SourceData, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_SOURCEDATA,
@@ -183,7 +183,7 @@ NTSTATUS rpccli_echo_TestCall(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_TestCall, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_TESTCALL,
@@ -223,7 +223,7 @@ NTSTATUS rpccli_echo_TestCall2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_TestCall2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_TESTCALL2,
@@ -262,7 +262,7 @@ NTSTATUS rpccli_echo_TestSleep(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_TestSleep, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_TESTSLEEP,
@@ -304,7 +304,7 @@ NTSTATUS rpccli_echo_TestEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_TestEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_TESTENUM,
@@ -345,7 +345,7 @@ NTSTATUS rpccli_echo_TestSurrounding(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_TestSurrounding, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_TESTSURROUNDING,
@@ -384,7 +384,7 @@ NTSTATUS rpccli_echo_TestDoublePointer(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(echo_TestDoublePointer, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_rpcecho,
NDR_ECHO_TESTDOUBLEPOINTER,
diff --git a/librpc/gen_ndr/cli_epmapper.c b/librpc/gen_ndr/cli_epmapper.c
index 6ef5f9aae5..0ccefa97cb 100644
--- a/librpc/gen_ndr/cli_epmapper.c
+++ b/librpc/gen_ndr/cli_epmapper.c
@@ -24,7 +24,7 @@ NTSTATUS rpccli_epm_Insert(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_Insert, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_INSERT,
@@ -64,7 +64,7 @@ NTSTATUS rpccli_epm_Delete(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_Delete, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_DELETE,
@@ -114,7 +114,7 @@ NTSTATUS rpccli_epm_Lookup(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_Lookup, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_LOOKUP,
@@ -163,7 +163,7 @@ NTSTATUS rpccli_epm_Map(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_Map, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_MAP,
@@ -204,7 +204,7 @@ NTSTATUS rpccli_epm_LookupHandleFree(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_LookupHandleFree, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_LOOKUPHANDLEFREE,
@@ -243,7 +243,7 @@ NTSTATUS rpccli_epm_InqObject(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_InqObject, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_INQOBJECT,
@@ -285,7 +285,7 @@ NTSTATUS rpccli_epm_MgmtDelete(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_MgmtDelete, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_MGMTDELETE,
@@ -321,7 +321,7 @@ NTSTATUS rpccli_epm_MapAuth(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(epm_MapAuth, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_epmapper,
NDR_EPM_MAPAUTH,
diff --git a/librpc/gen_ndr/cli_eventlog.c b/librpc/gen_ndr/cli_eventlog.c
index cf441413a7..2f4b9f21af 100644
--- a/librpc/gen_ndr/cli_eventlog.c
+++ b/librpc/gen_ndr/cli_eventlog.c
@@ -22,7 +22,7 @@ NTSTATUS rpccli_eventlog_ClearEventLogW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_ClearEventLogW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_CLEAREVENTLOGW,
@@ -58,7 +58,7 @@ NTSTATUS rpccli_eventlog_BackupEventLogW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_BackupEventLogW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_BACKUPEVENTLOGW,
@@ -96,7 +96,7 @@ NTSTATUS rpccli_eventlog_CloseEventLog(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_CloseEventLog, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_CLOSEEVENTLOG,
@@ -133,7 +133,7 @@ NTSTATUS rpccli_eventlog_DeregisterEventSource(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_DeregisterEventSource, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_DEREGISTEREVENTSOURCE,
@@ -172,7 +172,7 @@ NTSTATUS rpccli_eventlog_GetNumRecords(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_GetNumRecords, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_GETNUMRECORDS,
@@ -212,7 +212,7 @@ NTSTATUS rpccli_eventlog_GetOldestRecord(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_GetOldestRecord, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_GETOLDESTRECORD,
@@ -249,7 +249,7 @@ NTSTATUS rpccli_eventlog_ChangeNotify(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_ChangeNotify, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_CHANGENOTIFY,
@@ -296,7 +296,7 @@ NTSTATUS rpccli_eventlog_OpenEventLogW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_OpenEventLogW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_OPENEVENTLOGW,
@@ -333,7 +333,7 @@ NTSTATUS rpccli_eventlog_RegisterEventSourceW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_RegisterEventSourceW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_REGISTEREVENTSOURCEW,
@@ -369,7 +369,7 @@ NTSTATUS rpccli_eventlog_OpenBackupEventLogW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_OpenBackupEventLogW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_OPENBACKUPEVENTLOGW,
@@ -416,7 +416,7 @@ NTSTATUS rpccli_eventlog_ReadEventLogW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_ReadEventLogW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_READEVENTLOGW,
@@ -455,7 +455,7 @@ NTSTATUS rpccli_eventlog_ReportEventW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_ReportEventW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_REPORTEVENTW,
@@ -491,7 +491,7 @@ NTSTATUS rpccli_eventlog_ClearEventLogA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_ClearEventLogA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_CLEAREVENTLOGA,
@@ -527,7 +527,7 @@ NTSTATUS rpccli_eventlog_BackupEventLogA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_BackupEventLogA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_BACKUPEVENTLOGA,
@@ -563,7 +563,7 @@ NTSTATUS rpccli_eventlog_OpenEventLogA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_OpenEventLogA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_OPENEVENTLOGA,
@@ -599,7 +599,7 @@ NTSTATUS rpccli_eventlog_RegisterEventSourceA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_RegisterEventSourceA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_REGISTEREVENTSOURCEA,
@@ -635,7 +635,7 @@ NTSTATUS rpccli_eventlog_OpenBackupEventLogA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_OpenBackupEventLogA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_OPENBACKUPEVENTLOGA,
@@ -671,7 +671,7 @@ NTSTATUS rpccli_eventlog_ReadEventLogA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_ReadEventLogA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_READEVENTLOGA,
@@ -707,7 +707,7 @@ NTSTATUS rpccli_eventlog_ReportEventA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_ReportEventA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_REPORTEVENTA,
@@ -743,7 +743,7 @@ NTSTATUS rpccli_eventlog_RegisterClusterSvc(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_RegisterClusterSvc, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_REGISTERCLUSTERSVC,
@@ -779,7 +779,7 @@ NTSTATUS rpccli_eventlog_DeregisterClusterSvc(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_DeregisterClusterSvc, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_DEREGISTERCLUSTERSVC,
@@ -815,7 +815,7 @@ NTSTATUS rpccli_eventlog_WriteClusterEvents(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_WriteClusterEvents, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_WRITECLUSTEREVENTS,
@@ -851,7 +851,7 @@ NTSTATUS rpccli_eventlog_GetLogIntormation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_GetLogIntormation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_GETLOGINTORMATION,
@@ -889,7 +889,7 @@ NTSTATUS rpccli_eventlog_FlushEventLog(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(eventlog_FlushEventLog, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_eventlog,
NDR_EVENTLOG_FLUSHEVENTLOG,
diff --git a/librpc/gen_ndr/cli_initshutdown.c b/librpc/gen_ndr/cli_initshutdown.c
index 40d7bdf40e..3861e0c3e4 100644
--- a/librpc/gen_ndr/cli_initshutdown.c
+++ b/librpc/gen_ndr/cli_initshutdown.c
@@ -29,7 +29,7 @@ NTSTATUS rpccli_initshutdown_Init(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(initshutdown_Init, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_initshutdown,
NDR_INITSHUTDOWN_INIT,
@@ -72,7 +72,7 @@ NTSTATUS rpccli_initshutdown_Abort(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(initshutdown_Abort, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_initshutdown,
NDR_INITSHUTDOWN_ABORT,
@@ -125,7 +125,7 @@ NTSTATUS rpccli_initshutdown_InitEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(initshutdown_InitEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_initshutdown,
NDR_INITSHUTDOWN_INITEX,
diff --git a/librpc/gen_ndr/cli_lsa.c b/librpc/gen_ndr/cli_lsa.c
index 306206fcaf..93362537b4 100644
--- a/librpc/gen_ndr/cli_lsa.c
+++ b/librpc/gen_ndr/cli_lsa.c
@@ -20,7 +20,7 @@ NTSTATUS rpccli_lsa_Close(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_Close, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CLOSE,
@@ -59,7 +59,7 @@ NTSTATUS rpccli_lsa_Delete(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_Delete, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_DELETE,
@@ -102,7 +102,7 @@ NTSTATUS rpccli_lsa_EnumPrivs(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_EnumPrivs, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ENUMPRIVS,
@@ -145,7 +145,7 @@ NTSTATUS rpccli_lsa_QuerySecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QuerySecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYSECURITY,
@@ -188,7 +188,7 @@ NTSTATUS rpccli_lsa_SetSecObj(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetSecObj, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETSECOBJ,
@@ -224,7 +224,7 @@ NTSTATUS rpccli_lsa_ChangePassword(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_ChangePassword, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CHANGEPASSWORD,
@@ -267,7 +267,7 @@ NTSTATUS rpccli_lsa_OpenPolicy(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_OpenPolicy, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_OPENPOLICY,
@@ -309,7 +309,7 @@ NTSTATUS rpccli_lsa_QueryInfoPolicy(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QueryInfoPolicy, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYINFOPOLICY,
@@ -352,7 +352,7 @@ NTSTATUS rpccli_lsa_SetInfoPolicy(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetInfoPolicy, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETINFOPOLICY,
@@ -388,7 +388,7 @@ NTSTATUS rpccli_lsa_ClearAuditLog(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_ClearAuditLog, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CLEARAUDITLOG,
@@ -431,7 +431,7 @@ NTSTATUS rpccli_lsa_CreateAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CreateAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREATEACCOUNT,
@@ -475,7 +475,7 @@ NTSTATUS rpccli_lsa_EnumAccounts(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_EnumAccounts, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ENUMACCOUNTS,
@@ -520,7 +520,7 @@ NTSTATUS rpccli_lsa_CreateTrustedDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREATETRUSTEDDOMAIN,
@@ -564,7 +564,7 @@ NTSTATUS rpccli_lsa_EnumTrustDom(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_EnumTrustDom, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ENUMTRUSTDOM,
@@ -615,7 +615,7 @@ NTSTATUS rpccli_lsa_LookupNames(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupNames, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPNAMES,
@@ -665,7 +665,7 @@ NTSTATUS rpccli_lsa_LookupSids(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupSids, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPSIDS,
@@ -711,7 +711,7 @@ NTSTATUS rpccli_lsa_CreateSecret(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CreateSecret, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREATESECRET,
@@ -755,7 +755,7 @@ NTSTATUS rpccli_lsa_OpenAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_OpenAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_OPENACCOUNT,
@@ -795,7 +795,7 @@ NTSTATUS rpccli_lsa_EnumPrivsAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_EnumPrivsAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ENUMPRIVSACCOUNT,
@@ -836,7 +836,7 @@ NTSTATUS rpccli_lsa_AddPrivilegesToAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_AddPrivilegesToAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ADDPRIVILEGESTOACCOUNT,
@@ -878,7 +878,7 @@ NTSTATUS rpccli_lsa_RemovePrivilegesFromAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_RemovePrivilegesFromAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_REMOVEPRIVILEGESFROMACCOUNT,
@@ -914,7 +914,7 @@ NTSTATUS rpccli_lsa_GetQuotasForAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_GetQuotasForAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_GETQUOTASFORACCOUNT,
@@ -950,7 +950,7 @@ NTSTATUS rpccli_lsa_SetQuotasForAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetQuotasForAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETQUOTASFORACCOUNT,
@@ -989,7 +989,7 @@ NTSTATUS rpccli_lsa_GetSystemAccessAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_GetSystemAccessAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_GETSYSTEMACCESSACCOUNT,
@@ -1030,7 +1030,7 @@ NTSTATUS rpccli_lsa_SetSystemAccessAccount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetSystemAccessAccount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETSYSTEMACCESSACCOUNT,
@@ -1073,7 +1073,7 @@ NTSTATUS rpccli_lsa_OpenTrustedDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_OpenTrustedDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_OPENTRUSTEDDOMAIN,
@@ -1115,7 +1115,7 @@ NTSTATUS rpccli_lsa_QueryTrustedDomainInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QueryTrustedDomainInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYTRUSTEDDOMAININFO,
@@ -1158,7 +1158,7 @@ NTSTATUS rpccli_lsa_SetInformationTrustedDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetInformationTrustedDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETINFORMATIONTRUSTEDDOMAIN,
@@ -1201,7 +1201,7 @@ NTSTATUS rpccli_lsa_OpenSecret(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_OpenSecret, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_OPENSECRET,
@@ -1244,7 +1244,7 @@ NTSTATUS rpccli_lsa_SetSecret(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetSecret, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETSECRET,
@@ -1290,7 +1290,7 @@ NTSTATUS rpccli_lsa_QuerySecret(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QuerySecret, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYSECRET,
@@ -1343,7 +1343,7 @@ NTSTATUS rpccli_lsa_LookupPrivValue(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupPrivValue, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPPRIVVALUE,
@@ -1385,7 +1385,7 @@ NTSTATUS rpccli_lsa_LookupPrivName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupPrivName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPPRIVNAME,
@@ -1432,7 +1432,7 @@ NTSTATUS rpccli_lsa_LookupPrivDisplayName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupPrivDisplayName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPPRIVDISPLAYNAME,
@@ -1472,7 +1472,7 @@ NTSTATUS rpccli_lsa_DeleteObject(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_DeleteObject, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_DELETEOBJECT,
@@ -1514,7 +1514,7 @@ NTSTATUS rpccli_lsa_EnumAccountsWithUserRight(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_EnumAccountsWithUserRight, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ENUMACCOUNTSWITHUSERRIGHT,
@@ -1556,7 +1556,7 @@ NTSTATUS rpccli_lsa_EnumAccountRights(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_EnumAccountRights, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ENUMACCOUNTRIGHTS,
@@ -1599,7 +1599,7 @@ NTSTATUS rpccli_lsa_AddAccountRights(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_AddAccountRights, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ADDACCOUNTRIGHTS,
@@ -1643,7 +1643,7 @@ NTSTATUS rpccli_lsa_RemoveAccountRights(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_RemoveAccountRights, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_REMOVEACCOUNTRIGHTS,
@@ -1686,7 +1686,7 @@ NTSTATUS rpccli_lsa_QueryTrustedDomainInfoBySid(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QueryTrustedDomainInfoBySid, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYTRUSTEDDOMAININFOBYSID,
@@ -1731,7 +1731,7 @@ NTSTATUS rpccli_lsa_SetTrustedDomainInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetTrustedDomainInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETTRUSTEDDOMAININFO,
@@ -1771,7 +1771,7 @@ NTSTATUS rpccli_lsa_DeleteTrustedDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_DeleteTrustedDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_DELETETRUSTEDDOMAIN,
@@ -1807,7 +1807,7 @@ NTSTATUS rpccli_lsa_StorePrivateData(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_StorePrivateData, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_STOREPRIVATEDATA,
@@ -1843,7 +1843,7 @@ NTSTATUS rpccli_lsa_RetrievePrivateData(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_RetrievePrivateData, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_RETRIEVEPRIVATEDATA,
@@ -1886,7 +1886,7 @@ NTSTATUS rpccli_lsa_OpenPolicy2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_OpenPolicy2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_OPENPOLICY2,
@@ -1929,7 +1929,7 @@ NTSTATUS rpccli_lsa_GetUserName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_GetUserName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_GETUSERNAME,
@@ -1974,7 +1974,7 @@ NTSTATUS rpccli_lsa_QueryInfoPolicy2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QueryInfoPolicy2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYINFOPOLICY2,
@@ -2017,7 +2017,7 @@ NTSTATUS rpccli_lsa_SetInfoPolicy2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetInfoPolicy2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETINFOPOLICY2,
@@ -2060,7 +2060,7 @@ NTSTATUS rpccli_lsa_QueryTrustedDomainInfoByName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QueryTrustedDomainInfoByName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYTRUSTEDDOMAININFOBYNAME,
@@ -2105,7 +2105,7 @@ NTSTATUS rpccli_lsa_SetTrustedDomainInfoByName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetTrustedDomainInfoByName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETTRUSTEDDOMAININFOBYNAME,
@@ -2148,7 +2148,7 @@ NTSTATUS rpccli_lsa_EnumTrustedDomainsEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_EnumTrustedDomainsEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_ENUMTRUSTEDDOMAINSEX,
@@ -2195,7 +2195,7 @@ NTSTATUS rpccli_lsa_CreateTrustedDomainEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREATETRUSTEDDOMAINEX,
@@ -2234,7 +2234,7 @@ NTSTATUS rpccli_lsa_CloseTrustedDomainEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CloseTrustedDomainEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CLOSETRUSTEDDOMAINEX,
@@ -2276,7 +2276,7 @@ NTSTATUS rpccli_lsa_QueryDomainInformationPolicy(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_QueryDomainInformationPolicy, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_QUERYDOMAININFORMATIONPOLICY,
@@ -2319,7 +2319,7 @@ NTSTATUS rpccli_lsa_SetDomainInformationPolicy(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_SetDomainInformationPolicy, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_SETDOMAININFORMATIONPOLICY,
@@ -2362,7 +2362,7 @@ NTSTATUS rpccli_lsa_OpenTrustedDomainByName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_OpenTrustedDomainByName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_OPENTRUSTEDDOMAINBYNAME,
@@ -2399,7 +2399,7 @@ NTSTATUS rpccli_lsa_TestCall(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_TestCall, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_TESTCALL,
@@ -2450,7 +2450,7 @@ NTSTATUS rpccli_lsa_LookupSids2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupSids2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPSIDS2,
@@ -2506,7 +2506,7 @@ NTSTATUS rpccli_lsa_LookupNames2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupNames2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPNAMES2,
@@ -2554,7 +2554,7 @@ NTSTATUS rpccli_lsa_CreateTrustedDomainEx2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREATETRUSTEDDOMAINEX2,
@@ -2591,7 +2591,7 @@ NTSTATUS rpccli_lsa_CREDRWRITE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRWRITE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRWRITE,
@@ -2627,7 +2627,7 @@ NTSTATUS rpccli_lsa_CREDRREAD(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRREAD, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRREAD,
@@ -2663,7 +2663,7 @@ NTSTATUS rpccli_lsa_CREDRENUMERATE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRENUMERATE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRENUMERATE,
@@ -2699,7 +2699,7 @@ NTSTATUS rpccli_lsa_CREDRWRITEDOMAINCREDENTIALS(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRWRITEDOMAINCREDENTIALS, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRWRITEDOMAINCREDENTIALS,
@@ -2735,7 +2735,7 @@ NTSTATUS rpccli_lsa_CREDRREADDOMAINCREDENTIALS(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRREADDOMAINCREDENTIALS, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRREADDOMAINCREDENTIALS,
@@ -2771,7 +2771,7 @@ NTSTATUS rpccli_lsa_CREDRDELETE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRDELETE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRDELETE,
@@ -2807,7 +2807,7 @@ NTSTATUS rpccli_lsa_CREDRGETTARGETINFO(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRGETTARGETINFO, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRGETTARGETINFO,
@@ -2843,7 +2843,7 @@ NTSTATUS rpccli_lsa_CREDRPROFILELOADED(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRPROFILELOADED, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRPROFILELOADED,
@@ -2896,7 +2896,7 @@ NTSTATUS rpccli_lsa_LookupNames3(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupNames3, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPNAMES3,
@@ -2935,7 +2935,7 @@ NTSTATUS rpccli_lsa_CREDRGETSESSIONTYPES(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRGETSESSIONTYPES, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRGETSESSIONTYPES,
@@ -2971,7 +2971,7 @@ NTSTATUS rpccli_lsa_LSARREGISTERAUDITEVENT(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LSARREGISTERAUDITEVENT, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARREGISTERAUDITEVENT,
@@ -3007,7 +3007,7 @@ NTSTATUS rpccli_lsa_LSARGENAUDITEVENT(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LSARGENAUDITEVENT, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARGENAUDITEVENT,
@@ -3043,7 +3043,7 @@ NTSTATUS rpccli_lsa_LSARUNREGISTERAUDITEVENT(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LSARUNREGISTERAUDITEVENT, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARUNREGISTERAUDITEVENT,
@@ -3086,7 +3086,7 @@ NTSTATUS rpccli_lsa_lsaRQueryForestTrustInformation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_lsaRQueryForestTrustInformation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARQUERYFORESTTRUSTINFORMATION,
@@ -3123,7 +3123,7 @@ NTSTATUS rpccli_lsa_LSARSETFORESTTRUSTINFORMATION(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LSARSETFORESTTRUSTINFORMATION, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARSETFORESTTRUSTINFORMATION,
@@ -3159,7 +3159,7 @@ NTSTATUS rpccli_lsa_CREDRRENAME(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_CREDRRENAME, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_CREDRRENAME,
@@ -3208,7 +3208,7 @@ NTSTATUS rpccli_lsa_LookupSids3(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupSids3, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPSIDS3,
@@ -3262,7 +3262,7 @@ NTSTATUS rpccli_lsa_LookupNames4(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LookupNames4, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LOOKUPNAMES4,
@@ -3301,7 +3301,7 @@ NTSTATUS rpccli_lsa_LSAROPENPOLICYSCE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LSAROPENPOLICYSCE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSAROPENPOLICYSCE,
@@ -3337,7 +3337,7 @@ NTSTATUS rpccli_lsa_LSARADTREGISTERSECURITYEVENTSOURCE(struct rpc_pipe_client *c
NDR_PRINT_IN_DEBUG(lsa_LSARADTREGISTERSECURITYEVENTSOURCE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARADTREGISTERSECURITYEVENTSOURCE,
@@ -3373,7 +3373,7 @@ NTSTATUS rpccli_lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(struct rpc_pipe_client
NDR_PRINT_IN_DEBUG(lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARADTUNREGISTERSECURITYEVENTSOURCE,
@@ -3409,7 +3409,7 @@ NTSTATUS rpccli_lsa_LSARADTREPORTSECURITYEVENT(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(lsa_LSARADTREPORTSECURITYEVENT, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_lsarpc,
NDR_LSA_LSARADTREPORTSECURITYEVENT,
diff --git a/librpc/gen_ndr/cli_netlogon.c b/librpc/gen_ndr/cli_netlogon.c
index 2dcdbaeb9b..456bb71a3d 100644
--- a/librpc/gen_ndr/cli_netlogon.c
+++ b/librpc/gen_ndr/cli_netlogon.c
@@ -26,7 +26,7 @@ NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonUasLogon, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONUASLOGON,
@@ -75,7 +75,7 @@ NTSTATUS rpccli_netr_LogonUasLogoff(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonUasLogoff, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONUASLOGOFF,
@@ -132,7 +132,7 @@ NTSTATUS rpccli_netr_LogonSamLogon(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonSamLogon, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGON,
@@ -185,7 +185,7 @@ NTSTATUS rpccli_netr_LogonSamLogoff(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonSamLogoff, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGOFF,
@@ -231,7 +231,7 @@ NTSTATUS rpccli_netr_ServerReqChallenge(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerReqChallenge, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERREQCHALLENGE,
@@ -279,7 +279,7 @@ NTSTATUS rpccli_netr_ServerAuthenticate(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE,
@@ -329,7 +329,7 @@ NTSTATUS rpccli_netr_ServerPasswordSet(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerPasswordSet, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDSET,
@@ -381,7 +381,7 @@ NTSTATUS rpccli_netr_DatabaseDeltas(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DatabaseDeltas, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASEDELTAS,
@@ -435,7 +435,7 @@ NTSTATUS rpccli_netr_DatabaseSync(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DatabaseSync, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASESYNC,
@@ -494,7 +494,7 @@ NTSTATUS rpccli_netr_AccountDeltas(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_AccountDeltas, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_ACCOUNTDELTAS,
@@ -555,7 +555,7 @@ NTSTATUS rpccli_netr_AccountSync(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_AccountSync, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_ACCOUNTSYNC,
@@ -603,7 +603,7 @@ NTSTATUS rpccli_netr_GetDcName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_GetDcName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_GETDCNAME,
@@ -652,7 +652,7 @@ NTSTATUS rpccli_netr_LogonControl(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonControl, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL,
@@ -699,7 +699,7 @@ NTSTATUS rpccli_netr_GetAnyDCName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_GetAnyDCName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_GETANYDCNAME,
@@ -750,7 +750,7 @@ NTSTATUS rpccli_netr_LogonControl2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonControl2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL2,
@@ -804,7 +804,7 @@ NTSTATUS rpccli_netr_ServerAuthenticate2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE2,
@@ -859,7 +859,7 @@ NTSTATUS rpccli_netr_DatabaseSync2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DatabaseSync2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASESYNC2,
@@ -911,7 +911,7 @@ NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DatabaseRedo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASEREDO,
@@ -959,7 +959,7 @@ NTSTATUS rpccli_netr_LogonControl2Ex(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonControl2Ex, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL2EX,
@@ -1004,7 +1004,7 @@ NTSTATUS rpccli_netr_NetrEnumerateTrustedDomains(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_NetrEnumerateTrustedDomains, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRENUMERATETRUSTEDDOMAINS,
@@ -1057,7 +1057,7 @@ NTSTATUS rpccli_netr_DsRGetDCName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsRGetDCName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAME,
@@ -1099,7 +1099,7 @@ NTSTATUS rpccli_netr_NETRLOGONDUMMYROUTINE1(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_NETRLOGONDUMMYROUTINE1, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONDUMMYROUTINE1,
@@ -1140,7 +1140,7 @@ NTSTATUS rpccli_netr_NETRLOGONSETSERVICEBITS(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_NETRLOGONSETSERVICEBITS, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONSETSERVICEBITS,
@@ -1186,7 +1186,7 @@ NTSTATUS rpccli_netr_LogonGetTrustRid(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonGetTrustRid, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONGETTRUSTRID,
@@ -1228,7 +1228,7 @@ NTSTATUS rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_NETRLOGONCOMPUTESERVERDIGEST, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST,
@@ -1269,7 +1269,7 @@ NTSTATUS rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_NETRLOGONCOMPUTECLIENTDIGEST, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST,
@@ -1323,7 +1323,7 @@ NTSTATUS rpccli_netr_ServerAuthenticate3(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate3, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE3,
@@ -1374,7 +1374,7 @@ NTSTATUS rpccli_netr_DsRGetDCNameEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsRGetDCNameEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAMEEX,
@@ -1419,7 +1419,7 @@ NTSTATUS rpccli_netr_DsRGetSiteName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsRGetSiteName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETSITENAME,
@@ -1473,7 +1473,7 @@ NTSTATUS rpccli_netr_LogonGetDomainInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonGetDomainInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONGETDOMAININFO,
@@ -1524,7 +1524,7 @@ NTSTATUS rpccli_netr_ServerPasswordSet2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerPasswordSet2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDSET2,
@@ -1574,7 +1574,7 @@ NTSTATUS rpccli_netr_ServerPasswordGet(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerPasswordGet, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDGET,
@@ -1617,7 +1617,7 @@ NTSTATUS rpccli_netr_NETRLOGONSENDTOSAM(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_NETRLOGONSENDTOSAM, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONSENDTOSAM,
@@ -1665,7 +1665,7 @@ NTSTATUS rpccli_netr_DsRAddressToSitenamesW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsRAddressToSitenamesW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRADDRESSTOSITENAMESW,
@@ -1722,7 +1722,7 @@ NTSTATUS rpccli_netr_DsRGetDCNameEx2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsRGetDCNameEx2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAMEEX2,
@@ -1764,7 +1764,7 @@ NTSTATUS rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct rpc_pipe_client
NDR_PRINT_IN_DEBUG(netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
@@ -1808,7 +1808,7 @@ NTSTATUS rpccli_netr_NetrEnumerateTrustedDomainsEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_NetrEnumerateTrustedDomainsEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX,
@@ -1857,7 +1857,7 @@ NTSTATUS rpccli_netr_DsRAddressToSitenamesExW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsRAddressToSitenamesExW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRADDRESSTOSITENAMESEXW,
@@ -1902,7 +1902,7 @@ NTSTATUS rpccli_netr_DsrGetDcSiteCoverageW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsrGetDcSiteCoverageW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCSITECOVERAGEW,
@@ -1957,7 +1957,7 @@ NTSTATUS rpccli_netr_LogonSamLogonEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonSamLogonEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGONEX,
@@ -2002,7 +2002,7 @@ NTSTATUS rpccli_netr_DsrEnumerateDomainTrusts(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsrEnumerateDomainTrusts, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRENUMERATEDOMAINTRUSTS,
@@ -2054,7 +2054,7 @@ NTSTATUS rpccli_netr_DsrDeregisterDNSHostRecords(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsrDeregisterDNSHostRecords, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS,
@@ -2107,7 +2107,7 @@ NTSTATUS rpccli_netr_ServerTrustPasswordsGet(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerTrustPasswordsGet, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERTRUSTPASSWORDSGET,
@@ -2154,7 +2154,7 @@ NTSTATUS rpccli_netr_DsRGetForestTrustInformation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_DsRGetForestTrustInformation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETFORESTTRUSTINFORMATION,
@@ -2206,7 +2206,7 @@ NTSTATUS rpccli_netr_GetForestTrustInformation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_GetForestTrustInformation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_GETFORESTTRUSTINFORMATION,
@@ -2266,7 +2266,7 @@ NTSTATUS rpccli_netr_LogonSamLogonWithFlags(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_LogonSamLogonWithFlags, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGONWITHFLAGS,
@@ -2322,7 +2322,7 @@ NTSTATUS rpccli_netr_ServerGetTrustInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(netr_ServerGetTrustInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERGETTRUSTINFO,
diff --git a/librpc/gen_ndr/cli_ntsvcs.c b/librpc/gen_ndr/cli_ntsvcs.c
index 0736a027f9..179368de14 100644
--- a/librpc/gen_ndr/cli_ntsvcs.c
+++ b/librpc/gen_ndr/cli_ntsvcs.c
@@ -19,7 +19,7 @@ NTSTATUS rpccli_PNP_Disconnect(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_Disconnect, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_DISCONNECT,
@@ -60,7 +60,7 @@ NTSTATUS rpccli_PNP_Connect(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_Connect, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_CONNECT,
@@ -102,7 +102,7 @@ NTSTATUS rpccli_PNP_GetVersion(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetVersion, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETVERSION,
@@ -144,7 +144,7 @@ NTSTATUS rpccli_PNP_GetGlobalState(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetGlobalState, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETGLOBALSTATE,
@@ -185,7 +185,7 @@ NTSTATUS rpccli_PNP_InitDetection(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_InitDetection, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_INITDETECTION,
@@ -226,7 +226,7 @@ NTSTATUS rpccli_PNP_ReportLogOn(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_ReportLogOn, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_REPORTLOGON,
@@ -271,7 +271,7 @@ NTSTATUS rpccli_PNP_ValidateDeviceInstance(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_ValidateDeviceInstance, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_VALIDATEDEVICEINSTANCE,
@@ -312,7 +312,7 @@ NTSTATUS rpccli_PNP_GetRootDeviceInstance(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetRootDeviceInstance, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETROOTDEVICEINSTANCE,
@@ -353,7 +353,7 @@ NTSTATUS rpccli_PNP_GetRelatedDeviceInstance(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetRelatedDeviceInstance, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETRELATEDDEVICEINSTANCE,
@@ -394,7 +394,7 @@ NTSTATUS rpccli_PNP_EnumerateSubKeys(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_EnumerateSubKeys, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_ENUMERATESUBKEYS,
@@ -442,7 +442,7 @@ NTSTATUS rpccli_PNP_GetDeviceList(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetDeviceList, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETDEVICELIST,
@@ -490,7 +490,7 @@ NTSTATUS rpccli_PNP_GetDeviceListSize(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetDeviceListSize, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETDEVICELISTSIZE,
@@ -532,7 +532,7 @@ NTSTATUS rpccli_PNP_GetDepth(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetDepth, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETDEPTH,
@@ -586,7 +586,7 @@ NTSTATUS rpccli_PNP_GetDeviceRegProp(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetDeviceRegProp, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETDEVICEREGPROP,
@@ -631,7 +631,7 @@ NTSTATUS rpccli_PNP_SetDeviceRegProp(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_SetDeviceRegProp, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_SETDEVICEREGPROP,
@@ -672,7 +672,7 @@ NTSTATUS rpccli_PNP_GetClassInstance(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetClassInstance, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETCLASSINSTANCE,
@@ -713,7 +713,7 @@ NTSTATUS rpccli_PNP_CreateKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_CreateKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_CREATEKEY,
@@ -754,7 +754,7 @@ NTSTATUS rpccli_PNP_DeleteRegistryKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_DeleteRegistryKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_DELETEREGISTRYKEY,
@@ -795,7 +795,7 @@ NTSTATUS rpccli_PNP_GetClassCount(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetClassCount, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETCLASSCOUNT,
@@ -836,7 +836,7 @@ NTSTATUS rpccli_PNP_GetClassName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetClassName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETCLASSNAME,
@@ -877,7 +877,7 @@ NTSTATUS rpccli_PNP_DeleteClassKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_DeleteClassKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_DELETECLASSKEY,
@@ -918,7 +918,7 @@ NTSTATUS rpccli_PNP_GetInterfaceDeviceAlias(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetInterfaceDeviceAlias, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETINTERFACEDEVICEALIAS,
@@ -959,7 +959,7 @@ NTSTATUS rpccli_PNP_GetInterfaceDeviceList(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetInterfaceDeviceList, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETINTERFACEDEVICELIST,
@@ -1000,7 +1000,7 @@ NTSTATUS rpccli_PNP_GetInterfaceDeviceListSize(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetInterfaceDeviceListSize, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETINTERFACEDEVICELISTSIZE,
@@ -1041,7 +1041,7 @@ NTSTATUS rpccli_PNP_RegisterDeviceClassAssociation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_RegisterDeviceClassAssociation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_REGISTERDEVICECLASSASSOCIATION,
@@ -1082,7 +1082,7 @@ NTSTATUS rpccli_PNP_UnregisterDeviceClassAssociation(struct rpc_pipe_client *cli
NDR_PRINT_IN_DEBUG(PNP_UnregisterDeviceClassAssociation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_UNREGISTERDEVICECLASSASSOCIATION,
@@ -1123,7 +1123,7 @@ NTSTATUS rpccli_PNP_GetClassRegProp(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetClassRegProp, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETCLASSREGPROP,
@@ -1164,7 +1164,7 @@ NTSTATUS rpccli_PNP_SetClassRegProp(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_SetClassRegProp, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_SETCLASSREGPROP,
@@ -1205,7 +1205,7 @@ NTSTATUS rpccli_PNP_CreateDevInst(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_CreateDevInst, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_CREATEDEVINST,
@@ -1246,7 +1246,7 @@ NTSTATUS rpccli_PNP_DeviceInstanceAction(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_DeviceInstanceAction, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_DEVICEINSTANCEACTION,
@@ -1287,7 +1287,7 @@ NTSTATUS rpccli_PNP_GetDeviceStatus(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetDeviceStatus, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETDEVICESTATUS,
@@ -1328,7 +1328,7 @@ NTSTATUS rpccli_PNP_SetDeviceProblem(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_SetDeviceProblem, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_SETDEVICEPROBLEM,
@@ -1369,7 +1369,7 @@ NTSTATUS rpccli_PNP_DisableDevInst(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_DisableDevInst, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_DISABLEDEVINST,
@@ -1410,7 +1410,7 @@ NTSTATUS rpccli_PNP_UninstallDevInst(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_UninstallDevInst, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_UNINSTALLDEVINST,
@@ -1451,7 +1451,7 @@ NTSTATUS rpccli_PNP_AddID(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_AddID, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_ADDID,
@@ -1492,7 +1492,7 @@ NTSTATUS rpccli_PNP_RegisterDriver(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_RegisterDriver, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_REGISTERDRIVER,
@@ -1533,7 +1533,7 @@ NTSTATUS rpccli_PNP_QueryRemove(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_QueryRemove, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_QUERYREMOVE,
@@ -1574,7 +1574,7 @@ NTSTATUS rpccli_PNP_RequestDeviceEject(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_RequestDeviceEject, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_REQUESTDEVICEEJECT,
@@ -1615,7 +1615,7 @@ NTSTATUS rpccli_PNP_IsDockStationPresent(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_IsDockStationPresent, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_ISDOCKSTATIONPRESENT,
@@ -1656,7 +1656,7 @@ NTSTATUS rpccli_PNP_RequestEjectPC(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_RequestEjectPC, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_REQUESTEJECTPC,
@@ -1714,7 +1714,7 @@ NTSTATUS rpccli_PNP_HwProfFlags(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_HwProfFlags, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_HWPROFFLAGS,
@@ -1770,7 +1770,7 @@ NTSTATUS rpccli_PNP_GetHwProfInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetHwProfInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETHWPROFINFO,
@@ -1812,7 +1812,7 @@ NTSTATUS rpccli_PNP_AddEmptyLogConf(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_AddEmptyLogConf, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_ADDEMPTYLOGCONF,
@@ -1853,7 +1853,7 @@ NTSTATUS rpccli_PNP_FreeLogConf(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_FreeLogConf, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_FREELOGCONF,
@@ -1894,7 +1894,7 @@ NTSTATUS rpccli_PNP_GetFirstLogConf(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetFirstLogConf, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETFIRSTLOGCONF,
@@ -1935,7 +1935,7 @@ NTSTATUS rpccli_PNP_GetNextLogConf(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetNextLogConf, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETNEXTLOGCONF,
@@ -1976,7 +1976,7 @@ NTSTATUS rpccli_PNP_GetLogConfPriority(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetLogConfPriority, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETLOGCONFPRIORITY,
@@ -2017,7 +2017,7 @@ NTSTATUS rpccli_PNP_AddResDes(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_AddResDes, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_ADDRESDES,
@@ -2058,7 +2058,7 @@ NTSTATUS rpccli_PNP_FreeResDes(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_FreeResDes, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_FREERESDES,
@@ -2099,7 +2099,7 @@ NTSTATUS rpccli_PNP_GetNextResDes(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetNextResDes, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETNEXTRESDES,
@@ -2140,7 +2140,7 @@ NTSTATUS rpccli_PNP_GetResDesData(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetResDesData, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETRESDESDATA,
@@ -2181,7 +2181,7 @@ NTSTATUS rpccli_PNP_GetResDesDataSize(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetResDesDataSize, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETRESDESDATASIZE,
@@ -2222,7 +2222,7 @@ NTSTATUS rpccli_PNP_ModifyResDes(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_ModifyResDes, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_MODIFYRESDES,
@@ -2263,7 +2263,7 @@ NTSTATUS rpccli_PNP_DetectResourceLimit(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_DetectResourceLimit, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_DETECTRESOURCELIMIT,
@@ -2304,7 +2304,7 @@ NTSTATUS rpccli_PNP_QueryResConfList(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_QueryResConfList, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_QUERYRESCONFLIST,
@@ -2345,7 +2345,7 @@ NTSTATUS rpccli_PNP_SetHwProf(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_SetHwProf, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_SETHWPROF,
@@ -2386,7 +2386,7 @@ NTSTATUS rpccli_PNP_QueryArbitratorFreeData(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_QueryArbitratorFreeData, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_QUERYARBITRATORFREEDATA,
@@ -2427,7 +2427,7 @@ NTSTATUS rpccli_PNP_QueryArbitratorFreeSize(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_QueryArbitratorFreeSize, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_QUERYARBITRATORFREESIZE,
@@ -2468,7 +2468,7 @@ NTSTATUS rpccli_PNP_RunDetection(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_RunDetection, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_RUNDETECTION,
@@ -2509,7 +2509,7 @@ NTSTATUS rpccli_PNP_RegisterNotification(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_RegisterNotification, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_REGISTERNOTIFICATION,
@@ -2550,7 +2550,7 @@ NTSTATUS rpccli_PNP_UnregisterNotification(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_UnregisterNotification, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_UNREGISTERNOTIFICATION,
@@ -2591,7 +2591,7 @@ NTSTATUS rpccli_PNP_GetCustomDevProp(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetCustomDevProp, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETCUSTOMDEVPROP,
@@ -2632,7 +2632,7 @@ NTSTATUS rpccli_PNP_GetVersionInternal(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetVersionInternal, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETVERSIONINTERNAL,
@@ -2673,7 +2673,7 @@ NTSTATUS rpccli_PNP_GetBlockedDriverInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetBlockedDriverInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETBLOCKEDDRIVERINFO,
@@ -2714,7 +2714,7 @@ NTSTATUS rpccli_PNP_GetServerSideDeviceInstallFlags(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(PNP_GetServerSideDeviceInstallFlags, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_ntsvcs,
NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS,
diff --git a/librpc/gen_ndr/cli_samr.c b/librpc/gen_ndr/cli_samr.c
index 9099d0b35d..1e3bd122b8 100644
--- a/librpc/gen_ndr/cli_samr.c
+++ b/librpc/gen_ndr/cli_samr.c
@@ -23,7 +23,7 @@ NTSTATUS rpccli_samr_Connect(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_Connect, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CONNECT,
@@ -62,7 +62,7 @@ NTSTATUS rpccli_samr_Close(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_Close, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CLOSE,
@@ -105,7 +105,7 @@ NTSTATUS rpccli_samr_SetSecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetSecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETSECURITY,
@@ -146,7 +146,7 @@ NTSTATUS rpccli_samr_QuerySecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QuerySecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYSECURITY,
@@ -185,7 +185,7 @@ NTSTATUS rpccli_samr_Shutdown(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_Shutdown, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SHUTDOWN,
@@ -226,7 +226,7 @@ NTSTATUS rpccli_samr_LookupDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_LookupDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_LOOKUPDOMAIN,
@@ -271,7 +271,7 @@ NTSTATUS rpccli_samr_EnumDomains(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_EnumDomains, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_ENUMDOMAINS,
@@ -317,7 +317,7 @@ NTSTATUS rpccli_samr_OpenDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_OpenDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_OPENDOMAIN,
@@ -359,7 +359,7 @@ NTSTATUS rpccli_samr_QueryDomainInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryDomainInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYDOMAININFO,
@@ -402,7 +402,7 @@ NTSTATUS rpccli_samr_SetDomainInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetDomainInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETDOMAININFO,
@@ -446,7 +446,7 @@ NTSTATUS rpccli_samr_CreateDomainGroup(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_CreateDomainGroup, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CREATEDOMAINGROUP,
@@ -492,7 +492,7 @@ NTSTATUS rpccli_samr_EnumDomainGroups(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_EnumDomainGroups, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_ENUMDOMAINGROUPS,
@@ -539,7 +539,7 @@ NTSTATUS rpccli_samr_CreateUser(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_CreateUser, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CREATEUSER,
@@ -587,7 +587,7 @@ NTSTATUS rpccli_samr_EnumDomainUsers(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_EnumDomainUsers, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_ENUMDOMAINUSERS,
@@ -634,7 +634,7 @@ NTSTATUS rpccli_samr_CreateDomAlias(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_CreateDomAlias, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CREATEDOMALIAS,
@@ -680,7 +680,7 @@ NTSTATUS rpccli_samr_EnumDomainAliases(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_EnumDomainAliases, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_ENUMDOMAINALIASES,
@@ -724,7 +724,7 @@ NTSTATUS rpccli_samr_GetAliasMembership(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetAliasMembership, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETALIASMEMBERSHIP,
@@ -769,7 +769,7 @@ NTSTATUS rpccli_samr_LookupNames(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_LookupNames, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_LOOKUPNAMES,
@@ -815,7 +815,7 @@ NTSTATUS rpccli_samr_LookupRids(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_LookupRids, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_LOOKUPRIDS,
@@ -860,7 +860,7 @@ NTSTATUS rpccli_samr_OpenGroup(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_OpenGroup, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_OPENGROUP,
@@ -902,7 +902,7 @@ NTSTATUS rpccli_samr_QueryGroupInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryGroupInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYGROUPINFO,
@@ -945,7 +945,7 @@ NTSTATUS rpccli_samr_SetGroupInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetGroupInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETGROUPINFO,
@@ -987,7 +987,7 @@ NTSTATUS rpccli_samr_AddGroupMember(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_AddGroupMember, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_ADDGROUPMEMBER,
@@ -1025,7 +1025,7 @@ NTSTATUS rpccli_samr_DeleteDomainGroup(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_DeleteDomainGroup, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_DELETEDOMAINGROUP,
@@ -1066,7 +1066,7 @@ NTSTATUS rpccli_samr_DeleteGroupMember(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_DeleteGroupMember, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_DELETEGROUPMEMBER,
@@ -1105,7 +1105,7 @@ NTSTATUS rpccli_samr_QueryGroupMember(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryGroupMember, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYGROUPMEMBER,
@@ -1148,7 +1148,7 @@ NTSTATUS rpccli_samr_SetMemberAttributesOfGroup(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetMemberAttributesOfGroup, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETMEMBERATTRIBUTESOFGROUP,
@@ -1191,7 +1191,7 @@ NTSTATUS rpccli_samr_OpenAlias(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_OpenAlias, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_OPENALIAS,
@@ -1233,7 +1233,7 @@ NTSTATUS rpccli_samr_QueryAliasInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryAliasInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYALIASINFO,
@@ -1276,7 +1276,7 @@ NTSTATUS rpccli_samr_SetAliasInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetAliasInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETALIASINFO,
@@ -1314,7 +1314,7 @@ NTSTATUS rpccli_samr_DeleteDomAlias(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_DeleteDomAlias, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_DELETEDOMALIAS,
@@ -1355,7 +1355,7 @@ NTSTATUS rpccli_samr_AddAliasMember(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_AddAliasMember, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_ADDALIASMEMBER,
@@ -1395,7 +1395,7 @@ NTSTATUS rpccli_samr_DeleteAliasMember(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_DeleteAliasMember, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_DELETEALIASMEMBER,
@@ -1434,7 +1434,7 @@ NTSTATUS rpccli_samr_GetMembersInAlias(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetMembersInAlias, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETMEMBERSINALIAS,
@@ -1478,7 +1478,7 @@ NTSTATUS rpccli_samr_OpenUser(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_OpenUser, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_OPENUSER,
@@ -1517,7 +1517,7 @@ NTSTATUS rpccli_samr_DeleteUser(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_DeleteUser, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_DELETEUSER,
@@ -1559,7 +1559,7 @@ NTSTATUS rpccli_samr_QueryUserInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryUserInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYUSERINFO,
@@ -1602,7 +1602,7 @@ NTSTATUS rpccli_samr_SetUserInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetUserInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETUSERINFO,
@@ -1660,7 +1660,7 @@ NTSTATUS rpccli_samr_ChangePasswordUser(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_ChangePasswordUser, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CHANGEPASSWORDUSER,
@@ -1699,7 +1699,7 @@ NTSTATUS rpccli_samr_GetGroupsForUser(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetGroupsForUser, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETGROUPSFORUSER,
@@ -1749,7 +1749,7 @@ NTSTATUS rpccli_samr_QueryDisplayInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryDisplayInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYDISPLAYINFO,
@@ -1795,7 +1795,7 @@ NTSTATUS rpccli_samr_GetDisplayEnumerationIndex(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetDisplayEnumerationIndex, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETDISPLAYENUMERATIONINDEX,
@@ -1834,7 +1834,7 @@ NTSTATUS rpccli_samr_TestPrivateFunctionsDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_TestPrivateFunctionsDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_TESTPRIVATEFUNCTIONSDOMAIN,
@@ -1872,7 +1872,7 @@ NTSTATUS rpccli_samr_TestPrivateFunctionsUser(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_TestPrivateFunctionsUser, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_TESTPRIVATEFUNCTIONSUSER,
@@ -1911,7 +1911,7 @@ NTSTATUS rpccli_samr_GetUserPwInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetUserPwInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETUSERPWINFO,
@@ -1952,7 +1952,7 @@ NTSTATUS rpccli_samr_RemoveMemberFromForeignDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_RemoveMemberFromForeignDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_REMOVEMEMBERFROMFOREIGNDOMAIN,
@@ -1993,7 +1993,7 @@ NTSTATUS rpccli_samr_QueryDomainInfo2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryDomainInfo2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYDOMAININFO2,
@@ -2035,7 +2035,7 @@ NTSTATUS rpccli_samr_QueryUserInfo2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryUserInfo2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYUSERINFO2,
@@ -2085,7 +2085,7 @@ NTSTATUS rpccli_samr_QueryDisplayInfo2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryDisplayInfo2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYDISPLAYINFO2,
@@ -2131,7 +2131,7 @@ NTSTATUS rpccli_samr_GetDisplayEnumerationIndex2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetDisplayEnumerationIndex2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETDISPLAYENUMERATIONINDEX2,
@@ -2179,7 +2179,7 @@ NTSTATUS rpccli_samr_CreateUser2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_CreateUser2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CREATEUSER2,
@@ -2231,7 +2231,7 @@ NTSTATUS rpccli_samr_QueryDisplayInfo3(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_QueryDisplayInfo3, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_QUERYDISPLAYINFO3,
@@ -2274,7 +2274,7 @@ NTSTATUS rpccli_samr_AddMultipleMembersToAlias(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_AddMultipleMembersToAlias, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_ADDMULTIPLEMEMBERSTOALIAS,
@@ -2314,7 +2314,7 @@ NTSTATUS rpccli_samr_RemoveMultipleMembersFromAlias(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_RemoveMultipleMembersFromAlias, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_REMOVEMULTIPLEMEMBERSFROMALIAS,
@@ -2358,7 +2358,7 @@ NTSTATUS rpccli_samr_OemChangePasswordUser2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_OemChangePasswordUser2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_OEMCHANGEPASSWORDUSER2,
@@ -2408,7 +2408,7 @@ NTSTATUS rpccli_samr_ChangePasswordUser2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_ChangePasswordUser2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CHANGEPASSWORDUSER2,
@@ -2447,7 +2447,7 @@ NTSTATUS rpccli_samr_GetDomPwInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetDomPwInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETDOMPWINFO,
@@ -2489,7 +2489,7 @@ NTSTATUS rpccli_samr_Connect2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_Connect2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CONNECT2,
@@ -2532,7 +2532,7 @@ NTSTATUS rpccli_samr_SetUserInfo2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetUserInfo2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETUSERINFO2,
@@ -2576,7 +2576,7 @@ NTSTATUS rpccli_samr_SetBootKeyInformation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetBootKeyInformation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETBOOTKEYINFORMATION,
@@ -2615,7 +2615,7 @@ NTSTATUS rpccli_samr_GetBootKeyInformation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_GetBootKeyInformation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_GETBOOTKEYINFORMATION,
@@ -2659,7 +2659,7 @@ NTSTATUS rpccli_samr_Connect3(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_Connect3, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CONNECT3,
@@ -2703,7 +2703,7 @@ NTSTATUS rpccli_samr_Connect4(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_Connect4, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CONNECT4,
@@ -2758,7 +2758,7 @@ NTSTATUS rpccli_samr_ChangePasswordUser3(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_ChangePasswordUser3, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CHANGEPASSWORDUSER3,
@@ -2807,7 +2807,7 @@ NTSTATUS rpccli_samr_Connect5(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_Connect5, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_CONNECT5,
@@ -2851,7 +2851,7 @@ NTSTATUS rpccli_samr_RidToSid(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_RidToSid, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_RIDTOSID,
@@ -2894,7 +2894,7 @@ NTSTATUS rpccli_samr_SetDsrmPassword(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_SetDsrmPassword, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_SETDSRMPASSWORD,
@@ -2935,7 +2935,7 @@ NTSTATUS rpccli_samr_ValidatePassword(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(samr_ValidatePassword, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_samr,
NDR_SAMR_VALIDATEPASSWORD,
diff --git a/librpc/gen_ndr/cli_srvsvc.c b/librpc/gen_ndr/cli_srvsvc.c
index 1428d3d888..d372510135 100644
--- a/librpc/gen_ndr/cli_srvsvc.c
+++ b/librpc/gen_ndr/cli_srvsvc.c
@@ -28,7 +28,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVENUM,
@@ -81,7 +81,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVGETINFO,
@@ -129,7 +129,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevControl(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevControl, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVCONTROL,
@@ -181,7 +181,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevQEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevQEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVQENUM,
@@ -236,7 +236,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevQGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevQGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVQGETINFO,
@@ -288,7 +288,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevQSetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevQSetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVQSETINFO,
@@ -336,7 +336,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevQPurge(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevQPurge, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVQPURGE,
@@ -383,7 +383,7 @@ NTSTATUS rpccli_srvsvc_NetCharDevQPurgeSelf(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetCharDevQPurgeSelf, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCHARDEVQPURGESELF,
@@ -435,7 +435,7 @@ NTSTATUS rpccli_srvsvc_NetConnEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetConnEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETCONNENUM,
@@ -494,7 +494,7 @@ NTSTATUS rpccli_srvsvc_NetFileEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetFileEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETFILEENUM,
@@ -547,7 +547,7 @@ NTSTATUS rpccli_srvsvc_NetFileGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetFileGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETFILEGETINFO,
@@ -593,7 +593,7 @@ NTSTATUS rpccli_srvsvc_NetFileClose(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetFileClose, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETFILECLOSE,
@@ -647,7 +647,7 @@ NTSTATUS rpccli_srvsvc_NetSessEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetSessEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSESSENUM,
@@ -699,7 +699,7 @@ NTSTATUS rpccli_srvsvc_NetSessDel(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetSessDel, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSESSDEL,
@@ -748,7 +748,7 @@ NTSTATUS rpccli_srvsvc_NetShareAdd(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareAdd, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREADD,
@@ -801,7 +801,7 @@ NTSTATUS rpccli_srvsvc_NetShareEnumAll(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareEnumAll, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREENUMALL,
@@ -854,7 +854,7 @@ NTSTATUS rpccli_srvsvc_NetShareGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREGETINFO,
@@ -906,7 +906,7 @@ NTSTATUS rpccli_srvsvc_NetShareSetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareSetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHARESETINFO,
@@ -956,7 +956,7 @@ NTSTATUS rpccli_srvsvc_NetShareDel(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareDel, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREDEL,
@@ -1003,7 +1003,7 @@ NTSTATUS rpccli_srvsvc_NetShareDelSticky(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareDelSticky, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREDELSTICKY,
@@ -1049,7 +1049,7 @@ NTSTATUS rpccli_srvsvc_NetShareCheck(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareCheck, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHARECHECK,
@@ -1096,7 +1096,7 @@ NTSTATUS rpccli_srvsvc_NetSrvGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetSrvGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSRVGETINFO,
@@ -1146,7 +1146,7 @@ NTSTATUS rpccli_srvsvc_NetSrvSetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetSrvSetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSRVSETINFO,
@@ -1201,7 +1201,7 @@ NTSTATUS rpccli_srvsvc_NetDiskEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetDiskEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETDISKENUM,
@@ -1256,7 +1256,7 @@ NTSTATUS rpccli_srvsvc_NetServerStatisticsGet(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetServerStatisticsGet, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSERVERSTATISTICSGET,
@@ -1304,7 +1304,7 @@ NTSTATUS rpccli_srvsvc_NetTransportAdd(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetTransportAdd, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETTRANSPORTADD,
@@ -1354,7 +1354,7 @@ NTSTATUS rpccli_srvsvc_NetTransportEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetTransportEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETTRANSPORTENUM,
@@ -1406,7 +1406,7 @@ NTSTATUS rpccli_srvsvc_NetTransportDel(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetTransportDel, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETTRANSPORTDEL,
@@ -1450,7 +1450,7 @@ NTSTATUS rpccli_srvsvc_NetRemoteTOD(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetRemoteTOD, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETREMOTETOD,
@@ -1500,7 +1500,7 @@ NTSTATUS rpccli_srvsvc_NetSetServiceBits(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetSetServiceBits, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSETSERVICEBITS,
@@ -1548,7 +1548,7 @@ NTSTATUS rpccli_srvsvc_NetPathType(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetPathType, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETPATHTYPE,
@@ -1603,7 +1603,7 @@ NTSTATUS rpccli_srvsvc_NetPathCanonicalize(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetPathCanonicalize, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETPATHCANONICALIZE,
@@ -1656,7 +1656,7 @@ NTSTATUS rpccli_srvsvc_NetPathCompare(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetPathCompare, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETPATHCOMPARE,
@@ -1705,7 +1705,7 @@ NTSTATUS rpccli_srvsvc_NetNameValidate(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetNameValidate, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETNAMEVALIDATE,
@@ -1746,7 +1746,7 @@ NTSTATUS rpccli_srvsvc_NETRPRNAMECANONICALIZE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRPRNAMECANONICALIZE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRPRNAMECANONICALIZE,
@@ -1797,7 +1797,7 @@ NTSTATUS rpccli_srvsvc_NetPRNameCompare(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetPRNameCompare, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETPRNAMECOMPARE,
@@ -1847,7 +1847,7 @@ NTSTATUS rpccli_srvsvc_NetShareEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREENUM,
@@ -1900,7 +1900,7 @@ NTSTATUS rpccli_srvsvc_NetShareDelStart(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareDelStart, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREDELSTART,
@@ -1946,7 +1946,7 @@ NTSTATUS rpccli_srvsvc_NetShareDelCommit(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetShareDelCommit, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSHAREDELCOMMIT,
@@ -1999,7 +1999,7 @@ NTSTATUS rpccli_srvsvc_NetGetFileSecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetGetFileSecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETGETFILESECURITY,
@@ -2051,7 +2051,7 @@ NTSTATUS rpccli_srvsvc_NetSetFileSecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetSetFileSecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSETFILESECURITY,
@@ -2098,7 +2098,7 @@ NTSTATUS rpccli_srvsvc_NetServerTransportAddEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetServerTransportAddEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSERVERTRANSPORTADDEX,
@@ -2151,7 +2151,7 @@ NTSTATUS rpccli_srvsvc_NetServerSetServiceBitsEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NetServerSetServiceBitsEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETSERVERSETSERVICEBITSEX,
@@ -2192,7 +2192,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSGETVERSION(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSGETVERSION, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSGETVERSION,
@@ -2233,7 +2233,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSCREATELOCALPARTITION(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSCREATELOCALPARTITION, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSCREATELOCALPARTITION,
@@ -2274,7 +2274,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSDELETELOCALPARTITION(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSDELETELOCALPARTITION, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSDELETELOCALPARTITION,
@@ -2315,7 +2315,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSSETLOCALVOLUMESTATE(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSSETLOCALVOLUMESTATE, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSSETLOCALVOLUMESTATE,
@@ -2356,7 +2356,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSSETSERVERINFO(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSSETSERVERINFO, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSSETSERVERINFO,
@@ -2397,7 +2397,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSCREATEEXITPOINT(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSCREATEEXITPOINT, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSCREATEEXITPOINT,
@@ -2438,7 +2438,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSDELETEEXITPOINT(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSDELETEEXITPOINT, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSDELETEEXITPOINT,
@@ -2479,7 +2479,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSMODIFYPREFIX(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSMODIFYPREFIX, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSMODIFYPREFIX,
@@ -2520,7 +2520,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSFIXLOCALVOLUME(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSFIXLOCALVOLUME, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSFIXLOCALVOLUME,
@@ -2561,7 +2561,7 @@ NTSTATUS rpccli_srvsvc_NETRDFSMANAGERREPORTSITEINFO(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRDFSMANAGERREPORTSITEINFO, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRDFSMANAGERREPORTSITEINFO,
@@ -2602,7 +2602,7 @@ NTSTATUS rpccli_srvsvc_NETRSERVERTRANSPORTDELEX(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(srvsvc_NETRSERVERTRANSPORTDELEX, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_srvsvc,
NDR_SRVSVC_NETRSERVERTRANSPORTDELEX,
diff --git a/librpc/gen_ndr/cli_svcctl.c b/librpc/gen_ndr/cli_svcctl.c
index 4a5f49049e..4c013f52b3 100644
--- a/librpc/gen_ndr/cli_svcctl.c
+++ b/librpc/gen_ndr/cli_svcctl.c
@@ -21,7 +21,7 @@ NTSTATUS rpccli_svcctl_CloseServiceHandle(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_CloseServiceHandle, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CLOSESERVICEHANDLE,
@@ -68,7 +68,7 @@ NTSTATUS rpccli_svcctl_ControlService(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_ControlService, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CONTROLSERVICE,
@@ -112,7 +112,7 @@ NTSTATUS rpccli_svcctl_DeleteService(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_DeleteService, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_DELETESERVICE,
@@ -156,7 +156,7 @@ NTSTATUS rpccli_svcctl_LockServiceDatabase(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_LockServiceDatabase, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_LOCKSERVICEDATABASE,
@@ -206,7 +206,7 @@ NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceObjectSecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICEOBJECTSECURITY,
@@ -257,7 +257,7 @@ NTSTATUS rpccli_svcctl_SetServiceObjectSecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_SetServiceObjectSecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_SETSERVICEOBJECTSECURITY,
@@ -301,7 +301,7 @@ NTSTATUS rpccli_svcctl_QueryServiceStatus(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceStatus, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICESTATUS,
@@ -343,7 +343,7 @@ NTSTATUS rpccli_svcctl_SetServiceStatus(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_SetServiceStatus, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_SETSERVICESTATUS,
@@ -386,7 +386,7 @@ NTSTATUS rpccli_svcctl_UnlockServiceDatabase(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_UnlockServiceDatabase, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_UNLOCKSERVICEDATABASE,
@@ -428,7 +428,7 @@ NTSTATUS rpccli_svcctl_NotifyBootConfigStatus(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_NotifyBootConfigStatus, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_NOTIFYBOOTCONFIGSTATUS,
@@ -477,7 +477,7 @@ NTSTATUS rpccli_svcctl_SCSetServiceBitsW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_SCSetServiceBitsW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_SCSETSERVICEBITSW,
@@ -539,7 +539,7 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_ChangeServiceConfigW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CHANGESERVICECONFIGW,
@@ -612,7 +612,7 @@ NTSTATUS rpccli_svcctl_CreateServiceW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_CreateServiceW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CREATESERVICEW,
@@ -666,7 +666,7 @@ NTSTATUS rpccli_svcctl_EnumDependentServicesW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_EnumDependentServicesW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_ENUMDEPENDENTSERVICESW,
@@ -723,7 +723,7 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_EnumServicesStatusW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_ENUMSERVICESSTATUSW,
@@ -777,7 +777,7 @@ NTSTATUS rpccli_svcctl_OpenSCManagerW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_OpenSCManagerW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_OPENSCMANAGERW,
@@ -826,7 +826,7 @@ NTSTATUS rpccli_svcctl_OpenServiceW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_OpenServiceW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_OPENSERVICEW,
@@ -874,7 +874,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfigW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICECONFIGW,
@@ -923,7 +923,7 @@ NTSTATUS rpccli_svcctl_QueryServiceLockStatusW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceLockStatusW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICELOCKSTATUSW,
@@ -972,7 +972,7 @@ NTSTATUS rpccli_svcctl_StartServiceW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_StartServiceW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_STARTSERVICEW,
@@ -1020,7 +1020,7 @@ NTSTATUS rpccli_svcctl_GetServiceDisplayNameW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_GetServiceDisplayNameW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_GETSERVICEDISPLAYNAMEW,
@@ -1072,7 +1072,7 @@ NTSTATUS rpccli_svcctl_GetServiceKeyNameW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_GetServiceKeyNameW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_GETSERVICEKEYNAMEW,
@@ -1125,7 +1125,7 @@ NTSTATUS rpccli_svcctl_SCSetServiceBitsA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_SCSetServiceBitsA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_SCSETSERVICEBITSA,
@@ -1187,7 +1187,7 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_ChangeServiceConfigA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CHANGESERVICECONFIGA,
@@ -1254,7 +1254,7 @@ NTSTATUS rpccli_svcctl_CreateServiceA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_CreateServiceA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CREATESERVICEA,
@@ -1307,7 +1307,7 @@ NTSTATUS rpccli_svcctl_EnumDependentServicesA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_EnumDependentServicesA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_ENUMDEPENDENTSERVICESA,
@@ -1366,7 +1366,7 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_EnumServicesStatusA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_ENUMSERVICESSTATUSA,
@@ -1420,7 +1420,7 @@ NTSTATUS rpccli_svcctl_OpenSCManagerA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_OpenSCManagerA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_OPENSCMANAGERA,
@@ -1468,7 +1468,7 @@ NTSTATUS rpccli_svcctl_OpenServiceA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_OpenServiceA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_OPENSERVICEA,
@@ -1515,7 +1515,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfigA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICECONFIGA,
@@ -1564,7 +1564,7 @@ NTSTATUS rpccli_svcctl_QueryServiceLockStatusA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceLockStatusA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICELOCKSTATUSA,
@@ -1613,7 +1613,7 @@ NTSTATUS rpccli_svcctl_StartServiceA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_StartServiceA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_STARTSERVICEA,
@@ -1661,7 +1661,7 @@ NTSTATUS rpccli_svcctl_GetServiceDisplayNameA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_GetServiceDisplayNameA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_GETSERVICEDISPLAYNAMEA,
@@ -1713,7 +1713,7 @@ NTSTATUS rpccli_svcctl_GetServiceKeyNameA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_GetServiceKeyNameA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_GETSERVICEKEYNAMEA,
@@ -1758,7 +1758,7 @@ NTSTATUS rpccli_svcctl_GetCurrentGroupeStateW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_GetCurrentGroupeStateW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_GETCURRENTGROUPESTATEW,
@@ -1799,7 +1799,7 @@ NTSTATUS rpccli_svcctl_EnumServiceGroupW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_EnumServiceGroupW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_ENUMSERVICEGROUPW,
@@ -1846,7 +1846,7 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfig2A(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_ChangeServiceConfig2A, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CHANGESERVICECONFIG2A,
@@ -1893,7 +1893,7 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfig2W(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_ChangeServiceConfig2W, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_CHANGESERVICECONFIG2W,
@@ -1942,7 +1942,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfig2A, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICECONFIG2A,
@@ -1993,7 +1993,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfig2W, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICECONFIG2W,
@@ -2044,7 +2044,7 @@ NTSTATUS rpccli_svcctl_QueryServiceStatusEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceStatusEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_QUERYSERVICESTATUSEX,
@@ -2103,7 +2103,7 @@ NTSTATUS rpccli_EnumServicesStatusExA(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(EnumServicesStatusExA, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_ENUMSERVICESSTATUSEXA,
@@ -2168,7 +2168,7 @@ NTSTATUS rpccli_EnumServicesStatusExW(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(EnumServicesStatusExW, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_ENUMSERVICESSTATUSEXW,
@@ -2215,7 +2215,7 @@ NTSTATUS rpccli_svcctl_SCSendTSMessage(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(svcctl_SCSendTSMessage, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_svcctl,
NDR_SVCCTL_SCSENDTSMESSAGE,
diff --git a/librpc/gen_ndr/cli_winreg.c b/librpc/gen_ndr/cli_winreg.c
index 00f9e2d610..b18554e63e 100644
--- a/librpc/gen_ndr/cli_winreg.c
+++ b/librpc/gen_ndr/cli_winreg.c
@@ -24,7 +24,7 @@ NTSTATUS rpccli_winreg_OpenHKCR(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKCR, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKCR,
@@ -71,7 +71,7 @@ NTSTATUS rpccli_winreg_OpenHKCU(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKCU, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKCU,
@@ -118,7 +118,7 @@ NTSTATUS rpccli_winreg_OpenHKLM(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKLM, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKLM,
@@ -165,7 +165,7 @@ NTSTATUS rpccli_winreg_OpenHKPD(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKPD, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKPD,
@@ -212,7 +212,7 @@ NTSTATUS rpccli_winreg_OpenHKU(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKU, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKU,
@@ -256,7 +256,7 @@ NTSTATUS rpccli_winreg_CloseKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_CloseKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_CLOSEKEY,
@@ -313,7 +313,7 @@ NTSTATUS rpccli_winreg_CreateKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_CreateKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_CREATEKEY,
@@ -362,7 +362,7 @@ NTSTATUS rpccli_winreg_DeleteKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_DeleteKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_DELETEKEY,
@@ -407,7 +407,7 @@ NTSTATUS rpccli_winreg_DeleteValue(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_DeleteValue, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_DELETEVALUE,
@@ -458,7 +458,7 @@ NTSTATUS rpccli_winreg_EnumKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_EnumKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_ENUMKEY,
@@ -520,7 +520,7 @@ NTSTATUS rpccli_winreg_EnumValue(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_EnumValue, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_ENUMVALUE,
@@ -576,7 +576,7 @@ NTSTATUS rpccli_winreg_FlushKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_FlushKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_FLUSHKEY,
@@ -623,7 +623,7 @@ NTSTATUS rpccli_winreg_GetKeySecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_GetKeySecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_GETKEYSECURITY,
@@ -671,7 +671,7 @@ NTSTATUS rpccli_winreg_LoadKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_LoadKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_LOADKEY,
@@ -726,7 +726,7 @@ NTSTATUS rpccli_winreg_NotifyChangeKeyValue(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_NotifyChangeKeyValue, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_NOTIFYCHANGEKEYVALUE,
@@ -776,7 +776,7 @@ NTSTATUS rpccli_winreg_OpenKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENKEY,
@@ -830,7 +830,7 @@ NTSTATUS rpccli_winreg_QueryInfoKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_QueryInfoKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_QUERYINFOKEY,
@@ -892,7 +892,7 @@ NTSTATUS rpccli_winreg_QueryValue(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_QueryValue, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_QUERYVALUE,
@@ -945,7 +945,7 @@ NTSTATUS rpccli_winreg_ReplaceKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_ReplaceKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_REPLACEKEY,
@@ -992,7 +992,7 @@ NTSTATUS rpccli_winreg_RestoreKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_RestoreKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_RESTOREKEY,
@@ -1039,7 +1039,7 @@ NTSTATUS rpccli_winreg_SaveKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_SaveKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_SAVEKEY,
@@ -1086,7 +1086,7 @@ NTSTATUS rpccli_winreg_SetKeySecurity(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_SetKeySecurity, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_SETKEYSECURITY,
@@ -1137,7 +1137,7 @@ NTSTATUS rpccli_winreg_SetValue(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_SetValue, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_SETVALUE,
@@ -1178,7 +1178,7 @@ NTSTATUS rpccli_winreg_UnLoadKey(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_UnLoadKey, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_UNLOADKEY,
@@ -1229,7 +1229,7 @@ NTSTATUS rpccli_winreg_InitiateSystemShutdown(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_InitiateSystemShutdown, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_INITIATESYSTEMSHUTDOWN,
@@ -1272,7 +1272,7 @@ NTSTATUS rpccli_winreg_AbortSystemShutdown(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_AbortSystemShutdown, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_ABORTSYSTEMSHUTDOWN,
@@ -1316,7 +1316,7 @@ NTSTATUS rpccli_winreg_GetVersion(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_GetVersion, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_GETVERSION,
@@ -1363,7 +1363,7 @@ NTSTATUS rpccli_winreg_OpenHKCC(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKCC, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKCC,
@@ -1410,7 +1410,7 @@ NTSTATUS rpccli_winreg_OpenHKDD(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKDD, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKDD,
@@ -1462,7 +1462,7 @@ NTSTATUS rpccli_winreg_QueryMultipleValues(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_QueryMultipleValues, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_QUERYMULTIPLEVALUES,
@@ -1520,7 +1520,7 @@ NTSTATUS rpccli_winreg_InitiateSystemShutdownEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_InitiateSystemShutdownEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_INITIATESYSTEMSHUTDOWNEX,
@@ -1561,7 +1561,7 @@ NTSTATUS rpccli_winreg_SaveKeyEx(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_SaveKeyEx, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_SAVEKEYEX,
@@ -1607,7 +1607,7 @@ NTSTATUS rpccli_winreg_OpenHKPT(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKPT, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKPT,
@@ -1654,7 +1654,7 @@ NTSTATUS rpccli_winreg_OpenHKPN(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_OpenHKPN, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_OPENHKPN,
@@ -1696,7 +1696,7 @@ NTSTATUS rpccli_winreg_QueryMultipleValues2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(winreg_QueryMultipleValues2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_winreg,
NDR_WINREG_QUERYMULTIPLEVALUES2,
diff --git a/librpc/gen_ndr/cli_wkssvc.c b/librpc/gen_ndr/cli_wkssvc.c
index 628f7f973f..c143058942 100644
--- a/librpc/gen_ndr/cli_wkssvc.c
+++ b/librpc/gen_ndr/cli_wkssvc.c
@@ -24,7 +24,7 @@ NTSTATUS rpccli_wkssvc_NetWkstaGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetWkstaGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETWKSTAGETINFO,
@@ -74,7 +74,7 @@ NTSTATUS rpccli_wkssvc_NetWkstaSetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetWkstaSetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETWKSTASETINFO,
@@ -125,7 +125,7 @@ NTSTATUS rpccli_wkssvc_NetWkstaEnumUsers(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetWkstaEnumUsers, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETWKSTAENUMUSERS,
@@ -176,7 +176,7 @@ NTSTATUS rpccli_wkssvc_NetrWkstaUserGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaUserGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRWKSTAUSERGETINFO,
@@ -226,7 +226,7 @@ NTSTATUS rpccli_wkssvc_NetrWkstaUserSetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaUserSetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRWKSTAUSERSETINFO,
@@ -279,7 +279,7 @@ NTSTATUS rpccli_wkssvc_NetWkstaTransportEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetWkstaTransportEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETWKSTATRANSPORTENUM,
@@ -333,7 +333,7 @@ NTSTATUS rpccli_wkssvc_NetrWkstaTransportAdd(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaTransportAdd, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRWKSTATRANSPORTADD,
@@ -383,7 +383,7 @@ NTSTATUS rpccli_wkssvc_NetrWkstaTransportDel(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrWkstaTransportDel, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRWKSTATRANSPORTDEL,
@@ -432,7 +432,7 @@ NTSTATUS rpccli_wkssvc_NetrUseAdd(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrUseAdd, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRUSEADD,
@@ -483,7 +483,7 @@ NTSTATUS rpccli_wkssvc_NetrUseGetInfo(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrUseGetInfo, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRUSEGETINFO,
@@ -531,7 +531,7 @@ NTSTATUS rpccli_wkssvc_NetrUseDel(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrUseDel, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRUSEDEL,
@@ -581,7 +581,7 @@ NTSTATUS rpccli_wkssvc_NetrUseEnum(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrUseEnum, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRUSEENUM,
@@ -637,7 +637,7 @@ NTSTATUS rpccli_wkssvc_NetrMessageBufferSend(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrMessageBufferSend, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRMESSAGEBUFFERSEND,
@@ -687,7 +687,7 @@ NTSTATUS rpccli_wkssvc_NetrWorkstationStatisticsGet(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrWorkstationStatisticsGet, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET,
@@ -731,7 +731,7 @@ NTSTATUS rpccli_wkssvc_NetrLogonDomainNameAdd(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrLogonDomainNameAdd, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRLOGONDOMAINNAMEADD,
@@ -774,7 +774,7 @@ NTSTATUS rpccli_wkssvc_NetrLogonDomainNameDel(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrLogonDomainNameDel, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL,
@@ -827,7 +827,7 @@ NTSTATUS rpccli_wkssvc_NetrJoinDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrJoinDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRJOINDOMAIN,
@@ -876,7 +876,7 @@ NTSTATUS rpccli_wkssvc_NetrUnjoinDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrUnjoinDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRUNJOINDOMAIN,
@@ -927,7 +927,7 @@ NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrRenameMachineInDomain, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN,
@@ -978,7 +978,7 @@ NTSTATUS rpccli_wkssvc_NetrValidateName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrValidateName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRVALIDATENAME,
@@ -1024,7 +1024,7 @@ NTSTATUS rpccli_wkssvc_NetrGetJoinInformation(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinInformation, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRGETJOININFORMATION,
@@ -1078,7 +1078,7 @@ NTSTATUS rpccli_wkssvc_NetrGetJoinableOus(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinableOus, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRGETJOINABLEOUS,
@@ -1133,7 +1133,7 @@ NTSTATUS rpccli_wkssvc_NetrJoinDomain2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrJoinDomain2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRJOINDOMAIN2,
@@ -1182,7 +1182,7 @@ NTSTATUS rpccli_wkssvc_NetrUnjoinDomain2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrUnjoinDomain2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRUNJOINDOMAIN2,
@@ -1233,7 +1233,7 @@ NTSTATUS rpccli_wkssvc_NetrRenameMachineInDomain2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrRenameMachineInDomain2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN2,
@@ -1284,7 +1284,7 @@ NTSTATUS rpccli_wkssvc_NetrValidateName2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrValidateName2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRVALIDATENAME2,
@@ -1336,7 +1336,7 @@ NTSTATUS rpccli_wkssvc_NetrGetJoinableOus2(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrGetJoinableOus2, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRGETJOINABLEOUS2,
@@ -1389,7 +1389,7 @@ NTSTATUS rpccli_wkssvc_NetrAddAlternateComputerName(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrAddAlternateComputerName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRADDALTERNATECOMPUTERNAME,
@@ -1440,7 +1440,7 @@ NTSTATUS rpccli_wkssvc_NetrRemoveAlternateComputerName(struct rpc_pipe_client *c
NDR_PRINT_IN_DEBUG(wkssvc_NetrRemoveAlternateComputerName, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME,
@@ -1491,7 +1491,7 @@ NTSTATUS rpccli_wkssvc_NetrSetPrimaryComputername(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrSetPrimaryComputername, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME,
@@ -1539,7 +1539,7 @@ NTSTATUS rpccli_wkssvc_NetrEnumerateComputerNames(struct rpc_pipe_client *cli,
NDR_PRINT_IN_DEBUG(wkssvc_NetrEnumerateComputerNames, &r);
}
- status = cli_do_rpc_ndr(cli,
+ status = cli->dispatch(cli,
mem_ctx,
&ndr_table_wkssvc,
NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES,
diff --git a/librpc/gen_ndr/srv_dfs.c b/librpc/gen_ndr/srv_dfs.c
index 00afa36ec1..f4b73d8015 100644
--- a/librpc/gen_ndr/srv_dfs.c
+++ b/librpc/gen_ndr/srv_dfs.c
@@ -1748,6 +1748,183 @@ void netdfs_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_netdfs_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_netdfs_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_DFS_GETMANAGERVERSION: {
+ struct dfs_GetManagerVersion *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.version = talloc_zero(mem_ctx, enum dfs_ManagerVersion);
+ if (r->out.version == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ _dfs_GetManagerVersion(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_ADD: {
+ struct dfs_Add *r = _r;
+ r->out.result = _dfs_Add(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_REMOVE: {
+ struct dfs_Remove *r = _r;
+ r->out.result = _dfs_Remove(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_SETINFO: {
+ struct dfs_SetInfo *r = _r;
+ r->out.result = _dfs_SetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_GETINFO: {
+ struct dfs_GetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union dfs_Info);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _dfs_GetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_ENUM: {
+ struct dfs_Enum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = r->in.info;
+ r->out.total = r->in.total;
+ r->out.result = _dfs_Enum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_RENAME: {
+ struct dfs_Rename *r = _r;
+ r->out.result = _dfs_Rename(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_MOVE: {
+ struct dfs_Move *r = _r;
+ r->out.result = _dfs_Move(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_MANAGERGETCONFIGINFO: {
+ struct dfs_ManagerGetConfigInfo *r = _r;
+ r->out.result = _dfs_ManagerGetConfigInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_MANAGERSENDSITEINFO: {
+ struct dfs_ManagerSendSiteInfo *r = _r;
+ r->out.result = _dfs_ManagerSendSiteInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_ADDFTROOT: {
+ struct dfs_AddFtRoot *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.unknown2 = r->in.unknown2;
+ r->out.result = _dfs_AddFtRoot(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_REMOVEFTROOT: {
+ struct dfs_RemoveFtRoot *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.unknown = r->in.unknown;
+ r->out.result = _dfs_RemoveFtRoot(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_ADDSTDROOT: {
+ struct dfs_AddStdRoot *r = _r;
+ r->out.result = _dfs_AddStdRoot(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_REMOVESTDROOT: {
+ struct dfs_RemoveStdRoot *r = _r;
+ r->out.result = _dfs_RemoveStdRoot(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_MANAGERINITIALIZE: {
+ struct dfs_ManagerInitialize *r = _r;
+ r->out.result = _dfs_ManagerInitialize(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_ADDSTDROOTFORCED: {
+ struct dfs_AddStdRootForced *r = _r;
+ r->out.result = _dfs_AddStdRootForced(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_GETDCADDRESS: {
+ struct dfs_GetDcAddress *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.server_fullname = r->in.server_fullname;
+ r->out.is_root = r->in.is_root;
+ r->out.ttl = r->in.ttl;
+ r->out.result = _dfs_GetDcAddress(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_SETDCADDRESS: {
+ struct dfs_SetDcAddress *r = _r;
+ r->out.result = _dfs_SetDcAddress(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_FLUSHFTTABLE: {
+ struct dfs_FlushFtTable *r = _r;
+ r->out.result = _dfs_FlushFtTable(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_ADD2: {
+ struct dfs_Add2 *r = _r;
+ r->out.result = _dfs_Add2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_REMOVE2: {
+ struct dfs_Remove2 *r = _r;
+ r->out.result = _dfs_Remove2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_ENUMEX: {
+ struct dfs_EnumEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = r->in.info;
+ r->out.total = r->in.total;
+ r->out.result = _dfs_EnumEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DFS_SETINFO2: {
+ struct dfs_SetInfo2 *r = _r;
+ r->out.result = _dfs_SetInfo2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_netdfs_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "netdfs", "netdfs", &ndr_table_netdfs, api_netdfs_cmds, sizeof(api_netdfs_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_dfs.h b/librpc/gen_ndr/srv_dfs.h
index fe9234b21d..89f3ed1a18 100644
--- a/librpc/gen_ndr/srv_dfs.h
+++ b/librpc/gen_ndr/srv_dfs.h
@@ -25,5 +25,29 @@ WERROR _dfs_Remove2(pipes_struct *p, struct dfs_Remove2 *r);
WERROR _dfs_EnumEx(pipes_struct *p, struct dfs_EnumEx *r);
WERROR _dfs_SetInfo2(pipes_struct *p, struct dfs_SetInfo2 *r);
void netdfs_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_netdfs_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+void _dfs_GetManagerVersion(pipes_struct *p, struct dfs_GetManagerVersion *r);
+WERROR _dfs_Add(pipes_struct *p, struct dfs_Add *r);
+WERROR _dfs_Remove(pipes_struct *p, struct dfs_Remove *r);
+WERROR _dfs_SetInfo(pipes_struct *p, struct dfs_SetInfo *r);
+WERROR _dfs_GetInfo(pipes_struct *p, struct dfs_GetInfo *r);
+WERROR _dfs_Enum(pipes_struct *p, struct dfs_Enum *r);
+WERROR _dfs_Rename(pipes_struct *p, struct dfs_Rename *r);
+WERROR _dfs_Move(pipes_struct *p, struct dfs_Move *r);
+WERROR _dfs_ManagerGetConfigInfo(pipes_struct *p, struct dfs_ManagerGetConfigInfo *r);
+WERROR _dfs_ManagerSendSiteInfo(pipes_struct *p, struct dfs_ManagerSendSiteInfo *r);
+WERROR _dfs_AddFtRoot(pipes_struct *p, struct dfs_AddFtRoot *r);
+WERROR _dfs_RemoveFtRoot(pipes_struct *p, struct dfs_RemoveFtRoot *r);
+WERROR _dfs_AddStdRoot(pipes_struct *p, struct dfs_AddStdRoot *r);
+WERROR _dfs_RemoveStdRoot(pipes_struct *p, struct dfs_RemoveStdRoot *r);
+WERROR _dfs_ManagerInitialize(pipes_struct *p, struct dfs_ManagerInitialize *r);
+WERROR _dfs_AddStdRootForced(pipes_struct *p, struct dfs_AddStdRootForced *r);
+WERROR _dfs_GetDcAddress(pipes_struct *p, struct dfs_GetDcAddress *r);
+WERROR _dfs_SetDcAddress(pipes_struct *p, struct dfs_SetDcAddress *r);
+WERROR _dfs_FlushFtTable(pipes_struct *p, struct dfs_FlushFtTable *r);
+WERROR _dfs_Add2(pipes_struct *p, struct dfs_Add2 *r);
+WERROR _dfs_Remove2(pipes_struct *p, struct dfs_Remove2 *r);
+WERROR _dfs_EnumEx(pipes_struct *p, struct dfs_EnumEx *r);
+WERROR _dfs_SetInfo2(pipes_struct *p, struct dfs_SetInfo2 *r);
NTSTATUS rpc_netdfs_init(void);
#endif /* __SRV_NETDFS__ */
diff --git a/librpc/gen_ndr/srv_dssetup.c b/librpc/gen_ndr/srv_dssetup.c
index abb890fa6a..dfa46e800b 100644
--- a/librpc/gen_ndr/srv_dssetup.c
+++ b/librpc/gen_ndr/srv_dssetup.c
@@ -839,6 +839,91 @@ void dssetup_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_dssetup_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_dssetup_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_DSSETUP_DSROLEGETPRIMARYDOMAININFORMATION: {
+ struct dssetup_DsRoleGetPrimaryDomainInformation *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union dssetup_DsRoleInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _dssetup_DsRoleGetPrimaryDomainInformation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEDNSNAMETOFLATNAME: {
+ struct dssetup_DsRoleDnsNameToFlatName *r = _r;
+ r->out.result = _dssetup_DsRoleDnsNameToFlatName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEDCASDC: {
+ struct dssetup_DsRoleDcAsDc *r = _r;
+ r->out.result = _dssetup_DsRoleDcAsDc(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEDCASREPLICA: {
+ struct dssetup_DsRoleDcAsReplica *r = _r;
+ r->out.result = _dssetup_DsRoleDcAsReplica(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEDEMOTEDC: {
+ struct dssetup_DsRoleDemoteDc *r = _r;
+ r->out.result = _dssetup_DsRoleDemoteDc(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEGETDCOPERATIONPROGRESS: {
+ struct dssetup_DsRoleGetDcOperationProgress *r = _r;
+ r->out.result = _dssetup_DsRoleGetDcOperationProgress(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEGETDCOPERATIONRESULTS: {
+ struct dssetup_DsRoleGetDcOperationResults *r = _r;
+ r->out.result = _dssetup_DsRoleGetDcOperationResults(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLECANCEL: {
+ struct dssetup_DsRoleCancel *r = _r;
+ r->out.result = _dssetup_DsRoleCancel(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLESERVERSAVESTATEFORUPGRADE: {
+ struct dssetup_DsRoleServerSaveStateForUpgrade *r = _r;
+ r->out.result = _dssetup_DsRoleServerSaveStateForUpgrade(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEUPGRADEDOWNLEVELSERVER: {
+ struct dssetup_DsRoleUpgradeDownlevelServer *r = _r;
+ r->out.result = _dssetup_DsRoleUpgradeDownlevelServer(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_DSSETUP_DSROLEABORTDOWNLEVELSERVERUPGRADE: {
+ struct dssetup_DsRoleAbortDownlevelServerUpgrade *r = _r;
+ r->out.result = _dssetup_DsRoleAbortDownlevelServerUpgrade(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_dssetup_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "dssetup", "dssetup", &ndr_table_dssetup, api_dssetup_cmds, sizeof(api_dssetup_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_dssetup.h b/librpc/gen_ndr/srv_dssetup.h
index 4122678274..33ec07de86 100644
--- a/librpc/gen_ndr/srv_dssetup.h
+++ b/librpc/gen_ndr/srv_dssetup.h
@@ -13,5 +13,17 @@ WERROR _dssetup_DsRoleServerSaveStateForUpgrade(pipes_struct *p, struct dssetup_
WERROR _dssetup_DsRoleUpgradeDownlevelServer(pipes_struct *p, struct dssetup_DsRoleUpgradeDownlevelServer *r);
WERROR _dssetup_DsRoleAbortDownlevelServerUpgrade(pipes_struct *p, struct dssetup_DsRoleAbortDownlevelServerUpgrade *r);
void dssetup_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_dssetup_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _dssetup_DsRoleGetPrimaryDomainInformation(pipes_struct *p, struct dssetup_DsRoleGetPrimaryDomainInformation *r);
+WERROR _dssetup_DsRoleDnsNameToFlatName(pipes_struct *p, struct dssetup_DsRoleDnsNameToFlatName *r);
+WERROR _dssetup_DsRoleDcAsDc(pipes_struct *p, struct dssetup_DsRoleDcAsDc *r);
+WERROR _dssetup_DsRoleDcAsReplica(pipes_struct *p, struct dssetup_DsRoleDcAsReplica *r);
+WERROR _dssetup_DsRoleDemoteDc(pipes_struct *p, struct dssetup_DsRoleDemoteDc *r);
+WERROR _dssetup_DsRoleGetDcOperationProgress(pipes_struct *p, struct dssetup_DsRoleGetDcOperationProgress *r);
+WERROR _dssetup_DsRoleGetDcOperationResults(pipes_struct *p, struct dssetup_DsRoleGetDcOperationResults *r);
+WERROR _dssetup_DsRoleCancel(pipes_struct *p, struct dssetup_DsRoleCancel *r);
+WERROR _dssetup_DsRoleServerSaveStateForUpgrade(pipes_struct *p, struct dssetup_DsRoleServerSaveStateForUpgrade *r);
+WERROR _dssetup_DsRoleUpgradeDownlevelServer(pipes_struct *p, struct dssetup_DsRoleUpgradeDownlevelServer *r);
+WERROR _dssetup_DsRoleAbortDownlevelServerUpgrade(pipes_struct *p, struct dssetup_DsRoleAbortDownlevelServerUpgrade *r);
NTSTATUS rpc_dssetup_init(void);
#endif /* __SRV_DSSETUP__ */
diff --git a/librpc/gen_ndr/srv_echo.c b/librpc/gen_ndr/srv_echo.c
index 1912b8b9d5..6717e013a2 100644
--- a/librpc/gen_ndr/srv_echo.c
+++ b/librpc/gen_ndr/srv_echo.c
@@ -799,6 +799,115 @@ void rpcecho_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_rpcecho_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_rpcecho_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_ECHO_ADDONE: {
+ struct echo_AddOne *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.out_data = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.out_data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ _echo_AddOne(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_ECHODATA: {
+ struct echo_EchoData *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.out_data = talloc_zero_array(mem_ctx, uint8_t, r->in.len);
+ if (r->out.out_data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ _echo_EchoData(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_SINKDATA: {
+ struct echo_SinkData *r = _r;
+ _echo_SinkData(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_SOURCEDATA: {
+ struct echo_SourceData *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.data = talloc_zero_array(mem_ctx, uint8_t, r->in.len);
+ if (r->out.data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ _echo_SourceData(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_TESTCALL: {
+ struct echo_TestCall *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.s2 = talloc_zero(mem_ctx, const char *);
+ if (r->out.s2 == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ _echo_TestCall(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_TESTCALL2: {
+ struct echo_TestCall2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union echo_Info);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _echo_TestCall2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_TESTSLEEP: {
+ struct echo_TestSleep *r = _r;
+ r->out.result = _echo_TestSleep(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_TESTENUM: {
+ struct echo_TestEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.foo1 = r->in.foo1;
+ r->out.foo2 = r->in.foo2;
+ r->out.foo3 = r->in.foo3;
+ _echo_TestEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_TESTSURROUNDING: {
+ struct echo_TestSurrounding *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.data = r->in.data;
+ _echo_TestSurrounding(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ECHO_TESTDOUBLEPOINTER: {
+ struct echo_TestDoublePointer *r = _r;
+ r->out.result = _echo_TestDoublePointer(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_rpcecho_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "rpcecho", "rpcecho", &ndr_table_rpcecho, api_rpcecho_cmds, sizeof(api_rpcecho_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_echo.h b/librpc/gen_ndr/srv_echo.h
index cb6dd6ac46..3e1cbd5059 100644
--- a/librpc/gen_ndr/srv_echo.h
+++ b/librpc/gen_ndr/srv_echo.h
@@ -12,5 +12,16 @@ void _echo_TestEnum(pipes_struct *p, struct echo_TestEnum *r);
void _echo_TestSurrounding(pipes_struct *p, struct echo_TestSurrounding *r);
uint16 _echo_TestDoublePointer(pipes_struct *p, struct echo_TestDoublePointer *r);
void rpcecho_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_rpcecho_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+void _echo_AddOne(pipes_struct *p, struct echo_AddOne *r);
+void _echo_EchoData(pipes_struct *p, struct echo_EchoData *r);
+void _echo_SinkData(pipes_struct *p, struct echo_SinkData *r);
+void _echo_SourceData(pipes_struct *p, struct echo_SourceData *r);
+void _echo_TestCall(pipes_struct *p, struct echo_TestCall *r);
+NTSTATUS _echo_TestCall2(pipes_struct *p, struct echo_TestCall2 *r);
+uint32 _echo_TestSleep(pipes_struct *p, struct echo_TestSleep *r);
+void _echo_TestEnum(pipes_struct *p, struct echo_TestEnum *r);
+void _echo_TestSurrounding(pipes_struct *p, struct echo_TestSurrounding *r);
+uint16 _echo_TestDoublePointer(pipes_struct *p, struct echo_TestDoublePointer *r);
NTSTATUS rpc_rpcecho_init(void);
#endif /* __SRV_RPCECHO__ */
diff --git a/librpc/gen_ndr/srv_epmapper.c b/librpc/gen_ndr/srv_epmapper.c
index b66bdf4e69..95692906f4 100644
--- a/librpc/gen_ndr/srv_epmapper.c
+++ b/librpc/gen_ndr/srv_epmapper.c
@@ -640,6 +640,93 @@ void epmapper_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_epmapper_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_epmapper_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_EPM_INSERT: {
+ struct epm_Insert *r = _r;
+ r->out.result = _epm_Insert(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EPM_DELETE: {
+ struct epm_Delete *r = _r;
+ r->out.result = _epm_Delete(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EPM_LOOKUP: {
+ struct epm_Lookup *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.entry_handle = r->in.entry_handle;
+ r->out.num_ents = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_ents == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.entries = talloc_zero_array(mem_ctx, struct epm_entry_t, r->in.max_ents);
+ if (r->out.entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _epm_Lookup(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EPM_MAP: {
+ struct epm_Map *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.entry_handle = r->in.entry_handle;
+ r->out.num_towers = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_towers == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.towers = talloc_zero_array(mem_ctx, struct epm_twr_p_t, r->in.max_towers);
+ if (r->out.towers == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _epm_Map(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EPM_LOOKUPHANDLEFREE: {
+ struct epm_LookupHandleFree *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.entry_handle = r->in.entry_handle;
+ r->out.result = _epm_LookupHandleFree(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EPM_INQOBJECT: {
+ struct epm_InqObject *r = _r;
+ r->out.result = _epm_InqObject(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EPM_MGMTDELETE: {
+ struct epm_MgmtDelete *r = _r;
+ r->out.result = _epm_MgmtDelete(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EPM_MAPAUTH: {
+ struct epm_MapAuth *r = _r;
+ r->out.result = _epm_MapAuth(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_epmapper_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "epmapper", "epmapper", &ndr_table_epmapper, api_epmapper_cmds, sizeof(api_epmapper_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_epmapper.h b/librpc/gen_ndr/srv_epmapper.h
index 137d908240..4cf074778f 100644
--- a/librpc/gen_ndr/srv_epmapper.h
+++ b/librpc/gen_ndr/srv_epmapper.h
@@ -10,5 +10,14 @@ uint32 _epm_InqObject(pipes_struct *p, struct epm_InqObject *r);
uint32 _epm_MgmtDelete(pipes_struct *p, struct epm_MgmtDelete *r);
uint32 _epm_MapAuth(pipes_struct *p, struct epm_MapAuth *r);
void epmapper_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_epmapper_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+uint32 _epm_Insert(pipes_struct *p, struct epm_Insert *r);
+uint32 _epm_Delete(pipes_struct *p, struct epm_Delete *r);
+uint32 _epm_Lookup(pipes_struct *p, struct epm_Lookup *r);
+uint32 _epm_Map(pipes_struct *p, struct epm_Map *r);
+uint32 _epm_LookupHandleFree(pipes_struct *p, struct epm_LookupHandleFree *r);
+uint32 _epm_InqObject(pipes_struct *p, struct epm_InqObject *r);
+uint32 _epm_MgmtDelete(pipes_struct *p, struct epm_MgmtDelete *r);
+uint32 _epm_MapAuth(pipes_struct *p, struct epm_MapAuth *r);
NTSTATUS rpc_epmapper_init(void);
#endif /* __SRV_EPMAPPER__ */
diff --git a/librpc/gen_ndr/srv_eventlog.c b/librpc/gen_ndr/srv_eventlog.c
index 9a87ee648c..4782a9da2f 100644
--- a/librpc/gen_ndr/srv_eventlog.c
+++ b/librpc/gen_ndr/srv_eventlog.c
@@ -1836,6 +1836,199 @@ void eventlog_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_eventlog_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_eventlog_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_EVENTLOG_CLEAREVENTLOGW: {
+ struct eventlog_ClearEventLogW *r = _r;
+ r->out.result = _eventlog_ClearEventLogW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_BACKUPEVENTLOGW: {
+ struct eventlog_BackupEventLogW *r = _r;
+ r->out.result = _eventlog_BackupEventLogW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_CLOSEEVENTLOG: {
+ struct eventlog_CloseEventLog *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = r->in.handle;
+ r->out.result = _eventlog_CloseEventLog(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_DEREGISTEREVENTSOURCE: {
+ struct eventlog_DeregisterEventSource *r = _r;
+ r->out.result = _eventlog_DeregisterEventSource(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_GETNUMRECORDS: {
+ struct eventlog_GetNumRecords *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.number = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.number == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _eventlog_GetNumRecords(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_GETOLDESTRECORD: {
+ struct eventlog_GetOldestRecord *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.oldest_entry = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.oldest_entry == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _eventlog_GetOldestRecord(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_CHANGENOTIFY: {
+ struct eventlog_ChangeNotify *r = _r;
+ r->out.result = _eventlog_ChangeNotify(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_OPENEVENTLOGW: {
+ struct eventlog_OpenEventLogW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _eventlog_OpenEventLogW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_REGISTEREVENTSOURCEW: {
+ struct eventlog_RegisterEventSourceW *r = _r;
+ r->out.result = _eventlog_RegisterEventSourceW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_OPENBACKUPEVENTLOGW: {
+ struct eventlog_OpenBackupEventLogW *r = _r;
+ r->out.result = _eventlog_OpenBackupEventLogW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_READEVENTLOGW: {
+ struct eventlog_ReadEventLogW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.data = talloc_zero_array(mem_ctx, uint8_t, r->in.number_of_bytes);
+ if (r->out.data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.sent_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.sent_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.real_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.real_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _eventlog_ReadEventLogW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_REPORTEVENTW: {
+ struct eventlog_ReportEventW *r = _r;
+ r->out.result = _eventlog_ReportEventW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_CLEAREVENTLOGA: {
+ struct eventlog_ClearEventLogA *r = _r;
+ r->out.result = _eventlog_ClearEventLogA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_BACKUPEVENTLOGA: {
+ struct eventlog_BackupEventLogA *r = _r;
+ r->out.result = _eventlog_BackupEventLogA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_OPENEVENTLOGA: {
+ struct eventlog_OpenEventLogA *r = _r;
+ r->out.result = _eventlog_OpenEventLogA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_REGISTEREVENTSOURCEA: {
+ struct eventlog_RegisterEventSourceA *r = _r;
+ r->out.result = _eventlog_RegisterEventSourceA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_OPENBACKUPEVENTLOGA: {
+ struct eventlog_OpenBackupEventLogA *r = _r;
+ r->out.result = _eventlog_OpenBackupEventLogA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_READEVENTLOGA: {
+ struct eventlog_ReadEventLogA *r = _r;
+ r->out.result = _eventlog_ReadEventLogA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_REPORTEVENTA: {
+ struct eventlog_ReportEventA *r = _r;
+ r->out.result = _eventlog_ReportEventA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_REGISTERCLUSTERSVC: {
+ struct eventlog_RegisterClusterSvc *r = _r;
+ r->out.result = _eventlog_RegisterClusterSvc(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_DEREGISTERCLUSTERSVC: {
+ struct eventlog_DeregisterClusterSvc *r = _r;
+ r->out.result = _eventlog_DeregisterClusterSvc(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_WRITECLUSTEREVENTS: {
+ struct eventlog_WriteClusterEvents *r = _r;
+ r->out.result = _eventlog_WriteClusterEvents(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_GETLOGINTORMATION: {
+ struct eventlog_GetLogIntormation *r = _r;
+ r->out.result = _eventlog_GetLogIntormation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_EVENTLOG_FLUSHEVENTLOG: {
+ struct eventlog_FlushEventLog *r = _r;
+ r->out.result = _eventlog_FlushEventLog(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_eventlog_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "eventlog", "eventlog", &ndr_table_eventlog, api_eventlog_cmds, sizeof(api_eventlog_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_eventlog.h b/librpc/gen_ndr/srv_eventlog.h
index 3293bba507..c540f92242 100644
--- a/librpc/gen_ndr/srv_eventlog.h
+++ b/librpc/gen_ndr/srv_eventlog.h
@@ -26,5 +26,30 @@ NTSTATUS _eventlog_WriteClusterEvents(pipes_struct *p, struct eventlog_WriteClus
NTSTATUS _eventlog_GetLogIntormation(pipes_struct *p, struct eventlog_GetLogIntormation *r);
NTSTATUS _eventlog_FlushEventLog(pipes_struct *p, struct eventlog_FlushEventLog *r);
void eventlog_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_eventlog_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+NTSTATUS _eventlog_ClearEventLogW(pipes_struct *p, struct eventlog_ClearEventLogW *r);
+NTSTATUS _eventlog_BackupEventLogW(pipes_struct *p, struct eventlog_BackupEventLogW *r);
+NTSTATUS _eventlog_CloseEventLog(pipes_struct *p, struct eventlog_CloseEventLog *r);
+NTSTATUS _eventlog_DeregisterEventSource(pipes_struct *p, struct eventlog_DeregisterEventSource *r);
+NTSTATUS _eventlog_GetNumRecords(pipes_struct *p, struct eventlog_GetNumRecords *r);
+NTSTATUS _eventlog_GetOldestRecord(pipes_struct *p, struct eventlog_GetOldestRecord *r);
+NTSTATUS _eventlog_ChangeNotify(pipes_struct *p, struct eventlog_ChangeNotify *r);
+NTSTATUS _eventlog_OpenEventLogW(pipes_struct *p, struct eventlog_OpenEventLogW *r);
+NTSTATUS _eventlog_RegisterEventSourceW(pipes_struct *p, struct eventlog_RegisterEventSourceW *r);
+NTSTATUS _eventlog_OpenBackupEventLogW(pipes_struct *p, struct eventlog_OpenBackupEventLogW *r);
+NTSTATUS _eventlog_ReadEventLogW(pipes_struct *p, struct eventlog_ReadEventLogW *r);
+NTSTATUS _eventlog_ReportEventW(pipes_struct *p, struct eventlog_ReportEventW *r);
+NTSTATUS _eventlog_ClearEventLogA(pipes_struct *p, struct eventlog_ClearEventLogA *r);
+NTSTATUS _eventlog_BackupEventLogA(pipes_struct *p, struct eventlog_BackupEventLogA *r);
+NTSTATUS _eventlog_OpenEventLogA(pipes_struct *p, struct eventlog_OpenEventLogA *r);
+NTSTATUS _eventlog_RegisterEventSourceA(pipes_struct *p, struct eventlog_RegisterEventSourceA *r);
+NTSTATUS _eventlog_OpenBackupEventLogA(pipes_struct *p, struct eventlog_OpenBackupEventLogA *r);
+NTSTATUS _eventlog_ReadEventLogA(pipes_struct *p, struct eventlog_ReadEventLogA *r);
+NTSTATUS _eventlog_ReportEventA(pipes_struct *p, struct eventlog_ReportEventA *r);
+NTSTATUS _eventlog_RegisterClusterSvc(pipes_struct *p, struct eventlog_RegisterClusterSvc *r);
+NTSTATUS _eventlog_DeregisterClusterSvc(pipes_struct *p, struct eventlog_DeregisterClusterSvc *r);
+NTSTATUS _eventlog_WriteClusterEvents(pipes_struct *p, struct eventlog_WriteClusterEvents *r);
+NTSTATUS _eventlog_GetLogIntormation(pipes_struct *p, struct eventlog_GetLogIntormation *r);
+NTSTATUS _eventlog_FlushEventLog(pipes_struct *p, struct eventlog_FlushEventLog *r);
NTSTATUS rpc_eventlog_init(void);
#endif /* __SRV_EVENTLOG__ */
diff --git a/librpc/gen_ndr/srv_initshutdown.c b/librpc/gen_ndr/srv_initshutdown.c
index f0f3a7ba73..247d83fb03 100644
--- a/librpc/gen_ndr/srv_initshutdown.c
+++ b/librpc/gen_ndr/srv_initshutdown.c
@@ -240,6 +240,37 @@ void initshutdown_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_initshutdown_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_initshutdown_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_INITSHUTDOWN_INIT: {
+ struct initshutdown_Init *r = _r;
+ r->out.result = _initshutdown_Init(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_INITSHUTDOWN_ABORT: {
+ struct initshutdown_Abort *r = _r;
+ r->out.result = _initshutdown_Abort(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_INITSHUTDOWN_INITEX: {
+ struct initshutdown_InitEx *r = _r;
+ r->out.result = _initshutdown_InitEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_initshutdown_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "initshutdown", "initshutdown", &ndr_table_initshutdown, api_initshutdown_cmds, sizeof(api_initshutdown_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_initshutdown.h b/librpc/gen_ndr/srv_initshutdown.h
index d638131c53..c4845a677d 100644
--- a/librpc/gen_ndr/srv_initshutdown.h
+++ b/librpc/gen_ndr/srv_initshutdown.h
@@ -5,5 +5,9 @@ WERROR _initshutdown_Init(pipes_struct *p, struct initshutdown_Init *r);
WERROR _initshutdown_Abort(pipes_struct *p, struct initshutdown_Abort *r);
WERROR _initshutdown_InitEx(pipes_struct *p, struct initshutdown_InitEx *r);
void initshutdown_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_initshutdown_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _initshutdown_Init(pipes_struct *p, struct initshutdown_Init *r);
+WERROR _initshutdown_Abort(pipes_struct *p, struct initshutdown_Abort *r);
+WERROR _initshutdown_InitEx(pipes_struct *p, struct initshutdown_InitEx *r);
NTSTATUS rpc_initshutdown_init(void);
#endif /* __SRV_INITSHUTDOWN__ */
diff --git a/librpc/gen_ndr/srv_lsa.c b/librpc/gen_ndr/srv_lsa.c
index fe95df35ee..9e32e64ee9 100644
--- a/librpc/gen_ndr/srv_lsa.c
+++ b/librpc/gen_ndr/srv_lsa.c
@@ -6383,6 +6383,770 @@ void lsarpc_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_lsarpc_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_lsarpc_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_LSA_CLOSE: {
+ struct lsa_Close *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = r->in.handle;
+ r->out.result = _lsa_Close(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_DELETE: {
+ struct lsa_Delete *r = _r;
+ r->out.result = _lsa_Delete(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ENUMPRIVS: {
+ struct lsa_EnumPrivs *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.privs = talloc_zero(mem_ctx, struct lsa_PrivArray);
+ if (r->out.privs == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_EnumPrivs(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYSECURITY: {
+ struct lsa_QuerySecurity *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sdbuf = talloc_zero(mem_ctx, struct sec_desc_buf *);
+ if (r->out.sdbuf == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_QuerySecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETSECOBJ: {
+ struct lsa_SetSecObj *r = _r;
+ r->out.result = _lsa_SetSecObj(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CHANGEPASSWORD: {
+ struct lsa_ChangePassword *r = _r;
+ r->out.result = _lsa_ChangePassword(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_OPENPOLICY: {
+ struct lsa_OpenPolicy *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_OpenPolicy(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYINFOPOLICY: {
+ struct lsa_QueryInfoPolicy *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union lsa_PolicyInformation *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_QueryInfoPolicy(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETINFOPOLICY: {
+ struct lsa_SetInfoPolicy *r = _r;
+ r->out.result = _lsa_SetInfoPolicy(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CLEARAUDITLOG: {
+ struct lsa_ClearAuditLog *r = _r;
+ r->out.result = _lsa_ClearAuditLog(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREATEACCOUNT: {
+ struct lsa_CreateAccount *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.acct_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.acct_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_CreateAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ENUMACCOUNTS: {
+ struct lsa_EnumAccounts *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.sids = talloc_zero(mem_ctx, struct lsa_SidArray);
+ if (r->out.sids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_EnumAccounts(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREATETRUSTEDDOMAIN: {
+ struct lsa_CreateTrustedDomain *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.trustdom_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.trustdom_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_CreateTrustedDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ENUMTRUSTDOM: {
+ struct lsa_EnumTrustDom *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_DomainList);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_EnumTrustDom(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPNAMES: {
+ struct lsa_LookupNames *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sids = r->in.sids;
+ r->out.count = r->in.count;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList *);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupNames(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPSIDS: {
+ struct lsa_LookupSids *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.names = r->in.names;
+ r->out.count = r->in.count;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList *);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupSids(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREATESECRET: {
+ struct lsa_CreateSecret *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sec_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.sec_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_CreateSecret(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_OPENACCOUNT: {
+ struct lsa_OpenAccount *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.acct_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.acct_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_OpenAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ENUMPRIVSACCOUNT: {
+ struct lsa_EnumPrivsAccount *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.privs = talloc_zero(mem_ctx, struct lsa_PrivilegeSet *);
+ if (r->out.privs == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_EnumPrivsAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ADDPRIVILEGESTOACCOUNT: {
+ struct lsa_AddPrivilegesToAccount *r = _r;
+ r->out.result = _lsa_AddPrivilegesToAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_REMOVEPRIVILEGESFROMACCOUNT: {
+ struct lsa_RemovePrivilegesFromAccount *r = _r;
+ r->out.result = _lsa_RemovePrivilegesFromAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_GETQUOTASFORACCOUNT: {
+ struct lsa_GetQuotasForAccount *r = _r;
+ r->out.result = _lsa_GetQuotasForAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETQUOTASFORACCOUNT: {
+ struct lsa_SetQuotasForAccount *r = _r;
+ r->out.result = _lsa_SetQuotasForAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_GETSYSTEMACCESSACCOUNT: {
+ struct lsa_GetSystemAccessAccount *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.access_mask = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.access_mask == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_GetSystemAccessAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETSYSTEMACCESSACCOUNT: {
+ struct lsa_SetSystemAccessAccount *r = _r;
+ r->out.result = _lsa_SetSystemAccessAccount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_OPENTRUSTEDDOMAIN: {
+ struct lsa_OpenTrustedDomain *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.trustdom_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.trustdom_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_OpenTrustedDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYTRUSTEDDOMAININFO: {
+ struct lsa_QueryTrustedDomainInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union lsa_TrustedDomainInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_QueryTrustedDomainInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETINFORMATIONTRUSTEDDOMAIN: {
+ struct lsa_SetInformationTrustedDomain *r = _r;
+ r->out.result = _lsa_SetInformationTrustedDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_OPENSECRET: {
+ struct lsa_OpenSecret *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sec_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.sec_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_OpenSecret(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETSECRET: {
+ struct lsa_SetSecret *r = _r;
+ r->out.result = _lsa_SetSecret(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYSECRET: {
+ struct lsa_QuerySecret *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.new_val = r->in.new_val;
+ r->out.new_mtime = r->in.new_mtime;
+ r->out.old_val = r->in.old_val;
+ r->out.old_mtime = r->in.old_mtime;
+ r->out.result = _lsa_QuerySecret(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPPRIVVALUE: {
+ struct lsa_LookupPrivValue *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.luid = talloc_zero(mem_ctx, struct lsa_LUID);
+ if (r->out.luid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupPrivValue(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPPRIVNAME: {
+ struct lsa_LookupPrivName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.name = talloc_zero(mem_ctx, struct lsa_StringLarge *);
+ if (r->out.name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupPrivName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPPRIVDISPLAYNAME: {
+ struct lsa_LookupPrivDisplayName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.disp_name = talloc_zero(mem_ctx, struct lsa_StringLarge *);
+ if (r->out.disp_name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.returned_language_id = talloc_zero(mem_ctx, uint16_t);
+ if (r->out.returned_language_id == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupPrivDisplayName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_DELETEOBJECT: {
+ struct lsa_DeleteObject *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = r->in.handle;
+ r->out.result = _lsa_DeleteObject(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ENUMACCOUNTSWITHUSERRIGHT: {
+ struct lsa_EnumAccountsWithUserRight *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sids = talloc_zero(mem_ctx, struct lsa_SidArray);
+ if (r->out.sids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_EnumAccountsWithUserRight(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ENUMACCOUNTRIGHTS: {
+ struct lsa_EnumAccountRights *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.rights = talloc_zero(mem_ctx, struct lsa_RightSet);
+ if (r->out.rights == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_EnumAccountRights(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ADDACCOUNTRIGHTS: {
+ struct lsa_AddAccountRights *r = _r;
+ r->out.result = _lsa_AddAccountRights(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_REMOVEACCOUNTRIGHTS: {
+ struct lsa_RemoveAccountRights *r = _r;
+ r->out.result = _lsa_RemoveAccountRights(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYTRUSTEDDOMAININFOBYSID: {
+ struct lsa_QueryTrustedDomainInfoBySid *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union lsa_TrustedDomainInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_QueryTrustedDomainInfoBySid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETTRUSTEDDOMAININFO: {
+ struct lsa_SetTrustedDomainInfo *r = _r;
+ r->out.result = _lsa_SetTrustedDomainInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_DELETETRUSTEDDOMAIN: {
+ struct lsa_DeleteTrustedDomain *r = _r;
+ r->out.result = _lsa_DeleteTrustedDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_STOREPRIVATEDATA: {
+ struct lsa_StorePrivateData *r = _r;
+ r->out.result = _lsa_StorePrivateData(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_RETRIEVEPRIVATEDATA: {
+ struct lsa_RetrievePrivateData *r = _r;
+ r->out.result = _lsa_RetrievePrivateData(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_OPENPOLICY2: {
+ struct lsa_OpenPolicy2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_OpenPolicy2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_GETUSERNAME: {
+ struct lsa_GetUserName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.account_name = r->in.account_name;
+ r->out.authority_name = r->in.authority_name;
+ r->out.result = _lsa_GetUserName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYINFOPOLICY2: {
+ struct lsa_QueryInfoPolicy2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union lsa_PolicyInformation *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_QueryInfoPolicy2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETINFOPOLICY2: {
+ struct lsa_SetInfoPolicy2 *r = _r;
+ r->out.result = _lsa_SetInfoPolicy2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYTRUSTEDDOMAININFOBYNAME: {
+ struct lsa_QueryTrustedDomainInfoByName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union lsa_TrustedDomainInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_QueryTrustedDomainInfoByName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETTRUSTEDDOMAININFOBYNAME: {
+ struct lsa_SetTrustedDomainInfoByName *r = _r;
+ r->out.result = _lsa_SetTrustedDomainInfoByName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_ENUMTRUSTEDDOMAINSEX: {
+ struct lsa_EnumTrustedDomainsEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_DomainListEx);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_EnumTrustedDomainsEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREATETRUSTEDDOMAINEX: {
+ struct lsa_CreateTrustedDomainEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.trustdom_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.trustdom_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_CreateTrustedDomainEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CLOSETRUSTEDDOMAINEX: {
+ struct lsa_CloseTrustedDomainEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = r->in.handle;
+ r->out.result = _lsa_CloseTrustedDomainEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_QUERYDOMAININFORMATIONPOLICY: {
+ struct lsa_QueryDomainInformationPolicy *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union lsa_DomainInformationPolicy *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_QueryDomainInformationPolicy(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_SETDOMAININFORMATIONPOLICY: {
+ struct lsa_SetDomainInformationPolicy *r = _r;
+ r->out.result = _lsa_SetDomainInformationPolicy(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_OPENTRUSTEDDOMAINBYNAME: {
+ struct lsa_OpenTrustedDomainByName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.trustdom_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.trustdom_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_OpenTrustedDomainByName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_TESTCALL: {
+ struct lsa_TestCall *r = _r;
+ r->out.result = _lsa_TestCall(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPSIDS2: {
+ struct lsa_LookupSids2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.names = r->in.names;
+ r->out.count = r->in.count;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList *);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupSids2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPNAMES2: {
+ struct lsa_LookupNames2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sids = r->in.sids;
+ r->out.count = r->in.count;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList *);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupNames2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREATETRUSTEDDOMAINEX2: {
+ struct lsa_CreateTrustedDomainEx2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.trustdom_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.trustdom_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_CreateTrustedDomainEx2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRWRITE: {
+ struct lsa_CREDRWRITE *r = _r;
+ r->out.result = _lsa_CREDRWRITE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRREAD: {
+ struct lsa_CREDRREAD *r = _r;
+ r->out.result = _lsa_CREDRREAD(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRENUMERATE: {
+ struct lsa_CREDRENUMERATE *r = _r;
+ r->out.result = _lsa_CREDRENUMERATE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRWRITEDOMAINCREDENTIALS: {
+ struct lsa_CREDRWRITEDOMAINCREDENTIALS *r = _r;
+ r->out.result = _lsa_CREDRWRITEDOMAINCREDENTIALS(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRREADDOMAINCREDENTIALS: {
+ struct lsa_CREDRREADDOMAINCREDENTIALS *r = _r;
+ r->out.result = _lsa_CREDRREADDOMAINCREDENTIALS(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRDELETE: {
+ struct lsa_CREDRDELETE *r = _r;
+ r->out.result = _lsa_CREDRDELETE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRGETTARGETINFO: {
+ struct lsa_CREDRGETTARGETINFO *r = _r;
+ r->out.result = _lsa_CREDRGETTARGETINFO(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRPROFILELOADED: {
+ struct lsa_CREDRPROFILELOADED *r = _r;
+ r->out.result = _lsa_CREDRPROFILELOADED(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPNAMES3: {
+ struct lsa_LookupNames3 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sids = r->in.sids;
+ r->out.count = r->in.count;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList *);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupNames3(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRGETSESSIONTYPES: {
+ struct lsa_CREDRGETSESSIONTYPES *r = _r;
+ r->out.result = _lsa_CREDRGETSESSIONTYPES(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARREGISTERAUDITEVENT: {
+ struct lsa_LSARREGISTERAUDITEVENT *r = _r;
+ r->out.result = _lsa_LSARREGISTERAUDITEVENT(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARGENAUDITEVENT: {
+ struct lsa_LSARGENAUDITEVENT *r = _r;
+ r->out.result = _lsa_LSARGENAUDITEVENT(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARUNREGISTERAUDITEVENT: {
+ struct lsa_LSARUNREGISTERAUDITEVENT *r = _r;
+ r->out.result = _lsa_LSARUNREGISTERAUDITEVENT(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARQUERYFORESTTRUSTINFORMATION: {
+ struct lsa_lsaRQueryForestTrustInformation *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.forest_trust_info = talloc_zero(mem_ctx, struct lsa_ForestTrustInformation *);
+ if (r->out.forest_trust_info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_lsaRQueryForestTrustInformation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARSETFORESTTRUSTINFORMATION: {
+ struct lsa_LSARSETFORESTTRUSTINFORMATION *r = _r;
+ r->out.result = _lsa_LSARSETFORESTTRUSTINFORMATION(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_CREDRRENAME: {
+ struct lsa_CREDRRENAME *r = _r;
+ r->out.result = _lsa_CREDRRENAME(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPSIDS3: {
+ struct lsa_LookupSids3 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.names = r->in.names;
+ r->out.count = r->in.count;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList *);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupSids3(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LOOKUPNAMES4: {
+ struct lsa_LookupNames4 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sids = r->in.sids;
+ r->out.count = r->in.count;
+ r->out.domains = talloc_zero(mem_ctx, struct lsa_RefDomainList *);
+ if (r->out.domains == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _lsa_LookupNames4(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSAROPENPOLICYSCE: {
+ struct lsa_LSAROPENPOLICYSCE *r = _r;
+ r->out.result = _lsa_LSAROPENPOLICYSCE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARADTREGISTERSECURITYEVENTSOURCE: {
+ struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE *r = _r;
+ r->out.result = _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARADTUNREGISTERSECURITYEVENTSOURCE: {
+ struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE *r = _r;
+ r->out.result = _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_LSA_LSARADTREPORTSECURITYEVENT: {
+ struct lsa_LSARADTREPORTSECURITYEVENT *r = _r;
+ r->out.result = _lsa_LSARADTREPORTSECURITYEVENT(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_lsarpc_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "lsarpc", "lsarpc", &ndr_table_lsarpc, api_lsarpc_cmds, sizeof(api_lsarpc_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_lsa.h b/librpc/gen_ndr/srv_lsa.h
index 63ea35f8e9..3e9eb1b42f 100644
--- a/librpc/gen_ndr/srv_lsa.h
+++ b/librpc/gen_ndr/srv_lsa.h
@@ -84,5 +84,88 @@ NTSTATUS _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSA
NTSTATUS _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE *r);
NTSTATUS _lsa_LSARADTREPORTSECURITYEVENT(pipes_struct *p, struct lsa_LSARADTREPORTSECURITYEVENT *r);
void lsarpc_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_lsarpc_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+NTSTATUS _lsa_Close(pipes_struct *p, struct lsa_Close *r);
+NTSTATUS _lsa_Delete(pipes_struct *p, struct lsa_Delete *r);
+NTSTATUS _lsa_EnumPrivs(pipes_struct *p, struct lsa_EnumPrivs *r);
+NTSTATUS _lsa_QuerySecurity(pipes_struct *p, struct lsa_QuerySecurity *r);
+NTSTATUS _lsa_SetSecObj(pipes_struct *p, struct lsa_SetSecObj *r);
+NTSTATUS _lsa_ChangePassword(pipes_struct *p, struct lsa_ChangePassword *r);
+NTSTATUS _lsa_OpenPolicy(pipes_struct *p, struct lsa_OpenPolicy *r);
+NTSTATUS _lsa_QueryInfoPolicy(pipes_struct *p, struct lsa_QueryInfoPolicy *r);
+NTSTATUS _lsa_SetInfoPolicy(pipes_struct *p, struct lsa_SetInfoPolicy *r);
+NTSTATUS _lsa_ClearAuditLog(pipes_struct *p, struct lsa_ClearAuditLog *r);
+NTSTATUS _lsa_CreateAccount(pipes_struct *p, struct lsa_CreateAccount *r);
+NTSTATUS _lsa_EnumAccounts(pipes_struct *p, struct lsa_EnumAccounts *r);
+NTSTATUS _lsa_CreateTrustedDomain(pipes_struct *p, struct lsa_CreateTrustedDomain *r);
+NTSTATUS _lsa_EnumTrustDom(pipes_struct *p, struct lsa_EnumTrustDom *r);
+NTSTATUS _lsa_LookupNames(pipes_struct *p, struct lsa_LookupNames *r);
+NTSTATUS _lsa_LookupSids(pipes_struct *p, struct lsa_LookupSids *r);
+NTSTATUS _lsa_CreateSecret(pipes_struct *p, struct lsa_CreateSecret *r);
+NTSTATUS _lsa_OpenAccount(pipes_struct *p, struct lsa_OpenAccount *r);
+NTSTATUS _lsa_EnumPrivsAccount(pipes_struct *p, struct lsa_EnumPrivsAccount *r);
+NTSTATUS _lsa_AddPrivilegesToAccount(pipes_struct *p, struct lsa_AddPrivilegesToAccount *r);
+NTSTATUS _lsa_RemovePrivilegesFromAccount(pipes_struct *p, struct lsa_RemovePrivilegesFromAccount *r);
+NTSTATUS _lsa_GetQuotasForAccount(pipes_struct *p, struct lsa_GetQuotasForAccount *r);
+NTSTATUS _lsa_SetQuotasForAccount(pipes_struct *p, struct lsa_SetQuotasForAccount *r);
+NTSTATUS _lsa_GetSystemAccessAccount(pipes_struct *p, struct lsa_GetSystemAccessAccount *r);
+NTSTATUS _lsa_SetSystemAccessAccount(pipes_struct *p, struct lsa_SetSystemAccessAccount *r);
+NTSTATUS _lsa_OpenTrustedDomain(pipes_struct *p, struct lsa_OpenTrustedDomain *r);
+NTSTATUS _lsa_QueryTrustedDomainInfo(pipes_struct *p, struct lsa_QueryTrustedDomainInfo *r);
+NTSTATUS _lsa_SetInformationTrustedDomain(pipes_struct *p, struct lsa_SetInformationTrustedDomain *r);
+NTSTATUS _lsa_OpenSecret(pipes_struct *p, struct lsa_OpenSecret *r);
+NTSTATUS _lsa_SetSecret(pipes_struct *p, struct lsa_SetSecret *r);
+NTSTATUS _lsa_QuerySecret(pipes_struct *p, struct lsa_QuerySecret *r);
+NTSTATUS _lsa_LookupPrivValue(pipes_struct *p, struct lsa_LookupPrivValue *r);
+NTSTATUS _lsa_LookupPrivName(pipes_struct *p, struct lsa_LookupPrivName *r);
+NTSTATUS _lsa_LookupPrivDisplayName(pipes_struct *p, struct lsa_LookupPrivDisplayName *r);
+NTSTATUS _lsa_DeleteObject(pipes_struct *p, struct lsa_DeleteObject *r);
+NTSTATUS _lsa_EnumAccountsWithUserRight(pipes_struct *p, struct lsa_EnumAccountsWithUserRight *r);
+NTSTATUS _lsa_EnumAccountRights(pipes_struct *p, struct lsa_EnumAccountRights *r);
+NTSTATUS _lsa_AddAccountRights(pipes_struct *p, struct lsa_AddAccountRights *r);
+NTSTATUS _lsa_RemoveAccountRights(pipes_struct *p, struct lsa_RemoveAccountRights *r);
+NTSTATUS _lsa_QueryTrustedDomainInfoBySid(pipes_struct *p, struct lsa_QueryTrustedDomainInfoBySid *r);
+NTSTATUS _lsa_SetTrustedDomainInfo(pipes_struct *p, struct lsa_SetTrustedDomainInfo *r);
+NTSTATUS _lsa_DeleteTrustedDomain(pipes_struct *p, struct lsa_DeleteTrustedDomain *r);
+NTSTATUS _lsa_StorePrivateData(pipes_struct *p, struct lsa_StorePrivateData *r);
+NTSTATUS _lsa_RetrievePrivateData(pipes_struct *p, struct lsa_RetrievePrivateData *r);
+NTSTATUS _lsa_OpenPolicy2(pipes_struct *p, struct lsa_OpenPolicy2 *r);
+NTSTATUS _lsa_GetUserName(pipes_struct *p, struct lsa_GetUserName *r);
+NTSTATUS _lsa_QueryInfoPolicy2(pipes_struct *p, struct lsa_QueryInfoPolicy2 *r);
+NTSTATUS _lsa_SetInfoPolicy2(pipes_struct *p, struct lsa_SetInfoPolicy2 *r);
+NTSTATUS _lsa_QueryTrustedDomainInfoByName(pipes_struct *p, struct lsa_QueryTrustedDomainInfoByName *r);
+NTSTATUS _lsa_SetTrustedDomainInfoByName(pipes_struct *p, struct lsa_SetTrustedDomainInfoByName *r);
+NTSTATUS _lsa_EnumTrustedDomainsEx(pipes_struct *p, struct lsa_EnumTrustedDomainsEx *r);
+NTSTATUS _lsa_CreateTrustedDomainEx(pipes_struct *p, struct lsa_CreateTrustedDomainEx *r);
+NTSTATUS _lsa_CloseTrustedDomainEx(pipes_struct *p, struct lsa_CloseTrustedDomainEx *r);
+NTSTATUS _lsa_QueryDomainInformationPolicy(pipes_struct *p, struct lsa_QueryDomainInformationPolicy *r);
+NTSTATUS _lsa_SetDomainInformationPolicy(pipes_struct *p, struct lsa_SetDomainInformationPolicy *r);
+NTSTATUS _lsa_OpenTrustedDomainByName(pipes_struct *p, struct lsa_OpenTrustedDomainByName *r);
+NTSTATUS _lsa_TestCall(pipes_struct *p, struct lsa_TestCall *r);
+NTSTATUS _lsa_LookupSids2(pipes_struct *p, struct lsa_LookupSids2 *r);
+NTSTATUS _lsa_LookupNames2(pipes_struct *p, struct lsa_LookupNames2 *r);
+NTSTATUS _lsa_CreateTrustedDomainEx2(pipes_struct *p, struct lsa_CreateTrustedDomainEx2 *r);
+NTSTATUS _lsa_CREDRWRITE(pipes_struct *p, struct lsa_CREDRWRITE *r);
+NTSTATUS _lsa_CREDRREAD(pipes_struct *p, struct lsa_CREDRREAD *r);
+NTSTATUS _lsa_CREDRENUMERATE(pipes_struct *p, struct lsa_CREDRENUMERATE *r);
+NTSTATUS _lsa_CREDRWRITEDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRWRITEDOMAINCREDENTIALS *r);
+NTSTATUS _lsa_CREDRREADDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRREADDOMAINCREDENTIALS *r);
+NTSTATUS _lsa_CREDRDELETE(pipes_struct *p, struct lsa_CREDRDELETE *r);
+NTSTATUS _lsa_CREDRGETTARGETINFO(pipes_struct *p, struct lsa_CREDRGETTARGETINFO *r);
+NTSTATUS _lsa_CREDRPROFILELOADED(pipes_struct *p, struct lsa_CREDRPROFILELOADED *r);
+NTSTATUS _lsa_LookupNames3(pipes_struct *p, struct lsa_LookupNames3 *r);
+NTSTATUS _lsa_CREDRGETSESSIONTYPES(pipes_struct *p, struct lsa_CREDRGETSESSIONTYPES *r);
+NTSTATUS _lsa_LSARREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARREGISTERAUDITEVENT *r);
+NTSTATUS _lsa_LSARGENAUDITEVENT(pipes_struct *p, struct lsa_LSARGENAUDITEVENT *r);
+NTSTATUS _lsa_LSARUNREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARUNREGISTERAUDITEVENT *r);
+NTSTATUS _lsa_lsaRQueryForestTrustInformation(pipes_struct *p, struct lsa_lsaRQueryForestTrustInformation *r);
+NTSTATUS _lsa_LSARSETFORESTTRUSTINFORMATION(pipes_struct *p, struct lsa_LSARSETFORESTTRUSTINFORMATION *r);
+NTSTATUS _lsa_CREDRRENAME(pipes_struct *p, struct lsa_CREDRRENAME *r);
+NTSTATUS _lsa_LookupSids3(pipes_struct *p, struct lsa_LookupSids3 *r);
+NTSTATUS _lsa_LookupNames4(pipes_struct *p, struct lsa_LookupNames4 *r);
+NTSTATUS _lsa_LSAROPENPOLICYSCE(pipes_struct *p, struct lsa_LSAROPENPOLICYSCE *r);
+NTSTATUS _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE *r);
+NTSTATUS _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE *r);
+NTSTATUS _lsa_LSARADTREPORTSECURITYEVENT(pipes_struct *p, struct lsa_LSARADTREPORTSECURITYEVENT *r);
NTSTATUS rpc_lsarpc_init(void);
#endif /* __SRV_LSARPC__ */
diff --git a/librpc/gen_ndr/srv_netlogon.c b/librpc/gen_ndr/srv_netlogon.c
index 1bca23a7d2..c1e3a8aafd 100644
--- a/librpc/gen_ndr/srv_netlogon.c
+++ b/librpc/gen_ndr/srv_netlogon.c
@@ -3890,6 +3890,639 @@ void netlogon_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_netlogon_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_netlogon_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_NETR_LOGONUASLOGON: {
+ struct netr_LogonUasLogon *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct netr_UasInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonUasLogon(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONUASLOGOFF: {
+ struct netr_LogonUasLogoff *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct netr_UasLogoffInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonUasLogoff(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONSAMLOGON: {
+ struct netr_LogonSamLogon *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.validation = talloc_zero(mem_ctx, union netr_Validation);
+ if (r->out.validation == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.authoritative = talloc_zero(mem_ctx, uint8_t);
+ if (r->out.authoritative == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonSamLogon(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONSAMLOGOFF: {
+ struct netr_LogonSamLogoff *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.result = _netr_LogonSamLogoff(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERREQCHALLENGE: {
+ struct netr_ServerReqChallenge *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
+ if (r->out.return_credentials == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerReqChallenge(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERAUTHENTICATE: {
+ struct netr_ServerAuthenticate *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
+ if (r->out.return_credentials == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerAuthenticate(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERPASSWORDSET: {
+ struct netr_ServerPasswordSet *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
+ if (r->out.return_authenticator == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerPasswordSet(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DATABASEDELTAS: {
+ struct netr_DatabaseDeltas *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.sequence_num = r->in.sequence_num;
+ r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
+ if (r->out.delta_enum_array == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DatabaseDeltas(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DATABASESYNC: {
+ struct netr_DatabaseSync *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.sync_context = r->in.sync_context;
+ r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
+ if (r->out.delta_enum_array == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DatabaseSync(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_ACCOUNTDELTAS: {
+ struct netr_AccountDeltas *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.buffer = talloc_zero(mem_ctx, struct netr_AccountBuffer);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.count_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.count_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.total_entries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.total_entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.recordid = talloc_zero(mem_ctx, struct netr_UAS_INFO_0);
+ if (r->out.recordid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_AccountDeltas(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_ACCOUNTSYNC: {
+ struct netr_AccountSync *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.recordid = r->in.recordid;
+ r->out.buffer = talloc_zero(mem_ctx, struct netr_AccountBuffer);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.count_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.count_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.total_entries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.total_entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.next_reference = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.next_reference == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_AccountSync(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_GETDCNAME: {
+ struct netr_GetDcName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.dcname = talloc_zero(mem_ctx, const char *);
+ if (r->out.dcname == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_GetDcName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONCONTROL: {
+ struct netr_LogonControl *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union netr_CONTROL_QUERY_INFORMATION);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonControl(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_GETANYDCNAME: {
+ struct netr_GetAnyDCName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.dcname = talloc_zero(mem_ctx, const char *);
+ if (r->out.dcname == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_GetAnyDCName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONCONTROL2: {
+ struct netr_LogonControl2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.query = talloc_zero(mem_ctx, union netr_CONTROL_QUERY_INFORMATION);
+ if (r->out.query == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonControl2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERAUTHENTICATE2: {
+ struct netr_ServerAuthenticate2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.negotiate_flags = r->in.negotiate_flags;
+ r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
+ if (r->out.return_credentials == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerAuthenticate2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DATABASESYNC2: {
+ struct netr_DatabaseSync2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.sync_context = r->in.sync_context;
+ r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
+ if (r->out.delta_enum_array == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DatabaseSync2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DATABASEREDO: {
+ struct netr_DatabaseRedo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
+ if (r->out.delta_enum_array == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DatabaseRedo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONCONTROL2EX: {
+ struct netr_LogonControl2Ex *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.query = talloc_zero(mem_ctx, union netr_CONTROL_QUERY_INFORMATION);
+ if (r->out.query == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonControl2Ex(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRENUMERATETRUSTEDDOMAINS: {
+ struct netr_NetrEnumerateTrustedDomains *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.trusted_domains_blob = talloc_zero(mem_ctx, struct netr_Blob);
+ if (r->out.trusted_domains_blob == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_NetrEnumerateTrustedDomains(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRGETDCNAME: {
+ struct netr_DsRGetDCName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct netr_DsRGetDCNameInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsRGetDCName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRLOGONDUMMYROUTINE1: {
+ struct netr_NETRLOGONDUMMYROUTINE1 *r = _r;
+ r->out.result = _netr_NETRLOGONDUMMYROUTINE1(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRLOGONSETSERVICEBITS: {
+ struct netr_NETRLOGONSETSERVICEBITS *r = _r;
+ r->out.result = _netr_NETRLOGONSETSERVICEBITS(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONGETTRUSTRID: {
+ struct netr_LogonGetTrustRid *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.rid = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.rid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonGetTrustRid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST: {
+ struct netr_NETRLOGONCOMPUTESERVERDIGEST *r = _r;
+ r->out.result = _netr_NETRLOGONCOMPUTESERVERDIGEST(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST: {
+ struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r = _r;
+ r->out.result = _netr_NETRLOGONCOMPUTECLIENTDIGEST(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERAUTHENTICATE3: {
+ struct netr_ServerAuthenticate3 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.negotiate_flags = r->in.negotiate_flags;
+ r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
+ if (r->out.return_credentials == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.rid = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.rid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerAuthenticate3(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRGETDCNAMEEX: {
+ struct netr_DsRGetDCNameEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct netr_DsRGetDCNameInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsRGetDCNameEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRGETSITENAME: {
+ struct netr_DsRGetSiteName *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.site = talloc_zero(mem_ctx, const char *);
+ if (r->out.site == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsRGetSiteName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONGETDOMAININFO: {
+ struct netr_LogonGetDomainInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.info = talloc_zero(mem_ctx, union netr_DomainInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonGetDomainInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERPASSWORDSET2: {
+ struct netr_ServerPasswordSet2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
+ if (r->out.return_authenticator == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerPasswordSet2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERPASSWORDGET: {
+ struct netr_ServerPasswordGet *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
+ if (r->out.return_authenticator == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.password = talloc_zero(mem_ctx, struct samr_Password);
+ if (r->out.password == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerPasswordGet(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRLOGONSENDTOSAM: {
+ struct netr_NETRLOGONSENDTOSAM *r = _r;
+ r->out.result = _netr_NETRLOGONSENDTOSAM(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRADDRESSTOSITENAMESW: {
+ struct netr_DsRAddressToSitenamesW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.ctr = talloc_zero(mem_ctx, struct netr_DsRAddressToSitenamesWCtr *);
+ if (r->out.ctr == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsRAddressToSitenamesW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRGETDCNAMEEX2: {
+ struct netr_DsRGetDCNameEx2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct netr_DsRGetDCNameInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsRGetDCNameEx2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN: {
+ struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r = _r;
+ r->out.result = _netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX: {
+ struct netr_NetrEnumerateTrustedDomainsEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.dom_trust_list = talloc_zero(mem_ctx, struct netr_DomainTrustList);
+ if (r->out.dom_trust_list == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_NetrEnumerateTrustedDomainsEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRADDRESSTOSITENAMESEXW: {
+ struct netr_DsRAddressToSitenamesExW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.ctr = talloc_zero(mem_ctx, struct netr_DsRAddressToSitenamesExWCtr *);
+ if (r->out.ctr == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsRAddressToSitenamesExW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRGETDCSITECOVERAGEW: {
+ struct netr_DsrGetDcSiteCoverageW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.ctr = talloc_zero(mem_ctx, struct DcSitesCtr *);
+ if (r->out.ctr == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsrGetDcSiteCoverageW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONSAMLOGONEX: {
+ struct netr_LogonSamLogonEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.flags = r->in.flags;
+ r->out.validation = talloc_zero(mem_ctx, union netr_Validation);
+ if (r->out.validation == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.authoritative = talloc_zero(mem_ctx, uint8_t);
+ if (r->out.authoritative == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonSamLogonEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRENUMERATEDOMAINTRUSTS: {
+ struct netr_DsrEnumerateDomainTrusts *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.trusts = talloc_zero(mem_ctx, struct netr_DomainTrustList);
+ if (r->out.trusts == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsrEnumerateDomainTrusts(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS: {
+ struct netr_DsrDeregisterDNSHostRecords *r = _r;
+ r->out.result = _netr_DsrDeregisterDNSHostRecords(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERTRUSTPASSWORDSGET: {
+ struct netr_ServerTrustPasswordsGet *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
+ if (r->out.return_authenticator == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.password = talloc_zero(mem_ctx, struct samr_Password);
+ if (r->out.password == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.password2 = talloc_zero(mem_ctx, struct samr_Password);
+ if (r->out.password2 == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerTrustPasswordsGet(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_DSRGETFORESTTRUSTINFORMATION: {
+ struct netr_DsRGetForestTrustInformation *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.forest_trust_info = talloc_zero(mem_ctx, struct lsa_ForestTrustInformation *);
+ if (r->out.forest_trust_info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_DsRGetForestTrustInformation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_GETFORESTTRUSTINFORMATION: {
+ struct netr_GetForestTrustInformation *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
+ if (r->out.return_authenticator == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.forest_trust_info = talloc_zero(mem_ctx, struct lsa_ForestTrustInformation *);
+ if (r->out.forest_trust_info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_GetForestTrustInformation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_LOGONSAMLOGONWITHFLAGS: {
+ struct netr_LogonSamLogonWithFlags *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = r->in.return_authenticator;
+ r->out.flags = r->in.flags;
+ r->out.validation = talloc_zero(mem_ctx, union netr_Validation);
+ if (r->out.validation == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.authoritative = talloc_zero(mem_ctx, uint8_t);
+ if (r->out.authoritative == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_LogonSamLogonWithFlags(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_NETR_SERVERGETTRUSTINFO: {
+ struct netr_ServerGetTrustInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
+ if (r->out.return_authenticator == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.new_owf_password = talloc_zero(mem_ctx, struct samr_Password);
+ if (r->out.new_owf_password == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.old_owf_password = talloc_zero(mem_ctx, struct samr_Password);
+ if (r->out.old_owf_password == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.trust_info = talloc_zero(mem_ctx, struct netr_TrustInfo *);
+ if (r->out.trust_info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _netr_ServerGetTrustInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_netlogon_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "netlogon", "netlogon", &ndr_table_netlogon, api_netlogon_cmds, sizeof(api_netlogon_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_netlogon.h b/librpc/gen_ndr/srv_netlogon.h
index d561706355..b9d9b7e28d 100644
--- a/librpc/gen_ndr/srv_netlogon.h
+++ b/librpc/gen_ndr/srv_netlogon.h
@@ -49,5 +49,53 @@ WERROR _netr_GetForestTrustInformation(pipes_struct *p, struct netr_GetForestTru
NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p, struct netr_LogonSamLogonWithFlags *r);
NTSTATUS _netr_ServerGetTrustInfo(pipes_struct *p, struct netr_ServerGetTrustInfo *r);
void netlogon_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_netlogon_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _netr_LogonUasLogon(pipes_struct *p, struct netr_LogonUasLogon *r);
+WERROR _netr_LogonUasLogoff(pipes_struct *p, struct netr_LogonUasLogoff *r);
+NTSTATUS _netr_LogonSamLogon(pipes_struct *p, struct netr_LogonSamLogon *r);
+NTSTATUS _netr_LogonSamLogoff(pipes_struct *p, struct netr_LogonSamLogoff *r);
+NTSTATUS _netr_ServerReqChallenge(pipes_struct *p, struct netr_ServerReqChallenge *r);
+NTSTATUS _netr_ServerAuthenticate(pipes_struct *p, struct netr_ServerAuthenticate *r);
+NTSTATUS _netr_ServerPasswordSet(pipes_struct *p, struct netr_ServerPasswordSet *r);
+NTSTATUS _netr_DatabaseDeltas(pipes_struct *p, struct netr_DatabaseDeltas *r);
+NTSTATUS _netr_DatabaseSync(pipes_struct *p, struct netr_DatabaseSync *r);
+NTSTATUS _netr_AccountDeltas(pipes_struct *p, struct netr_AccountDeltas *r);
+NTSTATUS _netr_AccountSync(pipes_struct *p, struct netr_AccountSync *r);
+WERROR _netr_GetDcName(pipes_struct *p, struct netr_GetDcName *r);
+WERROR _netr_LogonControl(pipes_struct *p, struct netr_LogonControl *r);
+WERROR _netr_GetAnyDCName(pipes_struct *p, struct netr_GetAnyDCName *r);
+WERROR _netr_LogonControl2(pipes_struct *p, struct netr_LogonControl2 *r);
+NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p, struct netr_ServerAuthenticate2 *r);
+NTSTATUS _netr_DatabaseSync2(pipes_struct *p, struct netr_DatabaseSync2 *r);
+NTSTATUS _netr_DatabaseRedo(pipes_struct *p, struct netr_DatabaseRedo *r);
+WERROR _netr_LogonControl2Ex(pipes_struct *p, struct netr_LogonControl2Ex *r);
+WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p, struct netr_NetrEnumerateTrustedDomains *r);
+WERROR _netr_DsRGetDCName(pipes_struct *p, struct netr_DsRGetDCName *r);
+WERROR _netr_NETRLOGONDUMMYROUTINE1(pipes_struct *p, struct netr_NETRLOGONDUMMYROUTINE1 *r);
+WERROR _netr_NETRLOGONSETSERVICEBITS(pipes_struct *p, struct netr_NETRLOGONSETSERVICEBITS *r);
+WERROR _netr_LogonGetTrustRid(pipes_struct *p, struct netr_LogonGetTrustRid *r);
+WERROR _netr_NETRLOGONCOMPUTESERVERDIGEST(pipes_struct *p, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r);
+WERROR _netr_NETRLOGONCOMPUTECLIENTDIGEST(pipes_struct *p, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r);
+NTSTATUS _netr_ServerAuthenticate3(pipes_struct *p, struct netr_ServerAuthenticate3 *r);
+WERROR _netr_DsRGetDCNameEx(pipes_struct *p, struct netr_DsRGetDCNameEx *r);
+WERROR _netr_DsRGetSiteName(pipes_struct *p, struct netr_DsRGetSiteName *r);
+NTSTATUS _netr_LogonGetDomainInfo(pipes_struct *p, struct netr_LogonGetDomainInfo *r);
+NTSTATUS _netr_ServerPasswordSet2(pipes_struct *p, struct netr_ServerPasswordSet2 *r);
+WERROR _netr_ServerPasswordGet(pipes_struct *p, struct netr_ServerPasswordGet *r);
+WERROR _netr_NETRLOGONSENDTOSAM(pipes_struct *p, struct netr_NETRLOGONSENDTOSAM *r);
+WERROR _netr_DsRAddressToSitenamesW(pipes_struct *p, struct netr_DsRAddressToSitenamesW *r);
+WERROR _netr_DsRGetDCNameEx2(pipes_struct *p, struct netr_DsRGetDCNameEx2 *r);
+WERROR _netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(pipes_struct *p, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r);
+WERROR _netr_NetrEnumerateTrustedDomainsEx(pipes_struct *p, struct netr_NetrEnumerateTrustedDomainsEx *r);
+WERROR _netr_DsRAddressToSitenamesExW(pipes_struct *p, struct netr_DsRAddressToSitenamesExW *r);
+WERROR _netr_DsrGetDcSiteCoverageW(pipes_struct *p, struct netr_DsrGetDcSiteCoverageW *r);
+NTSTATUS _netr_LogonSamLogonEx(pipes_struct *p, struct netr_LogonSamLogonEx *r);
+WERROR _netr_DsrEnumerateDomainTrusts(pipes_struct *p, struct netr_DsrEnumerateDomainTrusts *r);
+WERROR _netr_DsrDeregisterDNSHostRecords(pipes_struct *p, struct netr_DsrDeregisterDNSHostRecords *r);
+NTSTATUS _netr_ServerTrustPasswordsGet(pipes_struct *p, struct netr_ServerTrustPasswordsGet *r);
+WERROR _netr_DsRGetForestTrustInformation(pipes_struct *p, struct netr_DsRGetForestTrustInformation *r);
+WERROR _netr_GetForestTrustInformation(pipes_struct *p, struct netr_GetForestTrustInformation *r);
+NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p, struct netr_LogonSamLogonWithFlags *r);
+NTSTATUS _netr_ServerGetTrustInfo(pipes_struct *p, struct netr_ServerGetTrustInfo *r);
NTSTATUS rpc_netlogon_init(void);
#endif /* __SRV_NETLOGON__ */
diff --git a/librpc/gen_ndr/srv_ntsvcs.c b/librpc/gen_ndr/srv_ntsvcs.c
index 0a93723d4f..50907acd31 100644
--- a/librpc/gen_ndr/srv_ntsvcs.c
+++ b/librpc/gen_ndr/srv_ntsvcs.c
@@ -4871,6 +4871,447 @@ void ntsvcs_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_ntsvcs_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_ntsvcs_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_PNP_DISCONNECT: {
+ struct PNP_Disconnect *r = _r;
+ r->out.result = _PNP_Disconnect(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_CONNECT: {
+ struct PNP_Connect *r = _r;
+ r->out.result = _PNP_Connect(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETVERSION: {
+ struct PNP_GetVersion *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.version = talloc_zero(mem_ctx, uint16_t);
+ if (r->out.version == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _PNP_GetVersion(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETGLOBALSTATE: {
+ struct PNP_GetGlobalState *r = _r;
+ r->out.result = _PNP_GetGlobalState(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_INITDETECTION: {
+ struct PNP_InitDetection *r = _r;
+ r->out.result = _PNP_InitDetection(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_REPORTLOGON: {
+ struct PNP_ReportLogOn *r = _r;
+ r->out.result = _PNP_ReportLogOn(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_VALIDATEDEVICEINSTANCE: {
+ struct PNP_ValidateDeviceInstance *r = _r;
+ r->out.result = _PNP_ValidateDeviceInstance(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETROOTDEVICEINSTANCE: {
+ struct PNP_GetRootDeviceInstance *r = _r;
+ r->out.result = _PNP_GetRootDeviceInstance(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETRELATEDDEVICEINSTANCE: {
+ struct PNP_GetRelatedDeviceInstance *r = _r;
+ r->out.result = _PNP_GetRelatedDeviceInstance(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_ENUMERATESUBKEYS: {
+ struct PNP_EnumerateSubKeys *r = _r;
+ r->out.result = _PNP_EnumerateSubKeys(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETDEVICELIST: {
+ struct PNP_GetDeviceList *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.length = r->in.length;
+ r->out.buffer = talloc_zero_array(mem_ctx, uint16_t, *r->out.length);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _PNP_GetDeviceList(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETDEVICELISTSIZE: {
+ struct PNP_GetDeviceListSize *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _PNP_GetDeviceListSize(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETDEPTH: {
+ struct PNP_GetDepth *r = _r;
+ r->out.result = _PNP_GetDepth(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETDEVICEREGPROP: {
+ struct PNP_GetDeviceRegProp *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.reg_data_type = r->in.reg_data_type;
+ r->out.buffer_size = r->in.buffer_size;
+ r->out.needed = r->in.needed;
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, *r->out.buffer_size);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _PNP_GetDeviceRegProp(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_SETDEVICEREGPROP: {
+ struct PNP_SetDeviceRegProp *r = _r;
+ r->out.result = _PNP_SetDeviceRegProp(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETCLASSINSTANCE: {
+ struct PNP_GetClassInstance *r = _r;
+ r->out.result = _PNP_GetClassInstance(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_CREATEKEY: {
+ struct PNP_CreateKey *r = _r;
+ r->out.result = _PNP_CreateKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_DELETEREGISTRYKEY: {
+ struct PNP_DeleteRegistryKey *r = _r;
+ r->out.result = _PNP_DeleteRegistryKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETCLASSCOUNT: {
+ struct PNP_GetClassCount *r = _r;
+ r->out.result = _PNP_GetClassCount(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETCLASSNAME: {
+ struct PNP_GetClassName *r = _r;
+ r->out.result = _PNP_GetClassName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_DELETECLASSKEY: {
+ struct PNP_DeleteClassKey *r = _r;
+ r->out.result = _PNP_DeleteClassKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETINTERFACEDEVICEALIAS: {
+ struct PNP_GetInterfaceDeviceAlias *r = _r;
+ r->out.result = _PNP_GetInterfaceDeviceAlias(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETINTERFACEDEVICELIST: {
+ struct PNP_GetInterfaceDeviceList *r = _r;
+ r->out.result = _PNP_GetInterfaceDeviceList(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETINTERFACEDEVICELISTSIZE: {
+ struct PNP_GetInterfaceDeviceListSize *r = _r;
+ r->out.result = _PNP_GetInterfaceDeviceListSize(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_REGISTERDEVICECLASSASSOCIATION: {
+ struct PNP_RegisterDeviceClassAssociation *r = _r;
+ r->out.result = _PNP_RegisterDeviceClassAssociation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_UNREGISTERDEVICECLASSASSOCIATION: {
+ struct PNP_UnregisterDeviceClassAssociation *r = _r;
+ r->out.result = _PNP_UnregisterDeviceClassAssociation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETCLASSREGPROP: {
+ struct PNP_GetClassRegProp *r = _r;
+ r->out.result = _PNP_GetClassRegProp(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_SETCLASSREGPROP: {
+ struct PNP_SetClassRegProp *r = _r;
+ r->out.result = _PNP_SetClassRegProp(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_CREATEDEVINST: {
+ struct PNP_CreateDevInst *r = _r;
+ r->out.result = _PNP_CreateDevInst(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_DEVICEINSTANCEACTION: {
+ struct PNP_DeviceInstanceAction *r = _r;
+ r->out.result = _PNP_DeviceInstanceAction(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETDEVICESTATUS: {
+ struct PNP_GetDeviceStatus *r = _r;
+ r->out.result = _PNP_GetDeviceStatus(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_SETDEVICEPROBLEM: {
+ struct PNP_SetDeviceProblem *r = _r;
+ r->out.result = _PNP_SetDeviceProblem(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_DISABLEDEVINST: {
+ struct PNP_DisableDevInst *r = _r;
+ r->out.result = _PNP_DisableDevInst(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_UNINSTALLDEVINST: {
+ struct PNP_UninstallDevInst *r = _r;
+ r->out.result = _PNP_UninstallDevInst(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_ADDID: {
+ struct PNP_AddID *r = _r;
+ r->out.result = _PNP_AddID(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_REGISTERDRIVER: {
+ struct PNP_RegisterDriver *r = _r;
+ r->out.result = _PNP_RegisterDriver(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_QUERYREMOVE: {
+ struct PNP_QueryRemove *r = _r;
+ r->out.result = _PNP_QueryRemove(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_REQUESTDEVICEEJECT: {
+ struct PNP_RequestDeviceEject *r = _r;
+ r->out.result = _PNP_RequestDeviceEject(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_ISDOCKSTATIONPRESENT: {
+ struct PNP_IsDockStationPresent *r = _r;
+ r->out.result = _PNP_IsDockStationPresent(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_REQUESTEJECTPC: {
+ struct PNP_RequestEjectPC *r = _r;
+ r->out.result = _PNP_RequestEjectPC(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_HWPROFFLAGS: {
+ struct PNP_HwProfFlags *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.profile_flags = r->in.profile_flags;
+ r->out.veto_type = r->in.veto_type;
+ r->out.unknown5a = talloc_zero(mem_ctx, const char *);
+ if (r->out.unknown5a == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _PNP_HwProfFlags(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETHWPROFINFO: {
+ struct PNP_GetHwProfInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = r->in.info;
+ r->out.result = _PNP_GetHwProfInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_ADDEMPTYLOGCONF: {
+ struct PNP_AddEmptyLogConf *r = _r;
+ r->out.result = _PNP_AddEmptyLogConf(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_FREELOGCONF: {
+ struct PNP_FreeLogConf *r = _r;
+ r->out.result = _PNP_FreeLogConf(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETFIRSTLOGCONF: {
+ struct PNP_GetFirstLogConf *r = _r;
+ r->out.result = _PNP_GetFirstLogConf(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETNEXTLOGCONF: {
+ struct PNP_GetNextLogConf *r = _r;
+ r->out.result = _PNP_GetNextLogConf(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETLOGCONFPRIORITY: {
+ struct PNP_GetLogConfPriority *r = _r;
+ r->out.result = _PNP_GetLogConfPriority(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_ADDRESDES: {
+ struct PNP_AddResDes *r = _r;
+ r->out.result = _PNP_AddResDes(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_FREERESDES: {
+ struct PNP_FreeResDes *r = _r;
+ r->out.result = _PNP_FreeResDes(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETNEXTRESDES: {
+ struct PNP_GetNextResDes *r = _r;
+ r->out.result = _PNP_GetNextResDes(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETRESDESDATA: {
+ struct PNP_GetResDesData *r = _r;
+ r->out.result = _PNP_GetResDesData(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETRESDESDATASIZE: {
+ struct PNP_GetResDesDataSize *r = _r;
+ r->out.result = _PNP_GetResDesDataSize(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_MODIFYRESDES: {
+ struct PNP_ModifyResDes *r = _r;
+ r->out.result = _PNP_ModifyResDes(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_DETECTRESOURCELIMIT: {
+ struct PNP_DetectResourceLimit *r = _r;
+ r->out.result = _PNP_DetectResourceLimit(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_QUERYRESCONFLIST: {
+ struct PNP_QueryResConfList *r = _r;
+ r->out.result = _PNP_QueryResConfList(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_SETHWPROF: {
+ struct PNP_SetHwProf *r = _r;
+ r->out.result = _PNP_SetHwProf(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_QUERYARBITRATORFREEDATA: {
+ struct PNP_QueryArbitratorFreeData *r = _r;
+ r->out.result = _PNP_QueryArbitratorFreeData(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_QUERYARBITRATORFREESIZE: {
+ struct PNP_QueryArbitratorFreeSize *r = _r;
+ r->out.result = _PNP_QueryArbitratorFreeSize(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_RUNDETECTION: {
+ struct PNP_RunDetection *r = _r;
+ r->out.result = _PNP_RunDetection(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_REGISTERNOTIFICATION: {
+ struct PNP_RegisterNotification *r = _r;
+ r->out.result = _PNP_RegisterNotification(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_UNREGISTERNOTIFICATION: {
+ struct PNP_UnregisterNotification *r = _r;
+ r->out.result = _PNP_UnregisterNotification(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETCUSTOMDEVPROP: {
+ struct PNP_GetCustomDevProp *r = _r;
+ r->out.result = _PNP_GetCustomDevProp(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETVERSIONINTERNAL: {
+ struct PNP_GetVersionInternal *r = _r;
+ r->out.result = _PNP_GetVersionInternal(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETBLOCKEDDRIVERINFO: {
+ struct PNP_GetBlockedDriverInfo *r = _r;
+ r->out.result = _PNP_GetBlockedDriverInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS: {
+ struct PNP_GetServerSideDeviceInstallFlags *r = _r;
+ r->out.result = _PNP_GetServerSideDeviceInstallFlags(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_ntsvcs_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "ntsvcs", "ntsvcs", &ndr_table_ntsvcs, api_ntsvcs_cmds, sizeof(api_ntsvcs_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_ntsvcs.h b/librpc/gen_ndr/srv_ntsvcs.h
index 16f91cde67..40d28a9e55 100644
--- a/librpc/gen_ndr/srv_ntsvcs.h
+++ b/librpc/gen_ndr/srv_ntsvcs.h
@@ -67,5 +67,71 @@ WERROR _PNP_GetVersionInternal(pipes_struct *p, struct PNP_GetVersionInternal *r
WERROR _PNP_GetBlockedDriverInfo(pipes_struct *p, struct PNP_GetBlockedDriverInfo *r);
WERROR _PNP_GetServerSideDeviceInstallFlags(pipes_struct *p, struct PNP_GetServerSideDeviceInstallFlags *r);
void ntsvcs_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_ntsvcs_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _PNP_Disconnect(pipes_struct *p, struct PNP_Disconnect *r);
+WERROR _PNP_Connect(pipes_struct *p, struct PNP_Connect *r);
+WERROR _PNP_GetVersion(pipes_struct *p, struct PNP_GetVersion *r);
+WERROR _PNP_GetGlobalState(pipes_struct *p, struct PNP_GetGlobalState *r);
+WERROR _PNP_InitDetection(pipes_struct *p, struct PNP_InitDetection *r);
+WERROR _PNP_ReportLogOn(pipes_struct *p, struct PNP_ReportLogOn *r);
+WERROR _PNP_ValidateDeviceInstance(pipes_struct *p, struct PNP_ValidateDeviceInstance *r);
+WERROR _PNP_GetRootDeviceInstance(pipes_struct *p, struct PNP_GetRootDeviceInstance *r);
+WERROR _PNP_GetRelatedDeviceInstance(pipes_struct *p, struct PNP_GetRelatedDeviceInstance *r);
+WERROR _PNP_EnumerateSubKeys(pipes_struct *p, struct PNP_EnumerateSubKeys *r);
+WERROR _PNP_GetDeviceList(pipes_struct *p, struct PNP_GetDeviceList *r);
+WERROR _PNP_GetDeviceListSize(pipes_struct *p, struct PNP_GetDeviceListSize *r);
+WERROR _PNP_GetDepth(pipes_struct *p, struct PNP_GetDepth *r);
+WERROR _PNP_GetDeviceRegProp(pipes_struct *p, struct PNP_GetDeviceRegProp *r);
+WERROR _PNP_SetDeviceRegProp(pipes_struct *p, struct PNP_SetDeviceRegProp *r);
+WERROR _PNP_GetClassInstance(pipes_struct *p, struct PNP_GetClassInstance *r);
+WERROR _PNP_CreateKey(pipes_struct *p, struct PNP_CreateKey *r);
+WERROR _PNP_DeleteRegistryKey(pipes_struct *p, struct PNP_DeleteRegistryKey *r);
+WERROR _PNP_GetClassCount(pipes_struct *p, struct PNP_GetClassCount *r);
+WERROR _PNP_GetClassName(pipes_struct *p, struct PNP_GetClassName *r);
+WERROR _PNP_DeleteClassKey(pipes_struct *p, struct PNP_DeleteClassKey *r);
+WERROR _PNP_GetInterfaceDeviceAlias(pipes_struct *p, struct PNP_GetInterfaceDeviceAlias *r);
+WERROR _PNP_GetInterfaceDeviceList(pipes_struct *p, struct PNP_GetInterfaceDeviceList *r);
+WERROR _PNP_GetInterfaceDeviceListSize(pipes_struct *p, struct PNP_GetInterfaceDeviceListSize *r);
+WERROR _PNP_RegisterDeviceClassAssociation(pipes_struct *p, struct PNP_RegisterDeviceClassAssociation *r);
+WERROR _PNP_UnregisterDeviceClassAssociation(pipes_struct *p, struct PNP_UnregisterDeviceClassAssociation *r);
+WERROR _PNP_GetClassRegProp(pipes_struct *p, struct PNP_GetClassRegProp *r);
+WERROR _PNP_SetClassRegProp(pipes_struct *p, struct PNP_SetClassRegProp *r);
+WERROR _PNP_CreateDevInst(pipes_struct *p, struct PNP_CreateDevInst *r);
+WERROR _PNP_DeviceInstanceAction(pipes_struct *p, struct PNP_DeviceInstanceAction *r);
+WERROR _PNP_GetDeviceStatus(pipes_struct *p, struct PNP_GetDeviceStatus *r);
+WERROR _PNP_SetDeviceProblem(pipes_struct *p, struct PNP_SetDeviceProblem *r);
+WERROR _PNP_DisableDevInst(pipes_struct *p, struct PNP_DisableDevInst *r);
+WERROR _PNP_UninstallDevInst(pipes_struct *p, struct PNP_UninstallDevInst *r);
+WERROR _PNP_AddID(pipes_struct *p, struct PNP_AddID *r);
+WERROR _PNP_RegisterDriver(pipes_struct *p, struct PNP_RegisterDriver *r);
+WERROR _PNP_QueryRemove(pipes_struct *p, struct PNP_QueryRemove *r);
+WERROR _PNP_RequestDeviceEject(pipes_struct *p, struct PNP_RequestDeviceEject *r);
+WERROR _PNP_IsDockStationPresent(pipes_struct *p, struct PNP_IsDockStationPresent *r);
+WERROR _PNP_RequestEjectPC(pipes_struct *p, struct PNP_RequestEjectPC *r);
+WERROR _PNP_HwProfFlags(pipes_struct *p, struct PNP_HwProfFlags *r);
+WERROR _PNP_GetHwProfInfo(pipes_struct *p, struct PNP_GetHwProfInfo *r);
+WERROR _PNP_AddEmptyLogConf(pipes_struct *p, struct PNP_AddEmptyLogConf *r);
+WERROR _PNP_FreeLogConf(pipes_struct *p, struct PNP_FreeLogConf *r);
+WERROR _PNP_GetFirstLogConf(pipes_struct *p, struct PNP_GetFirstLogConf *r);
+WERROR _PNP_GetNextLogConf(pipes_struct *p, struct PNP_GetNextLogConf *r);
+WERROR _PNP_GetLogConfPriority(pipes_struct *p, struct PNP_GetLogConfPriority *r);
+WERROR _PNP_AddResDes(pipes_struct *p, struct PNP_AddResDes *r);
+WERROR _PNP_FreeResDes(pipes_struct *p, struct PNP_FreeResDes *r);
+WERROR _PNP_GetNextResDes(pipes_struct *p, struct PNP_GetNextResDes *r);
+WERROR _PNP_GetResDesData(pipes_struct *p, struct PNP_GetResDesData *r);
+WERROR _PNP_GetResDesDataSize(pipes_struct *p, struct PNP_GetResDesDataSize *r);
+WERROR _PNP_ModifyResDes(pipes_struct *p, struct PNP_ModifyResDes *r);
+WERROR _PNP_DetectResourceLimit(pipes_struct *p, struct PNP_DetectResourceLimit *r);
+WERROR _PNP_QueryResConfList(pipes_struct *p, struct PNP_QueryResConfList *r);
+WERROR _PNP_SetHwProf(pipes_struct *p, struct PNP_SetHwProf *r);
+WERROR _PNP_QueryArbitratorFreeData(pipes_struct *p, struct PNP_QueryArbitratorFreeData *r);
+WERROR _PNP_QueryArbitratorFreeSize(pipes_struct *p, struct PNP_QueryArbitratorFreeSize *r);
+WERROR _PNP_RunDetection(pipes_struct *p, struct PNP_RunDetection *r);
+WERROR _PNP_RegisterNotification(pipes_struct *p, struct PNP_RegisterNotification *r);
+WERROR _PNP_UnregisterNotification(pipes_struct *p, struct PNP_UnregisterNotification *r);
+WERROR _PNP_GetCustomDevProp(pipes_struct *p, struct PNP_GetCustomDevProp *r);
+WERROR _PNP_GetVersionInternal(pipes_struct *p, struct PNP_GetVersionInternal *r);
+WERROR _PNP_GetBlockedDriverInfo(pipes_struct *p, struct PNP_GetBlockedDriverInfo *r);
+WERROR _PNP_GetServerSideDeviceInstallFlags(pipes_struct *p, struct PNP_GetServerSideDeviceInstallFlags *r);
NTSTATUS rpc_ntsvcs_init(void);
#endif /* __SRV_NTSVCS__ */
diff --git a/librpc/gen_ndr/srv_samr.c b/librpc/gen_ndr/srv_samr.c
index 9bda8785e1..7649a7d0cf 100644
--- a/librpc/gen_ndr/srv_samr.c
+++ b/librpc/gen_ndr/srv_samr.c
@@ -5476,6 +5476,791 @@ void samr_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_samr_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_samr_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_SAMR_CONNECT: {
+ struct samr_Connect *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.connect_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.connect_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_Connect(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CLOSE: {
+ struct samr_Close *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = r->in.handle;
+ r->out.result = _samr_Close(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETSECURITY: {
+ struct samr_SetSecurity *r = _r;
+ r->out.result = _samr_SetSecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYSECURITY: {
+ struct samr_QuerySecurity *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sdbuf = talloc_zero(mem_ctx, struct sec_desc_buf *);
+ if (r->out.sdbuf == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QuerySecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SHUTDOWN: {
+ struct samr_Shutdown *r = _r;
+ r->out.result = _samr_Shutdown(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_LOOKUPDOMAIN: {
+ struct samr_LookupDomain *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sid = talloc_zero(mem_ctx, struct dom_sid2 *);
+ if (r->out.sid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_LookupDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_ENUMDOMAINS: {
+ struct samr_EnumDomains *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.sam = talloc_zero(mem_ctx, struct samr_SamArray *);
+ if (r->out.sam == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.num_entries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_EnumDomains(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_OPENDOMAIN: {
+ struct samr_OpenDomain *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.domain_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.domain_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_OpenDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYDOMAININFO: {
+ struct samr_QueryDomainInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union samr_DomainInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryDomainInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETDOMAININFO: {
+ struct samr_SetDomainInfo *r = _r;
+ r->out.result = _samr_SetDomainInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CREATEDOMAINGROUP: {
+ struct samr_CreateDomainGroup *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.group_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.group_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.rid = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.rid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_CreateDomainGroup(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_ENUMDOMAINGROUPS: {
+ struct samr_EnumDomainGroups *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.sam = talloc_zero(mem_ctx, struct samr_SamArray *);
+ if (r->out.sam == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.num_entries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_EnumDomainGroups(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CREATEUSER: {
+ struct samr_CreateUser *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.user_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.user_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.rid = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.rid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_CreateUser(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_ENUMDOMAINUSERS: {
+ struct samr_EnumDomainUsers *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.sam = talloc_zero(mem_ctx, struct samr_SamArray *);
+ if (r->out.sam == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.num_entries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_EnumDomainUsers(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CREATEDOMALIAS: {
+ struct samr_CreateDomAlias *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.alias_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.alias_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.rid = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.rid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_CreateDomAlias(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_ENUMDOMAINALIASES: {
+ struct samr_EnumDomainAliases *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.sam = talloc_zero(mem_ctx, struct samr_SamArray *);
+ if (r->out.sam == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.num_entries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_EnumDomainAliases(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETALIASMEMBERSHIP: {
+ struct samr_GetAliasMembership *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.rids = talloc_zero(mem_ctx, struct samr_Ids);
+ if (r->out.rids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetAliasMembership(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_LOOKUPNAMES: {
+ struct samr_LookupNames *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.rids = talloc_zero(mem_ctx, struct samr_Ids);
+ if (r->out.rids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.types = talloc_zero(mem_ctx, struct samr_Ids);
+ if (r->out.types == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_LookupNames(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_LOOKUPRIDS: {
+ struct samr_LookupRids *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.names = talloc_zero(mem_ctx, struct lsa_Strings);
+ if (r->out.names == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.types = talloc_zero(mem_ctx, struct samr_Ids);
+ if (r->out.types == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_LookupRids(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_OPENGROUP: {
+ struct samr_OpenGroup *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.group_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.group_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_OpenGroup(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYGROUPINFO: {
+ struct samr_QueryGroupInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union samr_GroupInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryGroupInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETGROUPINFO: {
+ struct samr_SetGroupInfo *r = _r;
+ r->out.result = _samr_SetGroupInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_ADDGROUPMEMBER: {
+ struct samr_AddGroupMember *r = _r;
+ r->out.result = _samr_AddGroupMember(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_DELETEDOMAINGROUP: {
+ struct samr_DeleteDomainGroup *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.group_handle = r->in.group_handle;
+ r->out.result = _samr_DeleteDomainGroup(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_DELETEGROUPMEMBER: {
+ struct samr_DeleteGroupMember *r = _r;
+ r->out.result = _samr_DeleteGroupMember(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYGROUPMEMBER: {
+ struct samr_QueryGroupMember *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.rids = talloc_zero(mem_ctx, struct samr_RidTypeArray *);
+ if (r->out.rids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryGroupMember(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETMEMBERATTRIBUTESOFGROUP: {
+ struct samr_SetMemberAttributesOfGroup *r = _r;
+ r->out.result = _samr_SetMemberAttributesOfGroup(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_OPENALIAS: {
+ struct samr_OpenAlias *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.alias_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.alias_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_OpenAlias(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYALIASINFO: {
+ struct samr_QueryAliasInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union samr_AliasInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryAliasInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETALIASINFO: {
+ struct samr_SetAliasInfo *r = _r;
+ r->out.result = _samr_SetAliasInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_DELETEDOMALIAS: {
+ struct samr_DeleteDomAlias *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.alias_handle = r->in.alias_handle;
+ r->out.result = _samr_DeleteDomAlias(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_ADDALIASMEMBER: {
+ struct samr_AddAliasMember *r = _r;
+ r->out.result = _samr_AddAliasMember(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_DELETEALIASMEMBER: {
+ struct samr_DeleteAliasMember *r = _r;
+ r->out.result = _samr_DeleteAliasMember(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETMEMBERSINALIAS: {
+ struct samr_GetMembersInAlias *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sids = talloc_zero(mem_ctx, struct lsa_SidArray);
+ if (r->out.sids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetMembersInAlias(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_OPENUSER: {
+ struct samr_OpenUser *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.user_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.user_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_OpenUser(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_DELETEUSER: {
+ struct samr_DeleteUser *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.user_handle = r->in.user_handle;
+ r->out.result = _samr_DeleteUser(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYUSERINFO: {
+ struct samr_QueryUserInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union samr_UserInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryUserInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETUSERINFO: {
+ struct samr_SetUserInfo *r = _r;
+ r->out.result = _samr_SetUserInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CHANGEPASSWORDUSER: {
+ struct samr_ChangePasswordUser *r = _r;
+ r->out.result = _samr_ChangePasswordUser(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETGROUPSFORUSER: {
+ struct samr_GetGroupsForUser *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.rids = talloc_zero(mem_ctx, struct samr_RidWithAttributeArray *);
+ if (r->out.rids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetGroupsForUser(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYDISPLAYINFO: {
+ struct samr_QueryDisplayInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.total_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.total_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.returned_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.returned_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.info = talloc_zero(mem_ctx, union samr_DispInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryDisplayInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETDISPLAYENUMERATIONINDEX: {
+ struct samr_GetDisplayEnumerationIndex *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.idx = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.idx == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetDisplayEnumerationIndex(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_TESTPRIVATEFUNCTIONSDOMAIN: {
+ struct samr_TestPrivateFunctionsDomain *r = _r;
+ r->out.result = _samr_TestPrivateFunctionsDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_TESTPRIVATEFUNCTIONSUSER: {
+ struct samr_TestPrivateFunctionsUser *r = _r;
+ r->out.result = _samr_TestPrivateFunctionsUser(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETUSERPWINFO: {
+ struct samr_GetUserPwInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct samr_PwInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetUserPwInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_REMOVEMEMBERFROMFOREIGNDOMAIN: {
+ struct samr_RemoveMemberFromForeignDomain *r = _r;
+ r->out.result = _samr_RemoveMemberFromForeignDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYDOMAININFO2: {
+ struct samr_QueryDomainInfo2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union samr_DomainInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryDomainInfo2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYUSERINFO2: {
+ struct samr_QueryUserInfo2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union samr_UserInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryUserInfo2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYDISPLAYINFO2: {
+ struct samr_QueryDisplayInfo2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.total_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.total_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.returned_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.returned_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.info = talloc_zero(mem_ctx, union samr_DispInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryDisplayInfo2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETDISPLAYENUMERATIONINDEX2: {
+ struct samr_GetDisplayEnumerationIndex2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.idx = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.idx == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetDisplayEnumerationIndex2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CREATEUSER2: {
+ struct samr_CreateUser2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.user_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.user_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.access_granted = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.access_granted == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.rid = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.rid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_CreateUser2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_QUERYDISPLAYINFO3: {
+ struct samr_QueryDisplayInfo3 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.total_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.total_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.returned_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.returned_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.info = talloc_zero(mem_ctx, union samr_DispInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_QueryDisplayInfo3(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_ADDMULTIPLEMEMBERSTOALIAS: {
+ struct samr_AddMultipleMembersToAlias *r = _r;
+ r->out.result = _samr_AddMultipleMembersToAlias(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_REMOVEMULTIPLEMEMBERSFROMALIAS: {
+ struct samr_RemoveMultipleMembersFromAlias *r = _r;
+ r->out.result = _samr_RemoveMultipleMembersFromAlias(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_OEMCHANGEPASSWORDUSER2: {
+ struct samr_OemChangePasswordUser2 *r = _r;
+ r->out.result = _samr_OemChangePasswordUser2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CHANGEPASSWORDUSER2: {
+ struct samr_ChangePasswordUser2 *r = _r;
+ r->out.result = _samr_ChangePasswordUser2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETDOMPWINFO: {
+ struct samr_GetDomPwInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct samr_PwInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetDomPwInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CONNECT2: {
+ struct samr_Connect2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.connect_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.connect_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_Connect2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETUSERINFO2: {
+ struct samr_SetUserInfo2 *r = _r;
+ r->out.result = _samr_SetUserInfo2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETBOOTKEYINFORMATION: {
+ struct samr_SetBootKeyInformation *r = _r;
+ r->out.result = _samr_SetBootKeyInformation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_GETBOOTKEYINFORMATION: {
+ struct samr_GetBootKeyInformation *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.unknown = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.unknown == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_GetBootKeyInformation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CONNECT3: {
+ struct samr_Connect3 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.connect_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.connect_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_Connect3(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CONNECT4: {
+ struct samr_Connect4 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.connect_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.connect_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_Connect4(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CHANGEPASSWORDUSER3: {
+ struct samr_ChangePasswordUser3 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.dominfo = talloc_zero(mem_ctx, struct samr_DomInfo1 *);
+ if (r->out.dominfo == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.reject = talloc_zero(mem_ctx, struct samr_ChangeReject *);
+ if (r->out.reject == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_ChangePasswordUser3(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_CONNECT5: {
+ struct samr_Connect5 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.level_out = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.level_out == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.info_out = talloc_zero(mem_ctx, union samr_ConnectInfo);
+ if (r->out.info_out == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.connect_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.connect_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_Connect5(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_RIDTOSID: {
+ struct samr_RidToSid *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sid = talloc_zero(mem_ctx, struct dom_sid2 *);
+ if (r->out.sid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_RidToSid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_SETDSRMPASSWORD: {
+ struct samr_SetDsrmPassword *r = _r;
+ r->out.result = _samr_SetDsrmPassword(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SAMR_VALIDATEPASSWORD: {
+ struct samr_ValidatePassword *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.rep = talloc_zero(mem_ctx, union samr_ValidatePasswordRep *);
+ if (r->out.rep == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _samr_ValidatePassword(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_samr_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "samr", "samr", &ndr_table_samr, api_samr_cmds, sizeof(api_samr_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_samr.h b/librpc/gen_ndr/srv_samr.h
index 1a697f6b3b..4b308ebf29 100644
--- a/librpc/gen_ndr/srv_samr.h
+++ b/librpc/gen_ndr/srv_samr.h
@@ -70,5 +70,74 @@ NTSTATUS _samr_RidToSid(pipes_struct *p, struct samr_RidToSid *r);
NTSTATUS _samr_SetDsrmPassword(pipes_struct *p, struct samr_SetDsrmPassword *r);
NTSTATUS _samr_ValidatePassword(pipes_struct *p, struct samr_ValidatePassword *r);
void samr_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_samr_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+NTSTATUS _samr_Connect(pipes_struct *p, struct samr_Connect *r);
+NTSTATUS _samr_Close(pipes_struct *p, struct samr_Close *r);
+NTSTATUS _samr_SetSecurity(pipes_struct *p, struct samr_SetSecurity *r);
+NTSTATUS _samr_QuerySecurity(pipes_struct *p, struct samr_QuerySecurity *r);
+NTSTATUS _samr_Shutdown(pipes_struct *p, struct samr_Shutdown *r);
+NTSTATUS _samr_LookupDomain(pipes_struct *p, struct samr_LookupDomain *r);
+NTSTATUS _samr_EnumDomains(pipes_struct *p, struct samr_EnumDomains *r);
+NTSTATUS _samr_OpenDomain(pipes_struct *p, struct samr_OpenDomain *r);
+NTSTATUS _samr_QueryDomainInfo(pipes_struct *p, struct samr_QueryDomainInfo *r);
+NTSTATUS _samr_SetDomainInfo(pipes_struct *p, struct samr_SetDomainInfo *r);
+NTSTATUS _samr_CreateDomainGroup(pipes_struct *p, struct samr_CreateDomainGroup *r);
+NTSTATUS _samr_EnumDomainGroups(pipes_struct *p, struct samr_EnumDomainGroups *r);
+NTSTATUS _samr_CreateUser(pipes_struct *p, struct samr_CreateUser *r);
+NTSTATUS _samr_EnumDomainUsers(pipes_struct *p, struct samr_EnumDomainUsers *r);
+NTSTATUS _samr_CreateDomAlias(pipes_struct *p, struct samr_CreateDomAlias *r);
+NTSTATUS _samr_EnumDomainAliases(pipes_struct *p, struct samr_EnumDomainAliases *r);
+NTSTATUS _samr_GetAliasMembership(pipes_struct *p, struct samr_GetAliasMembership *r);
+NTSTATUS _samr_LookupNames(pipes_struct *p, struct samr_LookupNames *r);
+NTSTATUS _samr_LookupRids(pipes_struct *p, struct samr_LookupRids *r);
+NTSTATUS _samr_OpenGroup(pipes_struct *p, struct samr_OpenGroup *r);
+NTSTATUS _samr_QueryGroupInfo(pipes_struct *p, struct samr_QueryGroupInfo *r);
+NTSTATUS _samr_SetGroupInfo(pipes_struct *p, struct samr_SetGroupInfo *r);
+NTSTATUS _samr_AddGroupMember(pipes_struct *p, struct samr_AddGroupMember *r);
+NTSTATUS _samr_DeleteDomainGroup(pipes_struct *p, struct samr_DeleteDomainGroup *r);
+NTSTATUS _samr_DeleteGroupMember(pipes_struct *p, struct samr_DeleteGroupMember *r);
+NTSTATUS _samr_QueryGroupMember(pipes_struct *p, struct samr_QueryGroupMember *r);
+NTSTATUS _samr_SetMemberAttributesOfGroup(pipes_struct *p, struct samr_SetMemberAttributesOfGroup *r);
+NTSTATUS _samr_OpenAlias(pipes_struct *p, struct samr_OpenAlias *r);
+NTSTATUS _samr_QueryAliasInfo(pipes_struct *p, struct samr_QueryAliasInfo *r);
+NTSTATUS _samr_SetAliasInfo(pipes_struct *p, struct samr_SetAliasInfo *r);
+NTSTATUS _samr_DeleteDomAlias(pipes_struct *p, struct samr_DeleteDomAlias *r);
+NTSTATUS _samr_AddAliasMember(pipes_struct *p, struct samr_AddAliasMember *r);
+NTSTATUS _samr_DeleteAliasMember(pipes_struct *p, struct samr_DeleteAliasMember *r);
+NTSTATUS _samr_GetMembersInAlias(pipes_struct *p, struct samr_GetMembersInAlias *r);
+NTSTATUS _samr_OpenUser(pipes_struct *p, struct samr_OpenUser *r);
+NTSTATUS _samr_DeleteUser(pipes_struct *p, struct samr_DeleteUser *r);
+NTSTATUS _samr_QueryUserInfo(pipes_struct *p, struct samr_QueryUserInfo *r);
+NTSTATUS _samr_SetUserInfo(pipes_struct *p, struct samr_SetUserInfo *r);
+NTSTATUS _samr_ChangePasswordUser(pipes_struct *p, struct samr_ChangePasswordUser *r);
+NTSTATUS _samr_GetGroupsForUser(pipes_struct *p, struct samr_GetGroupsForUser *r);
+NTSTATUS _samr_QueryDisplayInfo(pipes_struct *p, struct samr_QueryDisplayInfo *r);
+NTSTATUS _samr_GetDisplayEnumerationIndex(pipes_struct *p, struct samr_GetDisplayEnumerationIndex *r);
+NTSTATUS _samr_TestPrivateFunctionsDomain(pipes_struct *p, struct samr_TestPrivateFunctionsDomain *r);
+NTSTATUS _samr_TestPrivateFunctionsUser(pipes_struct *p, struct samr_TestPrivateFunctionsUser *r);
+NTSTATUS _samr_GetUserPwInfo(pipes_struct *p, struct samr_GetUserPwInfo *r);
+NTSTATUS _samr_RemoveMemberFromForeignDomain(pipes_struct *p, struct samr_RemoveMemberFromForeignDomain *r);
+NTSTATUS _samr_QueryDomainInfo2(pipes_struct *p, struct samr_QueryDomainInfo2 *r);
+NTSTATUS _samr_QueryUserInfo2(pipes_struct *p, struct samr_QueryUserInfo2 *r);
+NTSTATUS _samr_QueryDisplayInfo2(pipes_struct *p, struct samr_QueryDisplayInfo2 *r);
+NTSTATUS _samr_GetDisplayEnumerationIndex2(pipes_struct *p, struct samr_GetDisplayEnumerationIndex2 *r);
+NTSTATUS _samr_CreateUser2(pipes_struct *p, struct samr_CreateUser2 *r);
+NTSTATUS _samr_QueryDisplayInfo3(pipes_struct *p, struct samr_QueryDisplayInfo3 *r);
+NTSTATUS _samr_AddMultipleMembersToAlias(pipes_struct *p, struct samr_AddMultipleMembersToAlias *r);
+NTSTATUS _samr_RemoveMultipleMembersFromAlias(pipes_struct *p, struct samr_RemoveMultipleMembersFromAlias *r);
+NTSTATUS _samr_OemChangePasswordUser2(pipes_struct *p, struct samr_OemChangePasswordUser2 *r);
+NTSTATUS _samr_ChangePasswordUser2(pipes_struct *p, struct samr_ChangePasswordUser2 *r);
+NTSTATUS _samr_GetDomPwInfo(pipes_struct *p, struct samr_GetDomPwInfo *r);
+NTSTATUS _samr_Connect2(pipes_struct *p, struct samr_Connect2 *r);
+NTSTATUS _samr_SetUserInfo2(pipes_struct *p, struct samr_SetUserInfo2 *r);
+NTSTATUS _samr_SetBootKeyInformation(pipes_struct *p, struct samr_SetBootKeyInformation *r);
+NTSTATUS _samr_GetBootKeyInformation(pipes_struct *p, struct samr_GetBootKeyInformation *r);
+NTSTATUS _samr_Connect3(pipes_struct *p, struct samr_Connect3 *r);
+NTSTATUS _samr_Connect4(pipes_struct *p, struct samr_Connect4 *r);
+NTSTATUS _samr_ChangePasswordUser3(pipes_struct *p, struct samr_ChangePasswordUser3 *r);
+NTSTATUS _samr_Connect5(pipes_struct *p, struct samr_Connect5 *r);
+NTSTATUS _samr_RidToSid(pipes_struct *p, struct samr_RidToSid *r);
+NTSTATUS _samr_SetDsrmPassword(pipes_struct *p, struct samr_SetDsrmPassword *r);
+NTSTATUS _samr_ValidatePassword(pipes_struct *p, struct samr_ValidatePassword *r);
NTSTATUS rpc_samr_init(void);
#endif /* __SRV_SAMR__ */
diff --git a/librpc/gen_ndr/srv_srvsvc.c b/librpc/gen_ndr/srv_srvsvc.c
index 501754d1d6..1286aad739 100644
--- a/librpc/gen_ndr/srv_srvsvc.c
+++ b/librpc/gen_ndr/srv_srvsvc.c
@@ -4190,6 +4190,498 @@ void srvsvc_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_srvsvc_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_srvsvc_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_SRVSVC_NETCHARDEVENUM: {
+ struct srvsvc_NetCharDevEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info_ctr = r->in.info_ctr;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetCharDevEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCHARDEVGETINFO: {
+ struct srvsvc_NetCharDevGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union srvsvc_NetCharDevInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetCharDevGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCHARDEVCONTROL: {
+ struct srvsvc_NetCharDevControl *r = _r;
+ r->out.result = _srvsvc_NetCharDevControl(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCHARDEVQENUM: {
+ struct srvsvc_NetCharDevQEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info_ctr = r->in.info_ctr;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetCharDevQEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCHARDEVQGETINFO: {
+ struct srvsvc_NetCharDevQGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union srvsvc_NetCharDevQInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetCharDevQGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCHARDEVQSETINFO: {
+ struct srvsvc_NetCharDevQSetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_error = r->in.parm_error;
+ r->out.result = _srvsvc_NetCharDevQSetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCHARDEVQPURGE: {
+ struct srvsvc_NetCharDevQPurge *r = _r;
+ r->out.result = _srvsvc_NetCharDevQPurge(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCHARDEVQPURGESELF: {
+ struct srvsvc_NetCharDevQPurgeSelf *r = _r;
+ r->out.result = _srvsvc_NetCharDevQPurgeSelf(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETCONNENUM: {
+ struct srvsvc_NetConnEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info_ctr = r->in.info_ctr;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetConnEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETFILEENUM: {
+ struct srvsvc_NetFileEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info_ctr = r->in.info_ctr;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetFileEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETFILEGETINFO: {
+ struct srvsvc_NetFileGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union srvsvc_NetFileInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetFileGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETFILECLOSE: {
+ struct srvsvc_NetFileClose *r = _r;
+ r->out.result = _srvsvc_NetFileClose(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSESSENUM: {
+ struct srvsvc_NetSessEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info_ctr = r->in.info_ctr;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetSessEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSESSDEL: {
+ struct srvsvc_NetSessDel *r = _r;
+ r->out.result = _srvsvc_NetSessDel(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREADD: {
+ struct srvsvc_NetShareAdd *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_error = r->in.parm_error;
+ r->out.result = _srvsvc_NetShareAdd(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREENUMALL: {
+ struct srvsvc_NetShareEnumAll *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info_ctr = r->in.info_ctr;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetShareEnumAll(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREGETINFO: {
+ struct srvsvc_NetShareGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union srvsvc_NetShareInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetShareGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHARESETINFO: {
+ struct srvsvc_NetShareSetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_error = r->in.parm_error;
+ r->out.result = _srvsvc_NetShareSetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREDEL: {
+ struct srvsvc_NetShareDel *r = _r;
+ r->out.result = _srvsvc_NetShareDel(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREDELSTICKY: {
+ struct srvsvc_NetShareDelSticky *r = _r;
+ r->out.result = _srvsvc_NetShareDelSticky(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHARECHECK: {
+ struct srvsvc_NetShareCheck *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.type = talloc_zero(mem_ctx, enum srvsvc_ShareType);
+ if (r->out.type == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetShareCheck(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSRVGETINFO: {
+ struct srvsvc_NetSrvGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union srvsvc_NetSrvInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetSrvGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSRVSETINFO: {
+ struct srvsvc_NetSrvSetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_error = r->in.parm_error;
+ r->out.result = _srvsvc_NetSrvSetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETDISKENUM: {
+ struct srvsvc_NetDiskEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = r->in.info;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetDiskEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSERVERSTATISTICSGET: {
+ struct srvsvc_NetServerStatisticsGet *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.stats = talloc_zero(mem_ctx, struct srvsvc_Statistics *);
+ if (r->out.stats == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetServerStatisticsGet(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETTRANSPORTADD: {
+ struct srvsvc_NetTransportAdd *r = _r;
+ r->out.result = _srvsvc_NetTransportAdd(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETTRANSPORTENUM: {
+ struct srvsvc_NetTransportEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.transports = r->in.transports;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetTransportEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETTRANSPORTDEL: {
+ struct srvsvc_NetTransportDel *r = _r;
+ r->out.result = _srvsvc_NetTransportDel(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETREMOTETOD: {
+ struct srvsvc_NetRemoteTOD *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct srvsvc_NetRemoteTODInfo *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetRemoteTOD(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSETSERVICEBITS: {
+ struct srvsvc_NetSetServiceBits *r = _r;
+ r->out.result = _srvsvc_NetSetServiceBits(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETPATHTYPE: {
+ struct srvsvc_NetPathType *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.pathtype = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.pathtype == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetPathType(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETPATHCANONICALIZE: {
+ struct srvsvc_NetPathCanonicalize *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.pathtype = r->in.pathtype;
+ r->out.can_path = talloc_zero_array(mem_ctx, uint8_t, r->in.maxbuf);
+ if (r->out.can_path == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetPathCanonicalize(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETPATHCOMPARE: {
+ struct srvsvc_NetPathCompare *r = _r;
+ r->out.result = _srvsvc_NetPathCompare(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETNAMEVALIDATE: {
+ struct srvsvc_NetNameValidate *r = _r;
+ r->out.result = _srvsvc_NetNameValidate(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRPRNAMECANONICALIZE: {
+ struct srvsvc_NETRPRNAMECANONICALIZE *r = _r;
+ r->out.result = _srvsvc_NETRPRNAMECANONICALIZE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETPRNAMECOMPARE: {
+ struct srvsvc_NetPRNameCompare *r = _r;
+ r->out.result = _srvsvc_NetPRNameCompare(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREENUM: {
+ struct srvsvc_NetShareEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info_ctr = r->in.info_ctr;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.totalentries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.totalentries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetShareEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREDELSTART: {
+ struct srvsvc_NetShareDelStart *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.hnd = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.hnd == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetShareDelStart(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSHAREDELCOMMIT: {
+ struct srvsvc_NetShareDelCommit *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.hnd = r->in.hnd;
+ r->out.result = _srvsvc_NetShareDelCommit(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETGETFILESECURITY: {
+ struct srvsvc_NetGetFileSecurity *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sd_buf = talloc_zero(mem_ctx, struct sec_desc_buf *);
+ if (r->out.sd_buf == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _srvsvc_NetGetFileSecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSETFILESECURITY: {
+ struct srvsvc_NetSetFileSecurity *r = _r;
+ r->out.result = _srvsvc_NetSetFileSecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSERVERTRANSPORTADDEX: {
+ struct srvsvc_NetServerTransportAddEx *r = _r;
+ r->out.result = _srvsvc_NetServerTransportAddEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETSERVERSETSERVICEBITSEX: {
+ struct srvsvc_NetServerSetServiceBitsEx *r = _r;
+ r->out.result = _srvsvc_NetServerSetServiceBitsEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSGETVERSION: {
+ struct srvsvc_NETRDFSGETVERSION *r = _r;
+ r->out.result = _srvsvc_NETRDFSGETVERSION(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSCREATELOCALPARTITION: {
+ struct srvsvc_NETRDFSCREATELOCALPARTITION *r = _r;
+ r->out.result = _srvsvc_NETRDFSCREATELOCALPARTITION(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSDELETELOCALPARTITION: {
+ struct srvsvc_NETRDFSDELETELOCALPARTITION *r = _r;
+ r->out.result = _srvsvc_NETRDFSDELETELOCALPARTITION(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSSETLOCALVOLUMESTATE: {
+ struct srvsvc_NETRDFSSETLOCALVOLUMESTATE *r = _r;
+ r->out.result = _srvsvc_NETRDFSSETLOCALVOLUMESTATE(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSSETSERVERINFO: {
+ struct srvsvc_NETRDFSSETSERVERINFO *r = _r;
+ r->out.result = _srvsvc_NETRDFSSETSERVERINFO(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSCREATEEXITPOINT: {
+ struct srvsvc_NETRDFSCREATEEXITPOINT *r = _r;
+ r->out.result = _srvsvc_NETRDFSCREATEEXITPOINT(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSDELETEEXITPOINT: {
+ struct srvsvc_NETRDFSDELETEEXITPOINT *r = _r;
+ r->out.result = _srvsvc_NETRDFSDELETEEXITPOINT(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSMODIFYPREFIX: {
+ struct srvsvc_NETRDFSMODIFYPREFIX *r = _r;
+ r->out.result = _srvsvc_NETRDFSMODIFYPREFIX(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSFIXLOCALVOLUME: {
+ struct srvsvc_NETRDFSFIXLOCALVOLUME *r = _r;
+ r->out.result = _srvsvc_NETRDFSFIXLOCALVOLUME(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRDFSMANAGERREPORTSITEINFO: {
+ struct srvsvc_NETRDFSMANAGERREPORTSITEINFO *r = _r;
+ r->out.result = _srvsvc_NETRDFSMANAGERREPORTSITEINFO(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SRVSVC_NETRSERVERTRANSPORTDELEX: {
+ struct srvsvc_NETRSERVERTRANSPORTDELEX *r = _r;
+ r->out.result = _srvsvc_NETRSERVERTRANSPORTDELEX(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_srvsvc_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "srvsvc", "srvsvc", &ndr_table_srvsvc, api_srvsvc_cmds, sizeof(api_srvsvc_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_srvsvc.h b/librpc/gen_ndr/srv_srvsvc.h
index c71e715a22..b96466c700 100644
--- a/librpc/gen_ndr/srv_srvsvc.h
+++ b/librpc/gen_ndr/srv_srvsvc.h
@@ -56,5 +56,60 @@ WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p, struct srvsvc_NETRDFSFIXLO
WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p, struct srvsvc_NETRDFSMANAGERREPORTSITEINFO *r);
WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p, struct srvsvc_NETRSERVERTRANSPORTDELEX *r);
void srvsvc_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_srvsvc_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, struct srvsvc_NetCharDevEnum *r);
+WERROR _srvsvc_NetCharDevGetInfo(pipes_struct *p, struct srvsvc_NetCharDevGetInfo *r);
+WERROR _srvsvc_NetCharDevControl(pipes_struct *p, struct srvsvc_NetCharDevControl *r);
+WERROR _srvsvc_NetCharDevQEnum(pipes_struct *p, struct srvsvc_NetCharDevQEnum *r);
+WERROR _srvsvc_NetCharDevQGetInfo(pipes_struct *p, struct srvsvc_NetCharDevQGetInfo *r);
+WERROR _srvsvc_NetCharDevQSetInfo(pipes_struct *p, struct srvsvc_NetCharDevQSetInfo *r);
+WERROR _srvsvc_NetCharDevQPurge(pipes_struct *p, struct srvsvc_NetCharDevQPurge *r);
+WERROR _srvsvc_NetCharDevQPurgeSelf(pipes_struct *p, struct srvsvc_NetCharDevQPurgeSelf *r);
+WERROR _srvsvc_NetConnEnum(pipes_struct *p, struct srvsvc_NetConnEnum *r);
+WERROR _srvsvc_NetFileEnum(pipes_struct *p, struct srvsvc_NetFileEnum *r);
+WERROR _srvsvc_NetFileGetInfo(pipes_struct *p, struct srvsvc_NetFileGetInfo *r);
+WERROR _srvsvc_NetFileClose(pipes_struct *p, struct srvsvc_NetFileClose *r);
+WERROR _srvsvc_NetSessEnum(pipes_struct *p, struct srvsvc_NetSessEnum *r);
+WERROR _srvsvc_NetSessDel(pipes_struct *p, struct srvsvc_NetSessDel *r);
+WERROR _srvsvc_NetShareAdd(pipes_struct *p, struct srvsvc_NetShareAdd *r);
+WERROR _srvsvc_NetShareEnumAll(pipes_struct *p, struct srvsvc_NetShareEnumAll *r);
+WERROR _srvsvc_NetShareGetInfo(pipes_struct *p, struct srvsvc_NetShareGetInfo *r);
+WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, struct srvsvc_NetShareSetInfo *r);
+WERROR _srvsvc_NetShareDel(pipes_struct *p, struct srvsvc_NetShareDel *r);
+WERROR _srvsvc_NetShareDelSticky(pipes_struct *p, struct srvsvc_NetShareDelSticky *r);
+WERROR _srvsvc_NetShareCheck(pipes_struct *p, struct srvsvc_NetShareCheck *r);
+WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, struct srvsvc_NetSrvGetInfo *r);
+WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p, struct srvsvc_NetSrvSetInfo *r);
+WERROR _srvsvc_NetDiskEnum(pipes_struct *p, struct srvsvc_NetDiskEnum *r);
+WERROR _srvsvc_NetServerStatisticsGet(pipes_struct *p, struct srvsvc_NetServerStatisticsGet *r);
+WERROR _srvsvc_NetTransportAdd(pipes_struct *p, struct srvsvc_NetTransportAdd *r);
+WERROR _srvsvc_NetTransportEnum(pipes_struct *p, struct srvsvc_NetTransportEnum *r);
+WERROR _srvsvc_NetTransportDel(pipes_struct *p, struct srvsvc_NetTransportDel *r);
+WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, struct srvsvc_NetRemoteTOD *r);
+WERROR _srvsvc_NetSetServiceBits(pipes_struct *p, struct srvsvc_NetSetServiceBits *r);
+WERROR _srvsvc_NetPathType(pipes_struct *p, struct srvsvc_NetPathType *r);
+WERROR _srvsvc_NetPathCanonicalize(pipes_struct *p, struct srvsvc_NetPathCanonicalize *r);
+WERROR _srvsvc_NetPathCompare(pipes_struct *p, struct srvsvc_NetPathCompare *r);
+WERROR _srvsvc_NetNameValidate(pipes_struct *p, struct srvsvc_NetNameValidate *r);
+WERROR _srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p, struct srvsvc_NETRPRNAMECANONICALIZE *r);
+WERROR _srvsvc_NetPRNameCompare(pipes_struct *p, struct srvsvc_NetPRNameCompare *r);
+WERROR _srvsvc_NetShareEnum(pipes_struct *p, struct srvsvc_NetShareEnum *r);
+WERROR _srvsvc_NetShareDelStart(pipes_struct *p, struct srvsvc_NetShareDelStart *r);
+WERROR _srvsvc_NetShareDelCommit(pipes_struct *p, struct srvsvc_NetShareDelCommit *r);
+WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, struct srvsvc_NetGetFileSecurity *r);
+WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, struct srvsvc_NetSetFileSecurity *r);
+WERROR _srvsvc_NetServerTransportAddEx(pipes_struct *p, struct srvsvc_NetServerTransportAddEx *r);
+WERROR _srvsvc_NetServerSetServiceBitsEx(pipes_struct *p, struct srvsvc_NetServerSetServiceBitsEx *r);
+WERROR _srvsvc_NETRDFSGETVERSION(pipes_struct *p, struct srvsvc_NETRDFSGETVERSION *r);
+WERROR _srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSCREATELOCALPARTITION *r);
+WERROR _srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSDELETELOCALPARTITION *r);
+WERROR _srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p, struct srvsvc_NETRDFSSETLOCALVOLUMESTATE *r);
+WERROR _srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p, struct srvsvc_NETRDFSSETSERVERINFO *r);
+WERROR _srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSCREATEEXITPOINT *r);
+WERROR _srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSDELETEEXITPOINT *r);
+WERROR _srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p, struct srvsvc_NETRDFSMODIFYPREFIX *r);
+WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p, struct srvsvc_NETRDFSFIXLOCALVOLUME *r);
+WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p, struct srvsvc_NETRDFSMANAGERREPORTSITEINFO *r);
+WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p, struct srvsvc_NETRSERVERTRANSPORTDELEX *r);
NTSTATUS rpc_srvsvc_init(void);
#endif /* __SRV_SRVSVC__ */
diff --git a/librpc/gen_ndr/srv_svcctl.c b/librpc/gen_ndr/srv_svcctl.c
index 645864bfed..ab5ad973ad 100644
--- a/librpc/gen_ndr/srv_svcctl.c
+++ b/librpc/gen_ndr/srv_svcctl.c
@@ -3609,6 +3609,569 @@ void svcctl_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_svcctl_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_SVCCTL_CLOSESERVICEHANDLE: {
+ struct svcctl_CloseServiceHandle *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = r->in.handle;
+ r->out.result = _svcctl_CloseServiceHandle(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_CONTROLSERVICE: {
+ struct svcctl_ControlService *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.service_status = talloc_zero(mem_ctx, struct SERVICE_STATUS);
+ if (r->out.service_status == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_ControlService(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_DELETESERVICE: {
+ struct svcctl_DeleteService *r = _r;
+ r->out.result = _svcctl_DeleteService(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_LOCKSERVICEDATABASE: {
+ struct svcctl_LockServiceDatabase *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.lock = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.lock == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_LockServiceDatabase(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICEOBJECTSECURITY: {
+ struct svcctl_QueryServiceObjectSecurity *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buffer_size);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceObjectSecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_SETSERVICEOBJECTSECURITY: {
+ struct svcctl_SetServiceObjectSecurity *r = _r;
+ r->out.result = _svcctl_SetServiceObjectSecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICESTATUS: {
+ struct svcctl_QueryServiceStatus *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.service_status = talloc_zero(mem_ctx, struct SERVICE_STATUS);
+ if (r->out.service_status == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceStatus(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_SETSERVICESTATUS: {
+ struct svcctl_SetServiceStatus *r = _r;
+ r->out.result = _svcctl_SetServiceStatus(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_UNLOCKSERVICEDATABASE: {
+ struct svcctl_UnlockServiceDatabase *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.lock = r->in.lock;
+ r->out.result = _svcctl_UnlockServiceDatabase(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_NOTIFYBOOTCONFIGSTATUS: {
+ struct svcctl_NotifyBootConfigStatus *r = _r;
+ r->out.result = _svcctl_NotifyBootConfigStatus(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_SCSETSERVICEBITSW: {
+ struct svcctl_SCSetServiceBitsW *r = _r;
+ r->out.result = _svcctl_SCSetServiceBitsW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_CHANGESERVICECONFIGW: {
+ struct svcctl_ChangeServiceConfigW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.tag_id = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.tag_id == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_ChangeServiceConfigW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_CREATESERVICEW: {
+ struct svcctl_CreateServiceW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.TagId = r->in.TagId;
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_CreateServiceW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_ENUMDEPENDENTSERVICESW: {
+ struct svcctl_EnumDependentServicesW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.service_status = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.service_status == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.services_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.services_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_EnumDependentServicesW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_ENUMSERVICESSTATUSW: {
+ struct svcctl_EnumServicesStatusW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.service = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.service == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.services_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.services_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_EnumServicesStatusW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_OPENSCMANAGERW: {
+ struct svcctl_OpenSCManagerW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_OpenSCManagerW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_OPENSERVICEW: {
+ struct svcctl_OpenServiceW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_OpenServiceW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICECONFIGW: {
+ struct svcctl_QueryServiceConfigW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.query = talloc_zero(mem_ctx, struct QUERY_SERVICE_CONFIG);
+ if (r->out.query == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceConfigW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICELOCKSTATUSW: {
+ struct svcctl_QueryServiceLockStatusW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.lock_status = talloc_zero(mem_ctx, struct SERVICE_LOCK_STATUS);
+ if (r->out.lock_status == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.required_buf_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.required_buf_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceLockStatusW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_STARTSERVICEW: {
+ struct svcctl_StartServiceW *r = _r;
+ r->out.result = _svcctl_StartServiceW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_GETSERVICEDISPLAYNAMEW: {
+ struct svcctl_GetServiceDisplayNameW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.display_name_length = r->in.display_name_length;
+ r->out.display_name = talloc_zero(mem_ctx, const char *);
+ if (r->out.display_name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_GetServiceDisplayNameW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_GETSERVICEKEYNAMEW: {
+ struct svcctl_GetServiceKeyNameW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.display_name_length = r->in.display_name_length;
+ r->out.key_name = talloc_zero(mem_ctx, const char *);
+ if (r->out.key_name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_GetServiceKeyNameW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_SCSETSERVICEBITSA: {
+ struct svcctl_SCSetServiceBitsA *r = _r;
+ r->out.result = _svcctl_SCSetServiceBitsA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_CHANGESERVICECONFIGA: {
+ struct svcctl_ChangeServiceConfigA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.tag_id = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.tag_id == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_ChangeServiceConfigA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_CREATESERVICEA: {
+ struct svcctl_CreateServiceA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.TagId = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.TagId == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_CreateServiceA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_ENUMDEPENDENTSERVICESA: {
+ struct svcctl_EnumDependentServicesA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.service_status = talloc_zero(mem_ctx, struct ENUM_SERVICE_STATUSA);
+ if (r->out.service_status == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.services_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.services_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_EnumDependentServicesA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_ENUMSERVICESSTATUSA: {
+ struct svcctl_EnumServicesStatusA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.service = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.service == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.services_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.services_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_EnumServicesStatusA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_OPENSCMANAGERA: {
+ struct svcctl_OpenSCManagerA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_OpenSCManagerA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_OPENSERVICEA: {
+ struct svcctl_OpenServiceA *r = _r;
+ r->out.result = _svcctl_OpenServiceA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICECONFIGA: {
+ struct svcctl_QueryServiceConfigA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.query = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.query == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceConfigA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICELOCKSTATUSA: {
+ struct svcctl_QueryServiceLockStatusA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.lock_status = talloc_zero(mem_ctx, struct SERVICE_LOCK_STATUS);
+ if (r->out.lock_status == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.required_buf_size = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.required_buf_size == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceLockStatusA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_STARTSERVICEA: {
+ struct svcctl_StartServiceA *r = _r;
+ r->out.result = _svcctl_StartServiceA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_GETSERVICEDISPLAYNAMEA: {
+ struct svcctl_GetServiceDisplayNameA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.display_name_length = r->in.display_name_length;
+ r->out.display_name = talloc_zero(mem_ctx, const char *);
+ if (r->out.display_name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_GetServiceDisplayNameA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_GETSERVICEKEYNAMEA: {
+ struct svcctl_GetServiceKeyNameA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.display_name_length = r->in.display_name_length;
+ r->out.key_name = talloc_zero(mem_ctx, const char *);
+ if (r->out.key_name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_GetServiceKeyNameA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_GETCURRENTGROUPESTATEW: {
+ struct svcctl_GetCurrentGroupeStateW *r = _r;
+ r->out.result = _svcctl_GetCurrentGroupeStateW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_ENUMSERVICEGROUPW: {
+ struct svcctl_EnumServiceGroupW *r = _r;
+ r->out.result = _svcctl_EnumServiceGroupW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_CHANGESERVICECONFIG2A: {
+ struct svcctl_ChangeServiceConfig2A *r = _r;
+ r->out.result = _svcctl_ChangeServiceConfig2A(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_CHANGESERVICECONFIG2W: {
+ struct svcctl_ChangeServiceConfig2W *r = _r;
+ r->out.result = _svcctl_ChangeServiceConfig2W(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICECONFIG2A: {
+ struct svcctl_QueryServiceConfig2A *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceConfig2A(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICECONFIG2W: {
+ struct svcctl_QueryServiceConfig2W *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceConfig2W(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_QUERYSERVICESTATUSEX: {
+ struct svcctl_QueryServiceStatusEx *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.buffer == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _svcctl_QueryServiceStatusEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ENUMSERVICESSTATUSEXA: {
+ struct EnumServicesStatusExA *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.services = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.services == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.service_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.service_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.group_name = talloc_zero(mem_ctx, const char *);
+ if (r->out.group_name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _EnumServicesStatusExA(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_ENUMSERVICESSTATUSEXW: {
+ struct EnumServicesStatusExW *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.services = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ if (r->out.services == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.bytes_needed == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.service_returned = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.service_returned == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _EnumServicesStatusExW(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_SVCCTL_SCSENDTSMESSAGE: {
+ struct svcctl_SCSendTSMessage *r = _r;
+ r->out.result = _svcctl_SCSendTSMessage(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_svcctl_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "svcctl", "svcctl", &ndr_table_svcctl, api_svcctl_cmds, sizeof(api_svcctl_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_svcctl.h b/librpc/gen_ndr/srv_svcctl.h
index 80a9ccb01f..d7bd2fb6cf 100644
--- a/librpc/gen_ndr/srv_svcctl.h
+++ b/librpc/gen_ndr/srv_svcctl.h
@@ -46,5 +46,50 @@ WERROR _EnumServicesStatusExA(pipes_struct *p, struct EnumServicesStatusExA *r);
WERROR _EnumServicesStatusExW(pipes_struct *p, struct EnumServicesStatusExW *r);
WERROR _svcctl_SCSendTSMessage(pipes_struct *p, struct svcctl_SCSendTSMessage *r);
void svcctl_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _svcctl_CloseServiceHandle(pipes_struct *p, struct svcctl_CloseServiceHandle *r);
+WERROR _svcctl_ControlService(pipes_struct *p, struct svcctl_ControlService *r);
+WERROR _svcctl_DeleteService(pipes_struct *p, struct svcctl_DeleteService *r);
+WERROR _svcctl_LockServiceDatabase(pipes_struct *p, struct svcctl_LockServiceDatabase *r);
+WERROR _svcctl_QueryServiceObjectSecurity(pipes_struct *p, struct svcctl_QueryServiceObjectSecurity *r);
+WERROR _svcctl_SetServiceObjectSecurity(pipes_struct *p, struct svcctl_SetServiceObjectSecurity *r);
+WERROR _svcctl_QueryServiceStatus(pipes_struct *p, struct svcctl_QueryServiceStatus *r);
+WERROR _svcctl_SetServiceStatus(pipes_struct *p, struct svcctl_SetServiceStatus *r);
+WERROR _svcctl_UnlockServiceDatabase(pipes_struct *p, struct svcctl_UnlockServiceDatabase *r);
+WERROR _svcctl_NotifyBootConfigStatus(pipes_struct *p, struct svcctl_NotifyBootConfigStatus *r);
+WERROR _svcctl_SCSetServiceBitsW(pipes_struct *p, struct svcctl_SCSetServiceBitsW *r);
+WERROR _svcctl_ChangeServiceConfigW(pipes_struct *p, struct svcctl_ChangeServiceConfigW *r);
+WERROR _svcctl_CreateServiceW(pipes_struct *p, struct svcctl_CreateServiceW *r);
+WERROR _svcctl_EnumDependentServicesW(pipes_struct *p, struct svcctl_EnumDependentServicesW *r);
+WERROR _svcctl_EnumServicesStatusW(pipes_struct *p, struct svcctl_EnumServicesStatusW *r);
+WERROR _svcctl_OpenSCManagerW(pipes_struct *p, struct svcctl_OpenSCManagerW *r);
+WERROR _svcctl_OpenServiceW(pipes_struct *p, struct svcctl_OpenServiceW *r);
+WERROR _svcctl_QueryServiceConfigW(pipes_struct *p, struct svcctl_QueryServiceConfigW *r);
+WERROR _svcctl_QueryServiceLockStatusW(pipes_struct *p, struct svcctl_QueryServiceLockStatusW *r);
+WERROR _svcctl_StartServiceW(pipes_struct *p, struct svcctl_StartServiceW *r);
+WERROR _svcctl_GetServiceDisplayNameW(pipes_struct *p, struct svcctl_GetServiceDisplayNameW *r);
+WERROR _svcctl_GetServiceKeyNameW(pipes_struct *p, struct svcctl_GetServiceKeyNameW *r);
+WERROR _svcctl_SCSetServiceBitsA(pipes_struct *p, struct svcctl_SCSetServiceBitsA *r);
+WERROR _svcctl_ChangeServiceConfigA(pipes_struct *p, struct svcctl_ChangeServiceConfigA *r);
+WERROR _svcctl_CreateServiceA(pipes_struct *p, struct svcctl_CreateServiceA *r);
+WERROR _svcctl_EnumDependentServicesA(pipes_struct *p, struct svcctl_EnumDependentServicesA *r);
+WERROR _svcctl_EnumServicesStatusA(pipes_struct *p, struct svcctl_EnumServicesStatusA *r);
+WERROR _svcctl_OpenSCManagerA(pipes_struct *p, struct svcctl_OpenSCManagerA *r);
+WERROR _svcctl_OpenServiceA(pipes_struct *p, struct svcctl_OpenServiceA *r);
+WERROR _svcctl_QueryServiceConfigA(pipes_struct *p, struct svcctl_QueryServiceConfigA *r);
+WERROR _svcctl_QueryServiceLockStatusA(pipes_struct *p, struct svcctl_QueryServiceLockStatusA *r);
+WERROR _svcctl_StartServiceA(pipes_struct *p, struct svcctl_StartServiceA *r);
+WERROR _svcctl_GetServiceDisplayNameA(pipes_struct *p, struct svcctl_GetServiceDisplayNameA *r);
+WERROR _svcctl_GetServiceKeyNameA(pipes_struct *p, struct svcctl_GetServiceKeyNameA *r);
+WERROR _svcctl_GetCurrentGroupeStateW(pipes_struct *p, struct svcctl_GetCurrentGroupeStateW *r);
+WERROR _svcctl_EnumServiceGroupW(pipes_struct *p, struct svcctl_EnumServiceGroupW *r);
+WERROR _svcctl_ChangeServiceConfig2A(pipes_struct *p, struct svcctl_ChangeServiceConfig2A *r);
+WERROR _svcctl_ChangeServiceConfig2W(pipes_struct *p, struct svcctl_ChangeServiceConfig2W *r);
+WERROR _svcctl_QueryServiceConfig2A(pipes_struct *p, struct svcctl_QueryServiceConfig2A *r);
+WERROR _svcctl_QueryServiceConfig2W(pipes_struct *p, struct svcctl_QueryServiceConfig2W *r);
+WERROR _svcctl_QueryServiceStatusEx(pipes_struct *p, struct svcctl_QueryServiceStatusEx *r);
+WERROR _EnumServicesStatusExA(pipes_struct *p, struct EnumServicesStatusExA *r);
+WERROR _EnumServicesStatusExW(pipes_struct *p, struct EnumServicesStatusExW *r);
+WERROR _svcctl_SCSendTSMessage(pipes_struct *p, struct svcctl_SCSendTSMessage *r);
NTSTATUS rpc_svcctl_init(void);
#endif /* __SRV_SVCCTL__ */
diff --git a/librpc/gen_ndr/srv_winreg.c b/librpc/gen_ndr/srv_winreg.c
index ebceee3945..d18614f90b 100644
--- a/librpc/gen_ndr/srv_winreg.c
+++ b/librpc/gen_ndr/srv_winreg.c
@@ -2766,6 +2766,367 @@ void winreg_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_winreg_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_winreg_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_WINREG_OPENHKCR: {
+ struct winreg_OpenHKCR *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKCR(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKCU: {
+ struct winreg_OpenHKCU *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKCU(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKLM: {
+ struct winreg_OpenHKLM *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKLM(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKPD: {
+ struct winreg_OpenHKPD *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKPD(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKU: {
+ struct winreg_OpenHKU *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKU(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_CLOSEKEY: {
+ struct winreg_CloseKey *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = r->in.handle;
+ r->out.result = _winreg_CloseKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_CREATEKEY: {
+ struct winreg_CreateKey *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.action_taken = r->in.action_taken;
+ r->out.new_handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.new_handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_CreateKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_DELETEKEY: {
+ struct winreg_DeleteKey *r = _r;
+ r->out.result = _winreg_DeleteKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_DELETEVALUE: {
+ struct winreg_DeleteValue *r = _r;
+ r->out.result = _winreg_DeleteValue(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_ENUMKEY: {
+ struct winreg_EnumKey *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.name = r->in.name;
+ r->out.keyclass = r->in.keyclass;
+ r->out.last_changed_time = r->in.last_changed_time;
+ r->out.result = _winreg_EnumKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_ENUMVALUE: {
+ struct winreg_EnumValue *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.name = r->in.name;
+ r->out.type = r->in.type;
+ r->out.value = r->in.value;
+ r->out.size = r->in.size;
+ r->out.length = r->in.length;
+ r->out.result = _winreg_EnumValue(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_FLUSHKEY: {
+ struct winreg_FlushKey *r = _r;
+ r->out.result = _winreg_FlushKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_GETKEYSECURITY: {
+ struct winreg_GetKeySecurity *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.sd = r->in.sd;
+ r->out.result = _winreg_GetKeySecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_LOADKEY: {
+ struct winreg_LoadKey *r = _r;
+ r->out.result = _winreg_LoadKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_NOTIFYCHANGEKEYVALUE: {
+ struct winreg_NotifyChangeKeyValue *r = _r;
+ r->out.result = _winreg_NotifyChangeKeyValue(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENKEY: {
+ struct winreg_OpenKey *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_QUERYINFOKEY: {
+ struct winreg_QueryInfoKey *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.classname = r->in.classname;
+ r->out.num_subkeys = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_subkeys == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.max_subkeylen = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.max_subkeylen == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.max_classlen = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.max_classlen == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.num_values = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.num_values == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.max_valnamelen = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.max_valnamelen == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.max_valbufsize = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.max_valbufsize == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.secdescsize = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.secdescsize == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.last_changed_time = talloc_zero(mem_ctx, NTTIME);
+ if (r->out.last_changed_time == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_QueryInfoKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_QUERYVALUE: {
+ struct winreg_QueryValue *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.type = r->in.type;
+ r->out.data = r->in.data;
+ r->out.data_size = r->in.data_size;
+ r->out.data_length = r->in.data_length;
+ r->out.result = _winreg_QueryValue(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_REPLACEKEY: {
+ struct winreg_ReplaceKey *r = _r;
+ r->out.result = _winreg_ReplaceKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_RESTOREKEY: {
+ struct winreg_RestoreKey *r = _r;
+ r->out.result = _winreg_RestoreKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_SAVEKEY: {
+ struct winreg_SaveKey *r = _r;
+ r->out.result = _winreg_SaveKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_SETKEYSECURITY: {
+ struct winreg_SetKeySecurity *r = _r;
+ r->out.result = _winreg_SetKeySecurity(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_SETVALUE: {
+ struct winreg_SetValue *r = _r;
+ r->out.result = _winreg_SetValue(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_UNLOADKEY: {
+ struct winreg_UnLoadKey *r = _r;
+ r->out.result = _winreg_UnLoadKey(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_INITIATESYSTEMSHUTDOWN: {
+ struct winreg_InitiateSystemShutdown *r = _r;
+ r->out.result = _winreg_InitiateSystemShutdown(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_ABORTSYSTEMSHUTDOWN: {
+ struct winreg_AbortSystemShutdown *r = _r;
+ r->out.result = _winreg_AbortSystemShutdown(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_GETVERSION: {
+ struct winreg_GetVersion *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.version = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.version == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_GetVersion(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKCC: {
+ struct winreg_OpenHKCC *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKCC(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKDD: {
+ struct winreg_OpenHKDD *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKDD(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_QUERYMULTIPLEVALUES: {
+ struct winreg_QueryMultipleValues *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.values = r->in.values;
+ r->out.buffer = r->in.buffer;
+ r->out.buffer_size = r->in.buffer_size;
+ r->out.result = _winreg_QueryMultipleValues(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_INITIATESYSTEMSHUTDOWNEX: {
+ struct winreg_InitiateSystemShutdownEx *r = _r;
+ r->out.result = _winreg_InitiateSystemShutdownEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_SAVEKEYEX: {
+ struct winreg_SaveKeyEx *r = _r;
+ r->out.result = _winreg_SaveKeyEx(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKPT: {
+ struct winreg_OpenHKPT *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKPT(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_OPENHKPN: {
+ struct winreg_OpenHKPN *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.handle = talloc_zero(mem_ctx, struct policy_handle);
+ if (r->out.handle == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _winreg_OpenHKPN(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WINREG_QUERYMULTIPLEVALUES2: {
+ struct winreg_QueryMultipleValues2 *r = _r;
+ r->out.result = _winreg_QueryMultipleValues2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_winreg_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "winreg", "winreg", &ndr_table_winreg, api_winreg_cmds, sizeof(api_winreg_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_winreg.h b/librpc/gen_ndr/srv_winreg.h
index cedbef3e88..f259150e5b 100644
--- a/librpc/gen_ndr/srv_winreg.h
+++ b/librpc/gen_ndr/srv_winreg.h
@@ -37,5 +37,41 @@ WERROR _winreg_OpenHKPT(pipes_struct *p, struct winreg_OpenHKPT *r);
WERROR _winreg_OpenHKPN(pipes_struct *p, struct winreg_OpenHKPN *r);
WERROR _winreg_QueryMultipleValues2(pipes_struct *p, struct winreg_QueryMultipleValues2 *r);
void winreg_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_winreg_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _winreg_OpenHKCR(pipes_struct *p, struct winreg_OpenHKCR *r);
+WERROR _winreg_OpenHKCU(pipes_struct *p, struct winreg_OpenHKCU *r);
+WERROR _winreg_OpenHKLM(pipes_struct *p, struct winreg_OpenHKLM *r);
+WERROR _winreg_OpenHKPD(pipes_struct *p, struct winreg_OpenHKPD *r);
+WERROR _winreg_OpenHKU(pipes_struct *p, struct winreg_OpenHKU *r);
+WERROR _winreg_CloseKey(pipes_struct *p, struct winreg_CloseKey *r);
+WERROR _winreg_CreateKey(pipes_struct *p, struct winreg_CreateKey *r);
+WERROR _winreg_DeleteKey(pipes_struct *p, struct winreg_DeleteKey *r);
+WERROR _winreg_DeleteValue(pipes_struct *p, struct winreg_DeleteValue *r);
+WERROR _winreg_EnumKey(pipes_struct *p, struct winreg_EnumKey *r);
+WERROR _winreg_EnumValue(pipes_struct *p, struct winreg_EnumValue *r);
+WERROR _winreg_FlushKey(pipes_struct *p, struct winreg_FlushKey *r);
+WERROR _winreg_GetKeySecurity(pipes_struct *p, struct winreg_GetKeySecurity *r);
+WERROR _winreg_LoadKey(pipes_struct *p, struct winreg_LoadKey *r);
+WERROR _winreg_NotifyChangeKeyValue(pipes_struct *p, struct winreg_NotifyChangeKeyValue *r);
+WERROR _winreg_OpenKey(pipes_struct *p, struct winreg_OpenKey *r);
+WERROR _winreg_QueryInfoKey(pipes_struct *p, struct winreg_QueryInfoKey *r);
+WERROR _winreg_QueryValue(pipes_struct *p, struct winreg_QueryValue *r);
+WERROR _winreg_ReplaceKey(pipes_struct *p, struct winreg_ReplaceKey *r);
+WERROR _winreg_RestoreKey(pipes_struct *p, struct winreg_RestoreKey *r);
+WERROR _winreg_SaveKey(pipes_struct *p, struct winreg_SaveKey *r);
+WERROR _winreg_SetKeySecurity(pipes_struct *p, struct winreg_SetKeySecurity *r);
+WERROR _winreg_SetValue(pipes_struct *p, struct winreg_SetValue *r);
+WERROR _winreg_UnLoadKey(pipes_struct *p, struct winreg_UnLoadKey *r);
+WERROR _winreg_InitiateSystemShutdown(pipes_struct *p, struct winreg_InitiateSystemShutdown *r);
+WERROR _winreg_AbortSystemShutdown(pipes_struct *p, struct winreg_AbortSystemShutdown *r);
+WERROR _winreg_GetVersion(pipes_struct *p, struct winreg_GetVersion *r);
+WERROR _winreg_OpenHKCC(pipes_struct *p, struct winreg_OpenHKCC *r);
+WERROR _winreg_OpenHKDD(pipes_struct *p, struct winreg_OpenHKDD *r);
+WERROR _winreg_QueryMultipleValues(pipes_struct *p, struct winreg_QueryMultipleValues *r);
+WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, struct winreg_InitiateSystemShutdownEx *r);
+WERROR _winreg_SaveKeyEx(pipes_struct *p, struct winreg_SaveKeyEx *r);
+WERROR _winreg_OpenHKPT(pipes_struct *p, struct winreg_OpenHKPT *r);
+WERROR _winreg_OpenHKPN(pipes_struct *p, struct winreg_OpenHKPN *r);
+WERROR _winreg_QueryMultipleValues2(pipes_struct *p, struct winreg_QueryMultipleValues2 *r);
NTSTATUS rpc_winreg_init(void);
#endif /* __SRV_WINREG__ */
diff --git a/librpc/gen_ndr/srv_wkssvc.c b/librpc/gen_ndr/srv_wkssvc.c
index 015451bdee..1838af1214 100644
--- a/librpc/gen_ndr/srv_wkssvc.c
+++ b/librpc/gen_ndr/srv_wkssvc.c
@@ -2406,6 +2406,288 @@ void wkssvc_get_pipe_fns(struct api_struct **fns, int *n_fns)
*n_fns = sizeof(api_wkssvc_cmds) / sizeof(struct api_struct);
}
+NTSTATUS rpc_wkssvc_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_WKSSVC_NETWKSTAGETINFO: {
+ struct wkssvc_NetWkstaGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union wkssvc_NetWkstaInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetWkstaGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETWKSTASETINFO: {
+ struct wkssvc_NetWkstaSetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_error = r->in.parm_error;
+ r->out.result = _wkssvc_NetWkstaSetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETWKSTAENUMUSERS: {
+ struct wkssvc_NetWkstaEnumUsers *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = r->in.info;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.entries_read = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.entries_read == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetWkstaEnumUsers(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRWKSTAUSERGETINFO: {
+ struct wkssvc_NetrWkstaUserGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, union wkssvc_NetrWkstaUserInfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrWkstaUserGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRWKSTAUSERSETINFO: {
+ struct wkssvc_NetrWkstaUserSetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_err = r->in.parm_err;
+ r->out.result = _wkssvc_NetrWkstaUserSetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETWKSTATRANSPORTENUM: {
+ struct wkssvc_NetWkstaTransportEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = r->in.info;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.total_entries = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.total_entries == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetWkstaTransportEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRWKSTATRANSPORTADD: {
+ struct wkssvc_NetrWkstaTransportAdd *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_err = r->in.parm_err;
+ r->out.result = _wkssvc_NetrWkstaTransportAdd(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRWKSTATRANSPORTDEL: {
+ struct wkssvc_NetrWkstaTransportDel *r = _r;
+ r->out.result = _wkssvc_NetrWkstaTransportDel(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRUSEADD: {
+ struct wkssvc_NetrUseAdd *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.parm_err = r->in.parm_err;
+ r->out.result = _wkssvc_NetrUseAdd(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRUSEGETINFO: {
+ struct wkssvc_NetrUseGetInfo *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.ctr = talloc_zero(mem_ctx, union wkssvc_NetrUseGetInfoCtr);
+ if (r->out.ctr == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrUseGetInfo(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRUSEDEL: {
+ struct wkssvc_NetrUseDel *r = _r;
+ r->out.result = _wkssvc_NetrUseDel(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRUSEENUM: {
+ struct wkssvc_NetrUseEnum *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = r->in.info;
+ r->out.resume_handle = r->in.resume_handle;
+ r->out.entries_read = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.entries_read == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrUseEnum(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRMESSAGEBUFFERSEND: {
+ struct wkssvc_NetrMessageBufferSend *r = _r;
+ r->out.result = _wkssvc_NetrMessageBufferSend(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRWORKSTATIONSTATISTICSGET: {
+ struct wkssvc_NetrWorkstationStatisticsGet *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct wkssvc_NetrWorkstationStatistics *);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrWorkstationStatisticsGet(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRLOGONDOMAINNAMEADD: {
+ struct wkssvc_NetrLogonDomainNameAdd *r = _r;
+ r->out.result = _wkssvc_NetrLogonDomainNameAdd(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRLOGONDOMAINNAMEDEL: {
+ struct wkssvc_NetrLogonDomainNameDel *r = _r;
+ r->out.result = _wkssvc_NetrLogonDomainNameDel(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRJOINDOMAIN: {
+ struct wkssvc_NetrJoinDomain *r = _r;
+ r->out.result = _wkssvc_NetrJoinDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRUNJOINDOMAIN: {
+ struct wkssvc_NetrUnjoinDomain *r = _r;
+ r->out.result = _wkssvc_NetrUnjoinDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN: {
+ struct wkssvc_NetrRenameMachineInDomain *r = _r;
+ r->out.result = _wkssvc_NetrRenameMachineInDomain(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRVALIDATENAME: {
+ struct wkssvc_NetrValidateName *r = _r;
+ r->out.result = _wkssvc_NetrValidateName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRGETJOININFORMATION: {
+ struct wkssvc_NetrGetJoinInformation *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.name_buffer = r->in.name_buffer;
+ r->out.name_type = talloc_zero(mem_ctx, enum wkssvc_NetJoinStatus);
+ if (r->out.name_type == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrGetJoinInformation(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRGETJOINABLEOUS: {
+ struct wkssvc_NetrGetJoinableOus *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.num_ous = r->in.num_ous;
+ r->out.ous = talloc_zero(mem_ctx, const char **);
+ if (r->out.ous == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrGetJoinableOus(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRJOINDOMAIN2: {
+ struct wkssvc_NetrJoinDomain2 *r = _r;
+ r->out.result = _wkssvc_NetrJoinDomain2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRUNJOINDOMAIN2: {
+ struct wkssvc_NetrUnjoinDomain2 *r = _r;
+ r->out.result = _wkssvc_NetrUnjoinDomain2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRRENAMEMACHINEINDOMAIN2: {
+ struct wkssvc_NetrRenameMachineInDomain2 *r = _r;
+ r->out.result = _wkssvc_NetrRenameMachineInDomain2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRVALIDATENAME2: {
+ struct wkssvc_NetrValidateName2 *r = _r;
+ r->out.result = _wkssvc_NetrValidateName2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRGETJOINABLEOUS2: {
+ struct wkssvc_NetrGetJoinableOus2 *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.num_ous = r->in.num_ous;
+ r->out.ous = talloc_zero(mem_ctx, const char **);
+ if (r->out.ous == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrGetJoinableOus2(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRADDALTERNATECOMPUTERNAME: {
+ struct wkssvc_NetrAddAlternateComputerName *r = _r;
+ r->out.result = _wkssvc_NetrAddAlternateComputerName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME: {
+ struct wkssvc_NetrRemoveAlternateComputerName *r = _r;
+ r->out.result = _wkssvc_NetrRemoveAlternateComputerName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRSETPRIMARYCOMPUTERNAME: {
+ struct wkssvc_NetrSetPrimaryComputername *r = _r;
+ r->out.result = _wkssvc_NetrSetPrimaryComputername(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WKSSVC_NETRENUMERATECOMPUTERNAMES: {
+ struct wkssvc_NetrEnumerateComputerNames *r = _r;
+ ZERO_STRUCT(r->out);
+ r->out.ctr = talloc_zero(mem_ctx, struct wkssvc_ComputerNamesCtr *);
+ if (r->out.ctr == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wkssvc_NetrEnumerateComputerNames(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
NTSTATUS rpc_wkssvc_init(void)
{
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "wkssvc", "wkssvc", &ndr_table_wkssvc, api_wkssvc_cmds, sizeof(api_wkssvc_cmds) / sizeof(struct api_struct));
diff --git a/librpc/gen_ndr/srv_wkssvc.h b/librpc/gen_ndr/srv_wkssvc.h
index b1bda66134..dd8eb7752a 100644
--- a/librpc/gen_ndr/srv_wkssvc.h
+++ b/librpc/gen_ndr/srv_wkssvc.h
@@ -33,5 +33,37 @@ WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_Ne
WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSetPrimaryComputername *r);
WERROR _wkssvc_NetrEnumerateComputerNames(pipes_struct *p, struct wkssvc_NetrEnumerateComputerNames *r);
void wkssvc_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_wkssvc_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r);
+WERROR _wkssvc_NetWkstaSetInfo(pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r);
+WERROR _wkssvc_NetWkstaEnumUsers(pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r);
+WERROR _wkssvc_NetrWkstaUserGetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserGetInfo *r);
+WERROR _wkssvc_NetrWkstaUserSetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserSetInfo *r);
+WERROR _wkssvc_NetWkstaTransportEnum(pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r);
+WERROR _wkssvc_NetrWkstaTransportAdd(pipes_struct *p, struct wkssvc_NetrWkstaTransportAdd *r);
+WERROR _wkssvc_NetrWkstaTransportDel(pipes_struct *p, struct wkssvc_NetrWkstaTransportDel *r);
+WERROR _wkssvc_NetrUseAdd(pipes_struct *p, struct wkssvc_NetrUseAdd *r);
+WERROR _wkssvc_NetrUseGetInfo(pipes_struct *p, struct wkssvc_NetrUseGetInfo *r);
+WERROR _wkssvc_NetrUseDel(pipes_struct *p, struct wkssvc_NetrUseDel *r);
+WERROR _wkssvc_NetrUseEnum(pipes_struct *p, struct wkssvc_NetrUseEnum *r);
+WERROR _wkssvc_NetrMessageBufferSend(pipes_struct *p, struct wkssvc_NetrMessageBufferSend *r);
+WERROR _wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p, struct wkssvc_NetrWorkstationStatisticsGet *r);
+WERROR _wkssvc_NetrLogonDomainNameAdd(pipes_struct *p, struct wkssvc_NetrLogonDomainNameAdd *r);
+WERROR _wkssvc_NetrLogonDomainNameDel(pipes_struct *p, struct wkssvc_NetrLogonDomainNameDel *r);
+WERROR _wkssvc_NetrJoinDomain(pipes_struct *p, struct wkssvc_NetrJoinDomain *r);
+WERROR _wkssvc_NetrUnjoinDomain(pipes_struct *p, struct wkssvc_NetrUnjoinDomain *r);
+WERROR _wkssvc_NetrRenameMachineInDomain(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain *r);
+WERROR _wkssvc_NetrValidateName(pipes_struct *p, struct wkssvc_NetrValidateName *r);
+WERROR _wkssvc_NetrGetJoinInformation(pipes_struct *p, struct wkssvc_NetrGetJoinInformation *r);
+WERROR _wkssvc_NetrGetJoinableOus(pipes_struct *p, struct wkssvc_NetrGetJoinableOus *r);
+WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p, struct wkssvc_NetrJoinDomain2 *r);
+WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p, struct wkssvc_NetrUnjoinDomain2 *r);
+WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain2 *r);
+WERROR _wkssvc_NetrValidateName2(pipes_struct *p, struct wkssvc_NetrValidateName2 *r);
+WERROR _wkssvc_NetrGetJoinableOus2(pipes_struct *p, struct wkssvc_NetrGetJoinableOus2 *r);
+WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r);
+WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_NetrRemoveAlternateComputerName *r);
+WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSetPrimaryComputername *r);
+WERROR _wkssvc_NetrEnumerateComputerNames(pipes_struct *p, struct wkssvc_NetrEnumerateComputerNames *r);
NTSTATUS rpc_wkssvc_init(void);
#endif /* __SRV_WKSSVC__ */
diff --git a/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm b/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
index 9a7a037b54..1a0eb51438 100644
--- a/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
+++ b/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
@@ -153,7 +153,7 @@ sub ParseFunction($$$)
$self->deindent;
$self->pidl("}");
$self->pidl("");
- $self->pidl("status = cli_do_rpc_ndr(cli,");
+ $self->pidl("status = cli->dispatch(cli,");
$self->pidl("\t\t\tmem_ctx,");
$self->pidl("\t\t\t&ndr_table_$if,");
$self->pidl("\t\t\t$ufn,");
diff --git a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
index 05edda9acb..6604abe91e 100644
--- a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
+++ b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
@@ -48,9 +48,9 @@ sub DeclLevel($$)
return $res;
}
-sub AllocOutVar($$$$)
+sub AllocOutVar($$$$$)
{
- my ($e, $mem_ctx, $name, $env) = @_;
+ my ($e, $mem_ctx, $name, $env, $fail) = @_;
my $l = $e->{LEVELS}[0];
@@ -76,12 +76,54 @@ sub AllocOutVar($$$$)
}
pidl "if ($name == NULL) {";
- pidl "\ttalloc_free($mem_ctx);";
- pidl "\treturn false;";
+ $fail->();
pidl "}";
pidl "";
}
+sub CallWithStruct($$$$)
+{
+ my ($pipes_struct, $mem_ctx, $fn, $fail) = @_;
+ my $env = GenerateFunctionOutEnv($fn);
+ my $hasout = 0;
+ foreach (@{$fn->{ELEMENTS}}) {
+ if (grep(/out/, @{$_->{DIRECTION}})) { $hasout = 1; }
+ }
+
+ pidl "ZERO_STRUCT(r->out);" if ($hasout);
+
+ my $proto = "_$fn->{NAME}(pipes_struct *p, struct $fn->{NAME} *r";
+ my $ret = "_$fn->{NAME}($pipes_struct, r";
+ foreach (@{$fn->{ELEMENTS}}) {
+ my @dir = @{$_->{DIRECTION}};
+ if (grep(/in/, @dir) and grep(/out/, @dir)) {
+ pidl "r->out.$_->{NAME} = r->in.$_->{NAME};";
+ }
+ }
+
+ foreach (@{$fn->{ELEMENTS}}) {
+ my @dir = @{$_->{DIRECTION}};
+ if (grep(/in/, @dir) and grep(/out/, @dir)) {
+ # noop
+ } elsif (grep(/out/, @dir) and not
+ has_property($_, "represent_as")) {
+ AllocOutVar($_, $mem_ctx, "r->out.$_->{NAME}", $env, $fail);
+ }
+ }
+ $ret .= ")";
+ $proto .= ");";
+
+ if ($fn->{RETURN_TYPE}) {
+ $ret = "r->out.result = $ret";
+ $proto = "$fn->{RETURN_TYPE} $proto";
+ } else {
+ $proto = "void $proto";
+ }
+
+ pidl_hdr "$proto";
+ pidl "$ret;";
+}
+
sub ParseFunction($$)
{
my ($if,$fn) = @_;
@@ -128,44 +170,12 @@ sub ParseFunction($$)
pidl "}";
pidl "";
- my $env = GenerateFunctionOutEnv($fn);
- my $hasout = 0;
- foreach (@{$fn->{ELEMENTS}}) {
- if (grep(/out/, @{$_->{DIRECTION}})) { $hasout = 1; }
- }
-
- pidl "ZERO_STRUCT(r->out);" if ($hasout);
-
- my $proto = "_$fn->{NAME}(pipes_struct *p, struct $fn->{NAME} *r";
- my $ret = "_$fn->{NAME}(p, r";
- foreach (@{$fn->{ELEMENTS}}) {
- my @dir = @{$_->{DIRECTION}};
- if (grep(/in/, @dir) and grep(/out/, @dir)) {
- pidl "r->out.$_->{NAME} = r->in.$_->{NAME};";
- }
- }
-
- foreach (@{$fn->{ELEMENTS}}) {
- my @dir = @{$_->{DIRECTION}};
- if (grep(/in/, @dir) and grep(/out/, @dir)) {
- # noop
- } elsif (grep(/out/, @dir) and not
- has_property($_, "represent_as")) {
- AllocOutVar($_, "r", "r->out.$_->{NAME}", $env);
+ CallWithStruct("p", "r", $fn,
+ sub {
+ pidl "\ttalloc_free(r);";
+ pidl "\treturn false;";
}
- }
- $ret .= ")";
- $proto .= ");";
-
- if ($fn->{RETURN_TYPE}) {
- $ret = "r->out.result = $ret";
- $proto = "$fn->{RETURN_TYPE} $proto";
- } else {
- $proto = "void $proto";
- }
-
- pidl_hdr "$proto";
- pidl "$ret;";
+ );
pidl "";
pidl "if (p->rng_fault_state) {";
@@ -204,6 +214,45 @@ sub ParseFunction($$)
pidl "";
}
+sub ParseDispatchFunction($)
+{
+ my ($if) = @_;
+
+ pidl_hdr "NTSTATUS rpc_$if->{NAME}_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);";
+ pidl "NTSTATUS rpc_$if->{NAME}_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)";
+ pidl "{";
+ indent;
+ pidl "if (cli->pipes_struct == NULL) {";
+ pidl "\treturn NT_STATUS_INVALID_PARAMETER;";
+ pidl "}";
+ pidl "";
+ pidl "switch (opnum)";
+ pidl "{";
+ indent;
+ foreach my $fn (@{$if->{FUNCTIONS}}) {
+ next if ($fn->{PROPERTIES}{noopnum});
+ my $op = "NDR_".uc($fn->{NAME});
+ pidl "case $op: {";
+ indent;
+ pidl "struct $fn->{NAME} *r = _r;";
+ CallWithStruct("cli->pipes_struct", "mem_ctx", $fn,
+ sub { pidl "return NT_STATUS_NO_MEMORY;"; });
+ pidl "return NT_STATUS_OK;";
+ deindent;
+ pidl "}";
+ pidl "";
+ }
+
+ pidl "default:";
+ pidl "\treturn NT_STATUS_NOT_IMPLEMENTED;";
+ deindent;
+ pidl "}";
+ deindent;
+ pidl "}";
+
+ pidl "";
+}
+
sub ParseInterface($)
{
my $if = shift;
@@ -244,6 +293,8 @@ sub ParseInterface($)
pidl "}";
pidl "";
+ ParseDispatchFunction($if);
+
pidl_hdr "NTSTATUS rpc_$if->{NAME}_init(void);";
pidl "NTSTATUS rpc_$if->{NAME}_init(void)";
pidl "{";
diff --git a/source3/include/client.h b/source3/include/client.h
index 587f3f6c67..09fdb81462 100644
--- a/source3/include/client.h
+++ b/source3/include/client.h
@@ -80,6 +80,11 @@ struct rpc_pipe_client {
struct ndr_syntax_id abstract_syntax;
struct ndr_syntax_id transfer_syntax;
+ NTSTATUS (*dispatch) (struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const struct ndr_interface_table *table,
+ uint32_t opnum, void *r);
+
char *desthost;
char *srv_name_slash;
@@ -90,6 +95,9 @@ struct rpc_pipe_client {
/* The following is only non-null on a netlogon pipe. */
struct dcinfo *dc;
+
+ /* Used by internal rpc_pipe_client */
+ pipes_struct *pipes_struct;
};
/* Transport encryption state. */
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 03c021683a..9ce6a9d7f1 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5244,6 +5244,10 @@ NTSTATUS rpc_pipe_open_tcp(TALLOC_CTX *mem_ctx, const char *host,
NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path,
const struct ndr_syntax_id *abstract_syntax,
struct rpc_pipe_client **presult);
+NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *abstract_syntax,
+ NTSTATUS (*dispatch) (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r),
+ struct auth_serversupplied_info *serversupplied_info,
+ struct rpc_pipe_client **presult);
NTSTATUS cli_rpc_pipe_open_noauth(struct cli_state *cli,
const struct ndr_syntax_id *interface,
struct rpc_pipe_client **presult);
diff --git a/source3/librpc/rpc/dcerpc.h b/source3/librpc/rpc/dcerpc.h
index 1a1fd83060..48019a421d 100644
--- a/source3/librpc/rpc/dcerpc.h
+++ b/source3/librpc/rpc/dcerpc.h
@@ -57,7 +57,7 @@ struct rpc_request {
enum dcerpc_transport_t {
NCA_UNKNOWN, NCACN_NP, NCACN_IP_TCP, NCACN_IP_UDP, NCACN_VNS_IPC,
NCACN_VNS_SPP, NCACN_AT_DSP, NCADG_AT_DDP, NCALRPC, NCACN_UNIX_STREAM,
- NCADG_UNIX_DGRAM, NCACN_HTTP, NCADG_IPX, NCACN_SPX };
+ NCADG_UNIX_DGRAM, NCACN_HTTP, NCADG_IPX, NCACN_SPX, NCACN_INTERNAL };
/** this describes a binding to a particular transport/pipe */
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index cf621343e7..6e2ffc933b 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -3310,6 +3310,7 @@ static NTSTATUS rpc_pipe_open_tcp_port(TALLOC_CTX *mem_ctx, const char *host,
result->abstract_syntax = *abstract_syntax;
result->transfer_syntax = ndr_transfer_syntax;
+ result->dispatch = cli_do_rpc_ndr;
result->desthost = talloc_strdup(result, host);
result->srv_name_slash = talloc_asprintf_strupper_m(
@@ -3517,6 +3518,7 @@ NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path,
result->abstract_syntax = *abstract_syntax;
result->transfer_syntax = ndr_transfer_syntax;
+ result->dispatch = cli_do_rpc_ndr;
result->desthost = talloc_get_myname(result);
result->srv_name_slash = talloc_asprintf_strupper_m(
@@ -3602,6 +3604,7 @@ static NTSTATUS rpc_pipe_open_np(struct cli_state *cli,
result->trans.np.cli = cli;
result->abstract_syntax = *abstract_syntax;
result->transfer_syntax = ndr_transfer_syntax;
+ result->dispatch = cli_do_rpc_ndr;
result->desthost = talloc_strdup(result, cli->desthost);
result->srv_name_slash = talloc_asprintf_strupper_m(
result, "\\\\%s", result->desthost);
@@ -4167,3 +4170,42 @@ NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
+
+/**
+ * Create a new RPC client context which uses a local dispatch function.
+ */
+NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *abstract_syntax,
+ NTSTATUS (*dispatch) (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r),
+ struct auth_serversupplied_info *serversupplied_info,
+ struct rpc_pipe_client **presult)
+{
+ struct rpc_pipe_client *result;
+
+ result = TALLOC_ZERO_P(mem_ctx, struct rpc_pipe_client);
+ if (result == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ result->transport_type = NCACN_INTERNAL;
+
+ result->abstract_syntax = *abstract_syntax;
+ result->transfer_syntax = ndr_transfer_syntax;
+ result->dispatch = dispatch;
+
+ result->pipes_struct = TALLOC_ZERO_P(mem_ctx, pipes_struct);
+ if (result->pipes_struct == NULL) {
+ TALLOC_FREE(result);
+ return NT_STATUS_NO_MEMORY;
+ }
+ result->pipes_struct->mem_ctx = mem_ctx;
+ result->pipes_struct->server_info = serversupplied_info;
+ result->pipes_struct->pipe_bound = true;
+
+ result->max_xmit_frag = -1;
+ result->max_recv_frag = -1;
+
+ *presult = result;
+ return NT_STATUS_OK;
+}
+
+
diff --git a/source3/rpc_client/ndr.c b/source3/rpc_client/ndr.c
index 9c3205eca3..6c40f09ab8 100644
--- a/source3/rpc_client/ndr.c
+++ b/source3/rpc_client/ndr.c
@@ -25,7 +25,7 @@
NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const struct ndr_interface_table *table,
- uint32 opnum, void *r)
+ uint32_t opnum, void *r)
{
prs_struct q_ps, r_ps;
const struct ndr_interface_call *call;