summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-01-18 10:18:59 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:17:16 -0500
commitd6b3fce078869de35334c0805ff141dc8bcf5f65 (patch)
treeb33ec293937c32551f71595c08d25d7037e18278 /source3/rpc_server
parente9c294b926c0b831fd936194342ec0564f935798 (diff)
downloadsamba-d6b3fce078869de35334c0805ff141dc8bcf5f65.tar.gz
samba-d6b3fce078869de35334c0805ff141dc8bcf5f65.tar.bz2
samba-d6b3fce078869de35334c0805ff141dc8bcf5f65.zip
r20875: Pass DCE/RPC server call arguments as a struct rather than as separate arguments.
This makes it a bit more similar to the Samba4 code. (This used to be commit 0596badb410a58e7a715e2b17bc0bef0489a2448)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/srv_dfs_nt.c112
-rw-r--r--source3/rpc_server/srv_echo_nt.c66
-rw-r--r--source3/rpc_server/srv_initshutdown_nt.c33
-rw-r--r--source3/rpc_server/srv_lsa_nt.c180
-rw-r--r--source3/rpc_server/srv_srvsvc_nt.c460
-rw-r--r--source3/rpc_server/srv_unixinfo_nt.c49
-rw-r--r--source3/rpc_server/srv_winreg_nt.c324
-rw-r--r--source3/rpc_server/srv_wkssvc_nt.c74
8 files changed, 629 insertions, 669 deletions
diff --git a/source3/rpc_server/srv_dfs_nt.c b/source3/rpc_server/srv_dfs_nt.c
index 4857a839e1..98818826df 100644
--- a/source3/rpc_server/srv_dfs_nt.c
+++ b/source3/rpc_server/srv_dfs_nt.c
@@ -30,15 +30,15 @@
/* This function does not return a WERROR or NTSTATUS code but rather 1 if
dfs exists, or 0 otherwise. */
-void _dfs_GetManagerVersion(pipes_struct *p, uint32 *exists)
+void _dfs_GetManagerVersion(pipes_struct *p, struct dfs_GetManagerVersion *r)
{
if(lp_host_msdfs())
- *exists = 1;
+ *r->out.exist_flag = 1;
else
- *exists = 0;
+ *r->out.exist_flag = 0;
}
-WERROR _dfs_Add(pipes_struct *p, const char *path, const char *server, const char *share, const char *comment, uint32_t flags)
+WERROR _dfs_Add(pipes_struct *p, struct dfs_Add *r)
{
struct junction_map jn;
struct referral* old_referral_list = NULL;
@@ -52,14 +52,14 @@ WERROR _dfs_Add(pipes_struct *p, const char *path, const char *server, const cha
}
DEBUG(5,("init_reply_dfs_add: Request to add %s -> %s\\%s.\n",
- path, server, share));
+ r->in.path, r->in.server, r->in.share));
- pstrcpy(altpath, server);
+ pstrcpy(altpath, r->in.server);
pstrcat(altpath, "\\");
- pstrcat(altpath, share);
+ pstrcat(altpath, r->in.share);
/* The following call can change the cwd. */
- if(get_referred_path(p->mem_ctx, path, &jn, NULL, NULL)) {
+ if(get_referred_path(p->mem_ctx, r->in.path, &jn, NULL, NULL)) {
exists = True;
jn.referral_count += 1;
old_referral_list = jn.referral_list;
@@ -93,7 +93,7 @@ WERROR _dfs_Add(pipes_struct *p, const char *path, const char *server, const cha
return WERR_OK;
}
-WERROR _dfs_Remove(pipes_struct *p, const char *path, const char *server, const char *share)
+WERROR _dfs_Remove(pipes_struct *p, struct dfs_Remove *r)
{
struct junction_map jn;
BOOL found = False;
@@ -105,22 +105,22 @@ WERROR _dfs_Remove(pipes_struct *p, const char *path, const char *server, const
return WERR_ACCESS_DENIED;
}
- if(server && share) {
- pstrcpy(altpath, server);
+ if (r->in.server && r->in.share) {
+ pstrcpy(altpath, r->in.server);
pstrcat(altpath, "\\");
- pstrcat(altpath, share);
+ pstrcat(altpath, r->in.share);
strlower_m(altpath);
}
DEBUG(5,("init_reply_dfs_remove: Request to remove %s -> %s\\%s.\n",
- path, server, share));
+ r->in.path, r->in.server, r->in.share));
- if(!get_referred_path(p->mem_ctx, path, &jn, NULL, NULL)) {
+ if(!get_referred_path(p->mem_ctx, r->in.path, &jn, NULL, NULL)) {
return WERR_DFS_NO_SUCH_VOL;
}
/* if no server-share pair given, remove the msdfs link completely */
- if(!server && !share) {
+ if(!r->in.server && !r->in.share) {
if(!remove_msdfs_link(&jn)) {
vfs_ChDir(p->conn,p->conn->connectpath);
return WERR_DFS_NO_SUCH_VOL;
@@ -242,7 +242,7 @@ static BOOL init_reply_dfs_info_100(TALLOC_CTX *mem_ctx, struct junction_map* j,
}
-WERROR _dfs_Enum(pipes_struct *p, uint32_t level, uint32_t bufsize, struct dfs_EnumStruct *info, uint32_t *unknown, uint32_t *total)
+WERROR _dfs_Enum(pipes_struct *p, struct dfs_Enum *r)
{
struct junction_map jn[MAX_MSDFS_JUNCTIONS];
int num_jn = 0;
@@ -251,44 +251,44 @@ WERROR _dfs_Enum(pipes_struct *p, uint32_t level, uint32_t bufsize, struct dfs_E
num_jn = enum_msdfs_links(p->mem_ctx, jn, ARRAY_SIZE(jn));
vfs_ChDir(p->conn,p->conn->connectpath);
- DEBUG(5,("_dfs_Enum: %d junctions found in Dfs, doing level %d\n", num_jn, level));
+ DEBUG(5,("_dfs_Enum: %d junctions found in Dfs, doing level %d\n", num_jn, r->in.level));
- *total = num_jn;
+ *r->out.total = num_jn;
/* Create the return array */
- switch (level) {
+ switch (r->in.level) {
case 1:
- if ((info->e.info1->s = TALLOC_ARRAY(p->mem_ctx, struct dfs_Info1, num_jn)) == NULL) {
+ if ((r->out.info->e.info1->s = TALLOC_ARRAY(p->mem_ctx, struct dfs_Info1, num_jn)) == NULL) {
return WERR_NOMEM;
}
- info->e.info1->count = num_jn;
+ r->out.info->e.info1->count = num_jn;
break;
case 2:
- if ((info->e.info2->s = TALLOC_ARRAY(p->mem_ctx, struct dfs_Info2, num_jn)) == NULL) {
+ if ((r->out.info->e.info2->s = TALLOC_ARRAY(p->mem_ctx, struct dfs_Info2, num_jn)) == NULL) {
return WERR_NOMEM;
}
- info->e.info2->count = num_jn;
+ r->out.info->e.info2->count = num_jn;
break;
case 3:
- if ((info->e.info3->s = TALLOC_ARRAY(p->mem_ctx, struct dfs_Info3, num_jn)) == NULL) {
+ if ((r->out.info->e.info3->s = TALLOC_ARRAY(p->mem_ctx, struct dfs_Info3, num_jn)) == NULL) {
return WERR_NOMEM;
}
- info->e.info3->count = num_jn;
+ r->out.info->e.info3->count = num_jn;
break;
default:
return WERR_INVALID_PARAM;
}
for (i = 0; i < num_jn; i++) {
- switch (level) {
+ switch (r->in.level) {
case 1:
- init_reply_dfs_info_1(p->mem_ctx, &jn[i], &info->e.info1->s[i]);
+ init_reply_dfs_info_1(p->mem_ctx, &jn[i], &r->out.info->e.info1->s[i]);
break;
case 2:
- init_reply_dfs_info_2(p->mem_ctx, &jn[i], &info->e.info2->s[i]);
+ init_reply_dfs_info_2(p->mem_ctx, &jn[i], &r->out.info->e.info2->s[i]);
break;
case 3:
- init_reply_dfs_info_3(p->mem_ctx, &jn[i], &info->e.info3->s[i]);
+ init_reply_dfs_info_3(p->mem_ctx, &jn[i], &r->out.info->e.info3->s[i]);
break;
default:
return WERR_INVALID_PARAM;
@@ -298,30 +298,30 @@ WERROR _dfs_Enum(pipes_struct *p, uint32_t level, uint32_t bufsize, struct dfs_E
return WERR_OK;
}
-WERROR _dfs_GetInfo(pipes_struct *p, const char *path, const char *server, const char *share, uint32_t level, union dfs_Info *info)
+WERROR _dfs_GetInfo(pipes_struct *p, struct dfs_GetInfo *r)
{
int consumedcnt = sizeof(pstring);
struct junction_map jn;
BOOL ret;
- if(!create_junction(path, &jn))
+ if(!create_junction(r->in.path, &jn))
return WERR_DFS_NO_SUCH_SERVER;
/* The following call can change the cwd. */
- if(!get_referred_path(p->mem_ctx, path, &jn, &consumedcnt, NULL) || consumedcnt < strlen(path)) {
+ if(!get_referred_path(p->mem_ctx, r->in.path, &jn, &consumedcnt, NULL) || consumedcnt < strlen(r->in.path)) {
vfs_ChDir(p->conn,p->conn->connectpath);
return WERR_DFS_NO_SUCH_VOL;
}
vfs_ChDir(p->conn,p->conn->connectpath);
- switch (level) {
- case 1: ret = init_reply_dfs_info_1(p->mem_ctx, &jn, info->info1); break;
- case 2: ret = init_reply_dfs_info_2(p->mem_ctx, &jn, info->info2); break;
- case 3: ret = init_reply_dfs_info_3(p->mem_ctx, &jn, info->info3); break;
- case 100: ret = init_reply_dfs_info_100(p->mem_ctx, &jn, info->info100); break;
+ switch (r->in.level) {
+ case 1: ret = init_reply_dfs_info_1(p->mem_ctx, &jn, r->out.info->info1); break;
+ case 2: ret = init_reply_dfs_info_2(p->mem_ctx, &jn, r->out.info->info2); break;
+ case 3: ret = init_reply_dfs_info_3(p->mem_ctx, &jn, r->out.info->info3); break;
+ case 100: ret = init_reply_dfs_info_100(p->mem_ctx, &jn, r->out.info->info100); break;
default:
- info->info1 = NULL;
+ r->out.info->info1 = NULL;
return WERR_INVALID_PARAM;
}
@@ -331,126 +331,126 @@ WERROR _dfs_GetInfo(pipes_struct *p, const char *path, const char *server, const
return WERR_OK;
}
-WERROR _dfs_SetInfo(pipes_struct *p)
+WERROR _dfs_SetInfo(pipes_struct *p, struct dfs_SetInfo *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_Rename(pipes_struct *p)
+WERROR _dfs_Rename(pipes_struct *p, struct dfs_Rename *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_Move(pipes_struct *p)
+WERROR _dfs_Move(pipes_struct *p, struct dfs_Move *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_ManagerGetConfigInfo(pipes_struct *p)
+WERROR _dfs_ManagerGetConfigInfo(pipes_struct *p, struct dfs_ManagerGetConfigInfo *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_ManagerSendSiteInfo(pipes_struct *p)
+WERROR _dfs_ManagerSendSiteInfo(pipes_struct *p, struct dfs_ManagerSendSiteInfo *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_AddFtRoot(pipes_struct *p)
+WERROR _dfs_AddFtRoot(pipes_struct *p, struct dfs_AddFtRoot *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_RemoveFtRoot(pipes_struct *p)
+WERROR _dfs_RemoveFtRoot(pipes_struct *p, struct dfs_RemoveFtRoot *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_AddStdRoot(pipes_struct *p)
+WERROR _dfs_AddStdRoot(pipes_struct *p, struct dfs_AddStdRoot *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_RemoveStdRoot(pipes_struct *p)
+WERROR _dfs_RemoveStdRoot(pipes_struct *p, struct dfs_RemoveStdRoot *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_ManagerInitialize(pipes_struct *p)
+WERROR _dfs_ManagerInitialize(pipes_struct *p, struct dfs_ManagerInitialize *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_AddStdRootForced(pipes_struct *p)
+WERROR _dfs_AddStdRootForced(pipes_struct *p, struct dfs_AddStdRootForced *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_GetDcAddress(pipes_struct *p)
+WERROR _dfs_GetDcAddress(pipes_struct *p, struct dfs_GetDcAddress *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_SetDcAddress(pipes_struct *p)
+WERROR _dfs_SetDcAddress(pipes_struct *p, struct dfs_SetDcAddress *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_FlushFtTable(pipes_struct *p)
+WERROR _dfs_FlushFtTable(pipes_struct *p, struct dfs_FlushFtTable *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_Add2(pipes_struct *p)
+WERROR _dfs_Add2(pipes_struct *p, struct dfs_Add2 *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_Remove2(pipes_struct *p)
+WERROR _dfs_Remove2(pipes_struct *p, struct dfs_Remove2 *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_EnumEx(pipes_struct *p, const char *name, uint32_t level, uint32_t bufsize, struct dfs_EnumStruct *info, uint32_t *total)
+WERROR _dfs_EnumEx(pipes_struct *p, struct dfs_EnumEx *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _dfs_SetInfo2(pipes_struct *p)
+WERROR _dfs_SetInfo2(pipes_struct *p, struct dfs_SetInfo2 *r)
{
/* FIXME: Implement your code here */
p->rng_fault_state = True;
diff --git a/source3/rpc_server/srv_echo_nt.c b/source3/rpc_server/srv_echo_nt.c
index b6c5442e03..eb095f6bfe 100644
--- a/source3/rpc_server/srv_echo_nt.c
+++ b/source3/rpc_server/srv_echo_nt.c
@@ -31,25 +31,25 @@
/* Add one to the input and return it */
-void _echo_AddOne(pipes_struct *p, uint32_t in_data, uint32_t *out_data)
+void _echo_AddOne(pipes_struct *p, struct echo_AddOne *r)
{
DEBUG(10, ("_echo_add_one\n"));
- *out_data = in_data + 1;
+ *r->out.out_data = r->in.in_data + 1;
}
/* Echo back an array of data */
-void _echo_EchoData(pipes_struct *p, uint32_t len, uint8_t *in_data, uint8_t *out_data)
+void _echo_EchoData(pipes_struct *p, struct echo_EchoData *r)
{
DEBUG(10, ("_echo_data\n"));
- memcpy(out_data, in_data, len);
+ memcpy(r->out.out_data, r->in.in_data, r->in.len);
}
/* Sink an array of data */
-void _echo_SinkData(pipes_struct *p, uint32_t len, uint8_t *data)
+void _echo_SinkData(pipes_struct *p, struct echo_SinkData *r)
{
DEBUG(10, ("_sink_data\n"));
@@ -58,47 +58,47 @@ void _echo_SinkData(pipes_struct *p, uint32_t len, uint8_t *data)
/* Source an array of data */
-void _echo_SourceData(pipes_struct *p, uint32_t len, uint8_t *data)
+void _echo_SourceData(pipes_struct *p, struct echo_SourceData *r)
{
uint32 i;
DEBUG(10, ("_source_data\n"));
- for (i = 0; i < len; i++)
- data[i] = i & 0xff;
+ for (i = 0; i < r->in.len; i++)
+ r->out.data[i] = i & 0xff;
}
-void _echo_TestCall(pipes_struct *p, const char *s1, const char **s2)
+void _echo_TestCall(pipes_struct *p, struct echo_TestCall *r)
{
- *s2 = talloc_strdup(p->mem_ctx, s1);
+ *r->out.s2 = talloc_strdup(p->mem_ctx, r->in.s1);
}
-NTSTATUS _echo_TestCall2(pipes_struct *p, uint16_t level, union echo_Info *info)
+NTSTATUS _echo_TestCall2(pipes_struct *p, struct echo_TestCall2 *r)
{
- switch (level) {
+ switch (r->in.level) {
case 1:
- info->info1.v = 10;
+ r->out.info->info1.v = 10;
break;
case 2:
- info->info2.v = 20;
+ r->out.info->info2.v = 20;
break;
case 3:
- info->info3.v = 30;
+ r->out.info->info3.v = 30;
break;
case 4:
- info->info4.v = 40;
+ r->out.info->info4.v = 40;
break;
case 5:
- info->info5.v1 = 50;
- info->info5.v2 = 60;
+ r->out.info->info5.v1 = 50;
+ r->out.info->info5.v2 = 60;
break;
case 6:
- info->info6.v1 = 70;
- info->info6.info1.v= 80;
+ r->out.info->info6.v1 = 70;
+ r->out.info->info6.info1.v= 80;
break;
case 7:
- info->info7.v1 = 80;
- info->info7.info4.v = 90;
+ r->out.info->info7.v1 = 80;
+ r->out.info->info7.info4.v = 90;
break;
default:
return NT_STATUS_INVALID_LEVEL;
@@ -107,29 +107,29 @@ NTSTATUS _echo_TestCall2(pipes_struct *p, uint16_t level, union echo_Info *info)
return NT_STATUS_OK;
}
-uint32 _echo_TestSleep(pipes_struct *p, uint32_t seconds)
+uint32 _echo_TestSleep(pipes_struct *p, struct echo_TestSleep *r)
{
- sleep(seconds);
- return seconds;
+ sleep(r->in.seconds);
+ return r->in.seconds;
}
-void _echo_TestEnum(pipes_struct *p, enum echo_Enum1 *foo1, struct echo_Enum2 *foo2, union echo_Enum3 *foo3)
+void _echo_TestEnum(pipes_struct *p, struct echo_TestEnum *r)
{
}
-void _echo_TestSurrounding(pipes_struct *p, struct echo_Surrounding *data)
+void _echo_TestSurrounding(pipes_struct *p, struct echo_TestSurrounding *r)
{
- data->x *= 2;
- data->surrounding = talloc_zero_array(p->mem_ctx, uint16_t, data->x);
+ r->out.data->x *= 2;
+ r->out.data->surrounding = talloc_zero_array(p->mem_ctx, uint16_t, r->in.data->x);
}
-uint16 _echo_TestDoublePointer(pipes_struct *p, uint16_t ***data)
+uint16 _echo_TestDoublePointer(pipes_struct *p, struct echo_TestDoublePointer *r)
{
- if (!*data)
+ if (!*r->in.data)
return 0;
- if (!**data)
+ if (!**r->in.data)
return 0;
- return ***data;
+ return ***r->in.data;
}
#endif /* DEVELOPER */
diff --git a/source3/rpc_server/srv_initshutdown_nt.c b/source3/rpc_server/srv_initshutdown_nt.c
index a73077fe03..cd84f72058 100644
--- a/source3/rpc_server/srv_initshutdown_nt.c
+++ b/source3/rpc_server/srv_initshutdown_nt.c
@@ -30,24 +30,37 @@
/*******************************************************************
********************************************************************/
-WERROR _initshutdown_Init(pipes_struct *p, uint16_t *hostname, struct initshutdown_String *message, uint32_t timeout, uint8_t force_apps, uint8_t reboot)
+WERROR _initshutdown_Init(pipes_struct *p, struct initshutdown_Init *r)
{
- uint32_t reason = 0;
+ struct winreg_InitiateSystemShutdownEx s;
+
+ s.in.hostname = r->in.hostname;
+ s.in.message = r->in.message;
+ s.in.timeout = r->in.timeout;
+ s.in.force_apps = r->in.force_apps;
+ s.in.reboot = r->in.reboot;
+ s.in.reason = 0;
/* thunk down to _winreg_InitiateSystemShutdownEx()
(just returns a status) */
- return _winreg_InitiateSystemShutdownEx( p, hostname, message, timeout,
- force_apps, reboot, reason );
+ return _winreg_InitiateSystemShutdownEx( p, &s );
}
/*******************************************************************
********************************************************************/
-WERROR _initshutdown_InitEx(pipes_struct *p, uint16_t *hostname, struct initshutdown_String *message, uint32_t timeout, uint8_t force_apps, uint8_t reboot, uint32_t reason)
+WERROR _initshutdown_InitEx(pipes_struct *p, struct initshutdown_InitEx *r)
{
- return _winreg_InitiateSystemShutdownEx( p, hostname, message, timeout,
- force_apps, reboot, reason );
+ struct winreg_InitiateSystemShutdownEx s;
+ s.in.hostname = r->in.hostname;
+ s.in.message = r->in.message;
+ s.in.timeout = r->in.timeout;
+ s.in.force_apps = r->in.force_apps;
+ s.in.reboot = r->in.reboot;
+ s.in.reason = r->in.reason;
+
+ return _winreg_InitiateSystemShutdownEx( p, &s);
}
@@ -57,7 +70,9 @@ WERROR _initshutdown_InitEx(pipes_struct *p, uint16_t *hostname, struct initshut
reg_abort_shutdwon
********************************************************************/
-WERROR _initshutdown_Abort(pipes_struct *p, uint16_t *server)
+WERROR _initshutdown_Abort(pipes_struct *p, struct initshutdown_Abort *r)
{
- return _winreg_AbortSystemShutdown( p, server );
+ struct winreg_AbortSystemShutdown s;
+ s.in.server = r->in.server;
+ return _winreg_AbortSystemShutdown( p, &s );
}
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c
index 44ec292750..76ec38af6f 100644
--- a/source3/rpc_server/srv_lsa_nt.c
+++ b/source3/rpc_server/srv_lsa_nt.c
@@ -1296,22 +1296,20 @@ NTSTATUS _lsa_lookup_names4(pipes_struct *p, LSA_Q_LOOKUP_NAMES4 *q_u, LSA_R_LOO
_lsa_close. Also weird - needs to check if lsa handle is correct. JRA.
***************************************************************************/
-NTSTATUS _lsa_Close(pipes_struct *p, struct policy_handle *handle)
+NTSTATUS _lsa_Close(pipes_struct *p, struct lsa_Close *r)
{
- if (!find_policy_by_hnd(p, handle, NULL)) {
+ if (!find_policy_by_hnd(p, r->in.handle, NULL)) {
return NT_STATUS_INVALID_HANDLE;
}
- close_policy_hnd(p, handle);
+ close_policy_hnd(p, r->in.handle);
return NT_STATUS_OK;
}
/***************************************************************************
***************************************************************************/
-NTSTATUS _lsa_OpenSecret(pipes_struct *p, struct policy_handle *handle,
- struct lsa_String name, uint32_t access_mask,
- struct policy_handle *sec_handle)
+NTSTATUS _lsa_OpenSecret(pipes_struct *p, struct lsa_OpenSecret *r)
{
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
@@ -1319,9 +1317,7 @@ NTSTATUS _lsa_OpenSecret(pipes_struct *p, struct policy_handle *handle,
/***************************************************************************
***************************************************************************/
-NTSTATUS _lsa_OpenTrustedDomain(pipes_struct *p, struct policy_handle *handle,
- struct dom_sid2 *sid, uint32_t access_mask,
- struct policy_handle *trustdom_handle)
+NTSTATUS _lsa_OpenTrustedDomain(pipes_struct *p, struct lsa_OpenTrustedDomain *r)
{
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
@@ -1329,11 +1325,7 @@ NTSTATUS _lsa_OpenTrustedDomain(pipes_struct *p, struct policy_handle *handle,
/***************************************************************************
***************************************************************************/
-NTSTATUS _lsa_CreateTrustedDomain(pipes_struct *p,
- struct policy_handle *handle,
- struct lsa_DomainInfo *info,
- uint32_t access_mask,
- struct policy_handle *trustdom_handle)
+NTSTATUS _lsa_CreateTrustedDomain(pipes_struct *p, struct lsa_CreateTrustedDomain *r)
{
return NT_STATUS_ACCESS_DENIED;
}
@@ -1341,9 +1333,7 @@ NTSTATUS _lsa_CreateTrustedDomain(pipes_struct *p,
/***************************************************************************
***************************************************************************/
-NTSTATUS _lsa_CreateSecret(pipes_struct *p, struct policy_handle *handle,
- struct lsa_String name, uint32_t access_mask,
- struct policy_handle *sec_handle)
+NTSTATUS _lsa_CreateSecret(pipes_struct *p, struct lsa_CreateSecret *r)
{
return NT_STATUS_ACCESS_DENIED;
}
@@ -1351,9 +1341,7 @@ NTSTATUS _lsa_CreateSecret(pipes_struct *p, struct policy_handle *handle,
/***************************************************************************
***************************************************************************/
-NTSTATUS _lsa_SetSecret(pipes_struct *p, struct policy_handle *sec_handle,
- struct lsa_DATA_BUF *new_val,
- struct lsa_DATA_BUF *old_val)
+NTSTATUS _lsa_SetSecret(pipes_struct *p, struct lsa_SetSecret *r)
{
return NT_STATUS_ACCESS_DENIED;
}
@@ -2141,457 +2129,457 @@ NTSTATUS _lsa_lookup_priv_value(pipes_struct *p, LSA_Q_LOOKUP_PRIV_VALUE *q_u, L
* pulling the server stubs across one by one.
*/
-NTSTATUS _lsa_Delete(pipes_struct *p, struct policy_handle *handle)
+NTSTATUS _lsa_Delete(pipes_struct *p, struct lsa_Delete *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_EnumPrivs(pipes_struct *p, struct policy_handle *handle, uint32_t *resume_handle, uint32_t max_count, struct lsa_PrivArray *_privs)
+NTSTATUS _lsa_EnumPrivs(pipes_struct *p, struct lsa_EnumPrivs *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QuerySecurity(pipes_struct *p, struct policy_handle *handle, uint32_t sec_info, struct sec_desc_buf *sdbuf)
+NTSTATUS _lsa_QuerySecurity(pipes_struct *p, struct lsa_QuerySecurity *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetSecObj(pipes_struct *p)
+NTSTATUS _lsa_SetSecObj(pipes_struct *p, struct lsa_SetSecObj *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_ChangePassword(pipes_struct *p)
+NTSTATUS _lsa_ChangePassword(pipes_struct *p, struct lsa_ChangePassword *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_OpenPolicy(pipes_struct *p, uint16_t *system_name, struct lsa_ObjectAttribute *attr, uint32_t access_mask, struct policy_handle *handle)
+NTSTATUS _lsa_OpenPolicy(pipes_struct *p, struct lsa_OpenPolicy *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QueryInfoPolicy(pipes_struct *p, struct policy_handle *handle, uint16_t level, union lsa_PolicyInformation *info)
+NTSTATUS _lsa_QueryInfoPolicy(pipes_struct *p, struct lsa_QueryInfoPolicy *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetInfoPolicy(pipes_struct *p)
+NTSTATUS _lsa_SetInfoPolicy(pipes_struct *p, struct lsa_SetInfoPolicy *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_ClearAuditLog(pipes_struct *p)
+NTSTATUS _lsa_ClearAuditLog(pipes_struct *p, struct lsa_ClearAuditLog *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CreateAccount(pipes_struct *p, struct policy_handle *handle, struct dom_sid2 *sid, uint32_t access_mask, struct policy_handle *acct_handle)
+NTSTATUS _lsa_CreateAccount(pipes_struct *p, struct lsa_CreateAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_EnumAccounts(pipes_struct *p, struct policy_handle *handle, uint32_t *resume_handle, uint32_t num_entries, struct lsa_SidArray *sids)
+NTSTATUS _lsa_EnumAccounts(pipes_struct *p, struct lsa_EnumAccounts *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_EnumTrustDom(pipes_struct *p, struct policy_handle *handle, uint32_t *resume_handle, uint32_t max_size, struct lsa_DomainList *domains)
+NTSTATUS _lsa_EnumTrustDom(pipes_struct *p, struct lsa_EnumTrustDom *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupNames(pipes_struct *p, struct policy_handle *handle, uint32_t num_names, struct lsa_String *names, struct lsa_RefDomainList *domains, struct lsa_TransSidArray *sids, uint16_t level, uint32_t *count)
+NTSTATUS _lsa_LookupNames(pipes_struct *p, struct lsa_LookupNames *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupSids(pipes_struct *p, struct policy_handle *handle, struct lsa_SidArray *sids, struct lsa_RefDomainList *domains, struct lsa_TransNameArray *names, uint16_t level, uint32_t *count)
+NTSTATUS _lsa_LookupSids(pipes_struct *p, struct lsa_LookupSids *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_OpenAccount(pipes_struct *p, struct policy_handle *handle, struct dom_sid2 *sid, uint32_t access_mask, struct policy_handle *acct_handle)
+NTSTATUS _lsa_OpenAccount(pipes_struct *p, struct lsa_OpenAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_EnumPrivsAccount(pipes_struct *p, struct policy_handle *handle, struct lsa_PrivilegeSet *_privs)
+NTSTATUS _lsa_EnumPrivsAccount(pipes_struct *p, struct lsa_EnumPrivsAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_AddPrivilegesToAccount(pipes_struct *p, struct policy_handle *handle, struct lsa_PrivilegeSet *_privs)
+NTSTATUS _lsa_AddPrivilegesToAccount(pipes_struct *p, struct lsa_AddPrivilegesToAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_RemovePrivilegesFromAccount(pipes_struct *p, struct policy_handle *handle, uint8_t remove_all, struct lsa_PrivilegeSet *_privs)
+NTSTATUS _lsa_RemovePrivilegesFromAccount(pipes_struct *p, struct lsa_RemovePrivilegesFromAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_GetQuotasForAccount(pipes_struct *p)
+NTSTATUS _lsa_GetQuotasForAccount(pipes_struct *p, struct lsa_GetQuotasForAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetQuotasForAccount(pipes_struct *p)
+NTSTATUS _lsa_SetQuotasForAccount(pipes_struct *p, struct lsa_SetQuotasForAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_GetSystemAccessAccount(pipes_struct *p)
+NTSTATUS _lsa_GetSystemAccessAccount(pipes_struct *p, struct lsa_GetSystemAccessAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetSystemAccessAccount(pipes_struct *p)
+NTSTATUS _lsa_SetSystemAccessAccount(pipes_struct *p, struct lsa_SetSystemAccessAccount *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QueryTrustedDomainInfo(pipes_struct *p, struct policy_handle *trustdom_handle, enum lsa_TrustDomInfoEnum level, union lsa_TrustedDomainInfo *info)
+NTSTATUS _lsa_QueryTrustedDomainInfo(pipes_struct *p, struct lsa_QueryTrustedDomainInfo *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetInformationTrustedDomain(pipes_struct *p)
+NTSTATUS _lsa_SetInformationTrustedDomain(pipes_struct *p, struct lsa_SetInformationTrustedDomain *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QuerySecret(pipes_struct *p, struct policy_handle *sec_handle, struct lsa_DATA_BUF_PTR *new_val, NTTIME *new_mtime, struct lsa_DATA_BUF_PTR *old_val, NTTIME *old_mtime)
+NTSTATUS _lsa_QuerySecret(pipes_struct *p, struct lsa_QuerySecret *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupPrivValue(pipes_struct *p, struct policy_handle *handle, struct lsa_String *name, struct lsa_LUID *luid)
+NTSTATUS _lsa_LookupPrivValue(pipes_struct *p, struct lsa_LookupPrivValue *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupPrivName(pipes_struct *p, struct policy_handle *handle, struct lsa_LUID *luid, struct lsa_StringLarge *name)
+NTSTATUS _lsa_LookupPrivName(pipes_struct *p, struct lsa_LookupPrivName *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupPrivDisplayName(pipes_struct *p, struct policy_handle *handle, struct lsa_String *name, struct lsa_StringLarge *disp_name, uint16_t *language_id, uint16_t unknown)
+NTSTATUS _lsa_LookupPrivDisplayName(pipes_struct *p, struct lsa_LookupPrivDisplayName *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_DeleteObject(pipes_struct *p)
+NTSTATUS _lsa_DeleteObject(pipes_struct *p, struct lsa_DeleteObject *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_EnumAccountsWithUserRight(pipes_struct *p, struct policy_handle *handle, struct lsa_String *name, struct lsa_SidArray *sids)
+NTSTATUS _lsa_EnumAccountsWithUserRight(pipes_struct *p, struct lsa_EnumAccountsWithUserRight *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_EnumAccountRights(pipes_struct *p, struct policy_handle *handle, struct dom_sid2 *sid, struct lsa_RightSet *rights)
+NTSTATUS _lsa_EnumAccountRights(pipes_struct *p, struct lsa_EnumAccountRights *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_AddAccountRights(pipes_struct *p, struct policy_handle *handle, struct dom_sid2 *sid, struct lsa_RightSet *rights)
+NTSTATUS _lsa_AddAccountRights(pipes_struct *p, struct lsa_AddAccountRights *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_RemoveAccountRights(pipes_struct *p, struct policy_handle *handle, struct dom_sid2 *sid, uint32_t unknown, struct lsa_RightSet *rights)
+NTSTATUS _lsa_RemoveAccountRights(pipes_struct *p, struct lsa_RemoveAccountRights *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QueryTrustedDomainInfoBySid(pipes_struct *p, struct policy_handle *handle, struct dom_sid2 *dom_sid, enum lsa_TrustDomInfoEnum level, union lsa_TrustedDomainInfo *info)
+NTSTATUS _lsa_QueryTrustedDomainInfoBySid(pipes_struct *p, struct lsa_QueryTrustedDomainInfoBySid *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetTrustedDomainInfo(pipes_struct *p)
+NTSTATUS _lsa_SetTrustedDomainInfo(pipes_struct *p, struct lsa_SetTrustedDomainInfo *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_DeleteTrustedDomain(pipes_struct *p, struct policy_handle *handle, struct dom_sid2 *dom_sid)
+NTSTATUS _lsa_DeleteTrustedDomain(pipes_struct *p, struct lsa_DeleteTrustedDomain *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_StorePrivateData(pipes_struct *p)
+NTSTATUS _lsa_StorePrivateData(pipes_struct *p, struct lsa_StorePrivateData *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_RetrievePrivateData(pipes_struct *p)
+NTSTATUS _lsa_RetrievePrivateData(pipes_struct *p, struct lsa_RetrievePrivateData *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_OpenPolicy2(pipes_struct *p, const char *system_name, struct lsa_ObjectAttribute *attr, uint32_t access_mask, struct policy_handle *handle)
+NTSTATUS _lsa_OpenPolicy2(pipes_struct *p, struct lsa_OpenPolicy2 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_GetUserName(pipes_struct *p, const char *system_name, struct lsa_String *account_name, struct lsa_StringPointer *authority_name)
+NTSTATUS _lsa_GetUserName(pipes_struct *p, struct lsa_GetUserName *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QueryInfoPolicy2(pipes_struct *p, struct policy_handle *handle, uint16_t level, union lsa_PolicyInformation *info)
+NTSTATUS _lsa_QueryInfoPolicy2(pipes_struct *p, struct lsa_QueryInfoPolicy2 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetInfoPolicy2(pipes_struct *p)
+NTSTATUS _lsa_SetInfoPolicy2(pipes_struct *p, struct lsa_SetInfoPolicy2 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QueryTrustedDomainInfoByName(pipes_struct *p, struct policy_handle *handle, struct lsa_String trusted_domain, enum lsa_TrustDomInfoEnum level, union lsa_TrustedDomainInfo *info)
+NTSTATUS _lsa_QueryTrustedDomainInfoByName(pipes_struct *p, struct lsa_QueryTrustedDomainInfoByName *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetTrustedDomainInfoByName(pipes_struct *p, struct policy_handle *handle, struct lsa_String trusted_domain, enum lsa_TrustDomInfoEnum level, union lsa_TrustedDomainInfo *info)
+NTSTATUS _lsa_SetTrustedDomainInfoByName(pipes_struct *p, struct lsa_SetTrustedDomainInfoByName *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_EnumTrustedDomainsEx(pipes_struct *p, struct policy_handle *handle, uint32_t *resume_handle, struct lsa_DomainListEx *domains, uint32_t max_size)
+NTSTATUS _lsa_EnumTrustedDomainsEx(pipes_struct *p, struct lsa_EnumTrustedDomainsEx *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CreateTrustedDomainEx(pipes_struct *p)
+NTSTATUS _lsa_CreateTrustedDomainEx(pipes_struct *p, struct lsa_CreateTrustedDomainEx *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CloseTrustedDomainEx(pipes_struct *p, struct policy_handle *handle)
+NTSTATUS _lsa_CloseTrustedDomainEx(pipes_struct *p, struct lsa_CloseTrustedDomainEx *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_QueryDomainInformationPolicy(pipes_struct *p, struct policy_handle *handle, uint16_t level, union lsa_DomainInformationPolicy *info)
+NTSTATUS _lsa_QueryDomainInformationPolicy(pipes_struct *p, struct lsa_QueryDomainInformationPolicy *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_SetDomainInformationPolicy(pipes_struct *p, struct policy_handle *handle, uint16_t level, union lsa_DomainInformationPolicy *info)
+NTSTATUS _lsa_SetDomainInformationPolicy(pipes_struct *p, struct lsa_SetDomainInformationPolicy *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_OpenTrustedDomainByName(pipes_struct *p, struct policy_handle *handle, struct lsa_String name, uint32_t access_mask, struct policy_handle *trustdom_handle)
+NTSTATUS _lsa_OpenTrustedDomainByName(pipes_struct *p, struct lsa_OpenTrustedDomainByName *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_TestCall(pipes_struct *p)
+NTSTATUS _lsa_TestCall(pipes_struct *p, struct lsa_TestCall *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupSids2(pipes_struct *p, struct policy_handle *handle, struct lsa_SidArray *sids, struct lsa_RefDomainList *domains, struct lsa_TransNameArray2 *names, uint16_t level, uint32_t *count, uint32_t unknown1, uint32_t unknown2)
+NTSTATUS _lsa_LookupSids2(pipes_struct *p, struct lsa_LookupSids2 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupNames2(pipes_struct *p, struct policy_handle *handle, uint32_t num_names, struct lsa_String *names, struct lsa_RefDomainList *domains, struct lsa_TransSidArray2 *sids, uint16_t level, uint32_t *count, uint32_t unknown1, uint32_t unknown2)
+NTSTATUS _lsa_LookupNames2(pipes_struct *p, struct lsa_LookupNames2 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CreateTrustedDomainEx2(pipes_struct *p)
+NTSTATUS _lsa_CreateTrustedDomainEx2(pipes_struct *p, struct lsa_CreateTrustedDomainEx2 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRWRITE(pipes_struct *p)
+NTSTATUS _lsa_CREDRWRITE(pipes_struct *p, struct lsa_CREDRWRITE *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRREAD(pipes_struct *p)
+NTSTATUS _lsa_CREDRREAD(pipes_struct *p, struct lsa_CREDRREAD *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRENUMERATE(pipes_struct *p)
+NTSTATUS _lsa_CREDRENUMERATE(pipes_struct *p, struct lsa_CREDRENUMERATE *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRWRITEDOMAINCREDENTIALS(pipes_struct *p)
+NTSTATUS _lsa_CREDRWRITEDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRWRITEDOMAINCREDENTIALS *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRREADDOMAINCREDENTIALS(pipes_struct *p)
+NTSTATUS _lsa_CREDRREADDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRREADDOMAINCREDENTIALS *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRDELETE(pipes_struct *p)
+NTSTATUS _lsa_CREDRDELETE(pipes_struct *p, struct lsa_CREDRDELETE *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRGETTARGETINFO(pipes_struct *p)
+NTSTATUS _lsa_CREDRGETTARGETINFO(pipes_struct *p, struct lsa_CREDRGETTARGETINFO *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRPROFILELOADED(pipes_struct *p)
+NTSTATUS _lsa_CREDRPROFILELOADED(pipes_struct *p, struct lsa_CREDRPROFILELOADED *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupNames3(pipes_struct *p, struct policy_handle *handle, uint32_t num_names, struct lsa_String *names, struct lsa_RefDomainList *domains, struct lsa_TransSidArray3 *sids, uint16_t level, uint32_t *count, uint32_t unknown1, uint32_t unknown2)
+NTSTATUS _lsa_LookupNames3(pipes_struct *p, struct lsa_LookupNames3 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRGETSESSIONTYPES(pipes_struct *p)
+NTSTATUS _lsa_CREDRGETSESSIONTYPES(pipes_struct *p, struct lsa_CREDRGETSESSIONTYPES *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARREGISTERAUDITEVENT(pipes_struct *p)
+NTSTATUS _lsa_LSARREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARREGISTERAUDITEVENT *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARGENAUDITEVENT(pipes_struct *p)
+NTSTATUS _lsa_LSARGENAUDITEVENT(pipes_struct *p, struct lsa_LSARGENAUDITEVENT *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARUNREGISTERAUDITEVENT(pipes_struct *p)
+NTSTATUS _lsa_LSARUNREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARUNREGISTERAUDITEVENT *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARQUERYFORESTTRUSTINFORMATION(pipes_struct *p)
+NTSTATUS _lsa_LSARQUERYFORESTTRUSTINFORMATION(pipes_struct *p, struct lsa_LSARQUERYFORESTTRUSTINFORMATION *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARSETFORESTTRUSTINFORMATION(pipes_struct *p)
+NTSTATUS _lsa_LSARSETFORESTTRUSTINFORMATION(pipes_struct *p, struct lsa_LSARSETFORESTTRUSTINFORMATION *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_CREDRRENAME(pipes_struct *p)
+NTSTATUS _lsa_CREDRRENAME(pipes_struct *p, struct lsa_CREDRRENAME *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupSids3(pipes_struct *p, struct lsa_SidArray *sids, struct lsa_RefDomainList *domains, struct lsa_TransNameArray2 *names, uint16_t level, uint32_t *count, uint32_t unknown1, uint32_t unknown2)
+NTSTATUS _lsa_LookupSids3(pipes_struct *p, struct lsa_LookupSids3 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LookupNames4(pipes_struct *p, uint32_t num_names, struct lsa_String *names, struct lsa_RefDomainList *domains, struct lsa_TransSidArray3 *sids, uint16_t level, uint32_t *count, uint32_t unknown1, uint32_t unknown2)
+NTSTATUS _lsa_LookupNames4(pipes_struct *p, struct lsa_LookupNames4 *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSAROPENPOLICYSCE(pipes_struct *p)
+NTSTATUS _lsa_LSAROPENPOLICYSCE(pipes_struct *p, struct lsa_LSAROPENPOLICYSCE *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(pipes_struct *p)
+NTSTATUS _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(pipes_struct *p)
+NTSTATUS _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS _lsa_LSARADTREPORTSECURITYEVENT(pipes_struct *p)
+NTSTATUS _lsa_LSARADTREPORTSECURITYEVENT(pipes_struct *p, struct lsa_LSARADTREPORTSECURITYEVENT *r)
{
p->rng_fault_state = True;
return NT_STATUS_NOT_IMPLEMENTED;
diff --git a/source3/rpc_server/srv_srvsvc_nt.c b/source3/rpc_server/srv_srvsvc_nt.c
index a9adaf3200..06c84b60e9 100644
--- a/source3/rpc_server/srv_srvsvc_nt.c
+++ b/source3/rpc_server/srv_srvsvc_nt.c
@@ -1063,11 +1063,11 @@ static WERROR net_file_enum_3(pipes_struct *p, union srvsvc_NetFileCtr *ctr, uin
/*******************************************************************
*******************************************************************/
-WERROR _srvsvc_NetFileEnum(pipes_struct *p, const char *server_unc, const char *path, const char *user, uint32_t *level, union srvsvc_NetFileCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetFileEnum(pipes_struct *p, struct srvsvc_NetFileEnum *r)
{
- switch ( *level ) {
+ switch ( *r->in.level ) {
case 3:
- return net_file_enum_3(p, ctr, resume_handle, totalentries );
+ return net_file_enum_3(p, r->in.ctr, r->in.resume_handle, r->out.totalentries );
default:
return WERR_UNKNOWN_LEVEL;
}
@@ -1079,11 +1079,11 @@ WERROR _srvsvc_NetFileEnum(pipes_struct *p, const char *server_unc, const char *
net server get info
********************************************************************/
-WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetSrvInfo *info)
+WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, struct srvsvc_NetSrvGetInfo *r)
{
WERROR status = WERR_OK;
- ZERO_STRUCTP(info);
+ ZERO_STRUCTP(r->out.info);
DEBUG(5,("srv_net_srv_get_info: %d\n", __LINE__));
@@ -1092,42 +1092,42 @@ WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, const char *server_unc, uint32_t l
return WERR_ACCESS_DENIED;
}
- switch (level) {
+ switch (r->in.level) {
/* Technically level 102 should only be available to
Administrators but there isn't anything super-secret
here, as most of it is made up. */
case 102:
- info->info102 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo102);
-
- info->info102->platform_id = 500;
- info->info102->version_major = lp_major_announce_version();
- info->info102->version_minor = lp_minor_announce_version();
- info->info102->server_name = global_myname();
- info->info102->server_type = lp_default_server_announce();
- info->info102->userpath = "C:\\";
- info->info102->licenses = 10000;
- info->info102->anndelta = 3000;
- info->info102->disc = 0xf;
- info->info102->users = 0xffffffff;
- info->info102->hidden = 0;
- info->info102->announce = 240;
- info->info102->comment = lp_serverstring();
+ r->out.info->info102 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo102);
+
+ r->out.info->info102->platform_id = 500;
+ r->out.info->info102->version_major = lp_major_announce_version();
+ r->out.info->info102->version_minor = lp_minor_announce_version();
+ r->out.info->info102->server_name = global_myname();
+ r->out.info->info102->server_type = lp_default_server_announce();
+ r->out.info->info102->userpath = "C:\\";
+ r->out.info->info102->licenses = 10000;
+ r->out.info->info102->anndelta = 3000;
+ r->out.info->info102->disc = 0xf;
+ r->out.info->info102->users = 0xffffffff;
+ r->out.info->info102->hidden = 0;
+ r->out.info->info102->announce = 240;
+ r->out.info->info102->comment = lp_serverstring();
break;
case 101:
- info->info101 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo101);
- info->info101->platform_id = 500;
- info->info101->server_name = global_myname();
- info->info101->version_major = lp_major_announce_version();
- info->info101->version_minor = lp_minor_announce_version();
- info->info101->server_type = lp_default_server_announce();
- info->info101->comment = lp_serverstring();
+ r->out.info->info101 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo101);
+ r->out.info->info101->platform_id = 500;
+ r->out.info->info101->server_name = global_myname();
+ r->out.info->info101->version_major = lp_major_announce_version();
+ r->out.info->info101->version_minor = lp_minor_announce_version();
+ r->out.info->info101->server_type = lp_default_server_announce();
+ r->out.info->info101->comment = lp_serverstring();
break;
case 100:
- info->info100 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo100);
- info->info100->platform_id = 500;
- info->info100->server_name = global_myname();
+ r->out.info->info100 = talloc_zero(p->mem_ctx, struct srvsvc_NetSrvInfo100);
+ r->out.info->info100->platform_id = 500;
+ r->out.info->info100->server_name = global_myname();
break;
default:
return WERR_UNKNOWN_LEVEL;
@@ -1143,11 +1143,11 @@ WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p, const char *server_unc, uint32_t l
net server set info
********************************************************************/
-WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetSrvInfo info, uint32_t *parm_error)
+WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p, struct srvsvc_NetSrvSetInfo *r)
{
/* Set up the net server set info structure. */
- if (parm_error) {
- *parm_error = 0;
+ if (r->out.parm_error) {
+ *r->out.parm_error = 0;
}
return WERR_OK;
}
@@ -1156,44 +1156,44 @@ WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p, const char *server_unc, uint32_t l
net conn enum
********************************************************************/
-WERROR _srvsvc_NetConnEnum(pipes_struct *p, const char *server_unc, const char *path, uint32_t *level, union srvsvc_NetConnCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetConnEnum(pipes_struct *p, struct srvsvc_NetConnEnum *r)
{
DEBUG(5,("srv_net_conn_enum: %d\n", __LINE__));
- ZERO_STRUCTP(ctr);
+ ZERO_STRUCTP(r->out.ctr);
/* set up the */
- return init_srv_conn_info_ctr(p, ctr, *level, resume_handle, totalentries);
+ return init_srv_conn_info_ctr(p, r->out.ctr, *r->in.level, r->in.resume_handle, r->out.totalentries);
}
/*******************************************************************
net sess enum
********************************************************************/
-WERROR _srvsvc_NetSessEnum(pipes_struct *p, const char *server_unc, const char *client, const char *user, uint32_t *level, union srvsvc_NetSessCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetSessEnum(pipes_struct *p, struct srvsvc_NetSessEnum *r)
{
DEBUG(5,("_srv_net_sess_enum: %d\n", __LINE__));
- ZERO_STRUCTP(ctr);
+ ZERO_STRUCTP(r->out.ctr);
/* set up the */
- return init_srv_sess_info_ctr(p, ctr,
- *level,
- resume_handle,
- totalentries);
+ return init_srv_sess_info_ctr(p, r->out.ctr,
+ *r->in.level,
+ r->in.resume_handle,
+ r->out.totalentries);
}
/*******************************************************************
net sess del
********************************************************************/
-WERROR _srvsvc_NetSessDel(pipes_struct *p, const char *server_unc, const char *client, const char *user)
+WERROR _srvsvc_NetSessDel(pipes_struct *p, struct srvsvc_NetSessDel *r)
{
struct sessionid *session_list;
int num_sessions, snum;
WERROR status;
- char *machine = talloc_strdup(p->mem_ctx, server_unc);
+ char *machine = talloc_strdup(p->mem_ctx, r->in.server_unc);
/* strip leading backslashes if any */
while (machine[0] == '\\') {
@@ -1216,8 +1216,8 @@ WERROR _srvsvc_NetSessDel(pipes_struct *p, const char *server_unc, const char *c
for (snum = 0; snum < num_sessions; snum++) {
- if ((strequal(session_list[snum].username, user) || user[0] == '\0' ) &&
- strequal(session_list[snum].remote_machine, machine)) {
+ if ((strequal(session_list[snum].username, r->in.user) || r->in.user[0] == '\0' ) &&
+ strequal(session_list[snum].remote_machine, machine)) {
if (message_send_pid(pid_to_procid(session_list[snum].pid), MSG_SHUTDOWN, NULL, 0, False))
status = WERR_OK;
@@ -1237,7 +1237,7 @@ done:
Net share enum all.
********************************************************************/
-WERROR _srvsvc_NetShareEnumAll(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetShareCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetShareEnumAll(pipes_struct *p, struct srvsvc_NetShareEnumAll *r)
{
DEBUG(5,("_srv_net_share_enum: %d\n", __LINE__));
@@ -1247,15 +1247,15 @@ WERROR _srvsvc_NetShareEnumAll(pipes_struct *p, const char *server_unc, uint32_t
}
/* Create the list of shares for the response. */
- return init_srv_share_info_ctr(p, ctr, *level,
- resume_handle, totalentries, True);
+ return init_srv_share_info_ctr(p, r->out.ctr, *r->in.level,
+ r->in.resume_handle, r->out.totalentries, True);
}
/*******************************************************************
Net share enum.
********************************************************************/
-WERROR _srvsvc_NetShareEnum(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetShareCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetShareEnum(pipes_struct *p, struct srvsvc_NetShareEnum *r)
{
DEBUG(5,("_srv_net_share_enum: %d\n", __LINE__));
@@ -1265,79 +1265,72 @@ WERROR _srvsvc_NetShareEnum(pipes_struct *p, const char *server_unc, uint32_t *l
}
/* Create the list of shares for the response. */
- return init_srv_share_info_ctr(p, ctr, *level,
- resume_handle, totalentries, False);
+ return init_srv_share_info_ctr(p, r->out.ctr, *r->in.level,
+ r->in.resume_handle, r->out.totalentries, False);
}
/*******************************************************************
Net share get info.
********************************************************************/
-WERROR _srvsvc_NetShareGetInfo(pipes_struct *p, const char *server_unc, const char *share_name, uint32_t level, union srvsvc_NetShareInfo *info)
+WERROR _srvsvc_NetShareGetInfo(pipes_struct *p, struct srvsvc_NetShareGetInfo *r)
{
const struct share_params *params;
- params = get_share_params(p->mem_ctx, share_name);
+ params = get_share_params(p->mem_ctx, r->in.share_name);
if (params != NULL) {
- switch (level) {
+ switch (r->in.level) {
case 0:
- info->info0 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo0);
- init_srv_share_info_0(p, info->info0,
- params);
+ r->out.info->info0 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo0);
+ init_srv_share_info_0(p, r->out.info->info0, params);
break;
case 1:
- info->info1 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1);
- init_srv_share_info_1(p, info->info1,
- params);
+ r->out.info->info1 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1);
+ init_srv_share_info_1(p, r->out.info->info1, params);
break;
case 2:
- info->info2 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo2);
- init_srv_share_info_2(p, info->info2,
- params);
+ r->out.info->info2 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo2);
+ init_srv_share_info_2(p, r->out.info->info2, params);
break;
case 501:
- info->info501 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo501);
- init_srv_share_info_501(p, info->info501,
- params);
+ r->out.info->info501 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo501);
+ init_srv_share_info_501(p, r->out.info->info501, params);
break;
case 502:
- info->info502 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo502);
- init_srv_share_info_502(p, info->info502,
- params);
+ r->out.info->info502 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo502);
+ init_srv_share_info_502(p, r->out.info->info502, params);
break;
/* here for completeness */
case 1004:
- info->info1004 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1004);
- init_srv_share_info_1004(p, info->info1004,
- params);
+ r->out.info->info1004 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1004);
+ init_srv_share_info_1004(p, r->out.info->info1004, params);
break;
case 1005:
- info->info1005 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1005);
- init_srv_share_info_1005(p, info->info1005,
- params);
+ r->out.info->info1005 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1005);
+ init_srv_share_info_1005(p, r->out.info->info1005, params);
break;
/* here for completeness 1006 - 1501 */
case 1006:
- info->info1006 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1006);
- init_srv_share_info_1006(p, info->info1006,
+ r->out.info->info1006 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1006);
+ init_srv_share_info_1006(p, r->out.info->info1006,
params);
break;
case 1007:
- info->info1007 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1007);
- init_srv_share_info_1007(p, info->info1007,
+ r->out.info->info1007 = talloc(p->mem_ctx, struct srvsvc_NetShareInfo1007);
+ init_srv_share_info_1007(p, r->out.info->info1007,
params);
break;
case 1501:
- info->info1501 = talloc(p->mem_ctx, struct sec_desc_buf);
- init_srv_share_info_1501(p, info->info1501,
+ r->out.info->info1501 = talloc(p->mem_ctx, struct sec_desc_buf);
+ init_srv_share_info_1501(p, r->out.info->info1501,
params);
break;
default:
DEBUG(5,("init_srv_net_share_get_info: unsupported "
- "switch value %d\n", level));
+ "switch value %d\n", r->in.level));
return WERR_UNKNOWN_LEVEL;
break;
}
@@ -1630,10 +1623,7 @@ static WERROR change_share(const char *share_name, const char *path,
Net share set info. Modify share details.
********************************************************************/
-WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc,
- const char *share_name, uint32_t level,
- union srvsvc_NetShareInfo info,
- uint32_t *parm_error)
+WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, struct srvsvc_NetShareSetInfo *r)
{
pstring comment;
pstring pathname;
@@ -1648,18 +1638,18 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc,
DEBUG(5,("_srv_net_share_set_info: %d\n", __LINE__));
- if (parm_error) {
- *parm_error = 0;
+ if (r->out.parm_error) {
+ *r->out.parm_error = 0;
}
- if ( strequal(share_name,"IPC$")
- || ( lp_enable_asu_support() && strequal(share_name,"ADMIN$") )
- || strequal(share_name,"global") )
+ if ( strequal(r->in.share_name,"IPC$")
+ || ( lp_enable_asu_support() && strequal(r->in.share_name,"ADMIN$") )
+ || strequal(r->in.share_name,"global") )
{
return WERR_ACCESS_DENIED;
}
- fstrcpy(tmp_share_name, share_name);
+ fstrcpy(tmp_share_name, r->in.share_name);
snum = find_service(tmp_share_name);
/* Does this share exist ? */
@@ -1678,31 +1668,31 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc,
if ( p->pipe_user.ut.uid != sec_initial_uid() && !is_disk_op )
return WERR_ACCESS_DENIED;
- switch (level) {
+ switch (r->in.level) {
case 1:
pstrcpy(pathname, lp_pathname(snum));
- pstrcpy(comment, info.info1->comment);
- type = info.info1->type;
+ pstrcpy(comment, r->in.info.info1->comment);
+ type = r->in.info.info1->type;
psd = NULL;
break;
case 2:
- pstrcpy(comment, info.info2->comment);
- pstrcpy(pathname, info.info2->path);
- type = info.info2->type;
- max_connections = (info.info2->max_users == 0xffffffff) ?
- 0 : info.info2->max_users;
+ pstrcpy(comment, r->in.info.info2->comment);
+ pstrcpy(pathname, r->in.info.info2->path);
+ type = r->in.info.info2->type;
+ max_connections = (r->in.info.info2->max_users == 0xffffffff) ?
+ 0 : r->in.info.info2->max_users;
psd = NULL;
break;
case 502:
- pstrcpy(comment, info.info502->comment);
- pstrcpy(pathname, info.info502->path);
- type = info.info502->type;
- psd = info.info502->sd;
+ pstrcpy(comment, r->in.info.info502->comment);
+ pstrcpy(pathname, r->in.info.info502->path);
+ type = r->in.info.info502->type;
+ psd = r->in.info.info502->sd;
map_generic_share_sd_bits(psd);
break;
case 1004:
pstrcpy(pathname, lp_pathname(snum));
- pstrcpy(comment, info.info1004->comment);
+ pstrcpy(comment, r->in.info.info1004->comment);
type = STYPE_DISKTREE;
break;
case 1005:
@@ -1710,7 +1700,7 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc,
user, so we must compare it to see if it's what is set in
smb.conf, so that we can contine other ops like setting
ACLs on a share */
- if (((info.info1005->dfs_flags &
+ if (((r->in.info.info1005->dfs_flags &
SHARE_1005_CSC_POLICY_MASK) >>
SHARE_1005_CSC_POLICY_SHIFT) == lp_csc_policy(snum))
return WERR_OK;
@@ -1726,13 +1716,13 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc,
case 1501:
pstrcpy(pathname, lp_pathname(snum));
pstrcpy(comment, lp_comment(snum));
- psd = info.info1501->sd;
+ psd = r->in.info.info1501->sd;
map_generic_share_sd_bits(psd);
type = STYPE_DISKTREE;
break;
default:
DEBUG(5,("_srv_net_share_set_info: unsupported switch value "
- "%d\n", level));
+ "%d\n", r->in.level));
return WERR_UNKNOWN_LEVEL;
}
@@ -1778,10 +1768,10 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc,
&sd_size);
if (old_sd && !sec_desc_equal(old_sd, psd)) {
- if (!set_share_security(share_name, psd)) {
+ if (!set_share_security(r->in.share_name, psd)) {
DEBUG(0,("_srv_net_share_set_info: Failed to "
"change security info in share %s.\n",
- share_name ));
+ r->in.share_name ));
}
}
}
@@ -1797,9 +1787,7 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, const char *server_unc,
"comment" "max connections = "
********************************************************************/
-WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc,
- uint32_t level, union srvsvc_NetShareInfo info,
- uint32_t *parm_error)
+WERROR _srvsvc_NetShareAdd(pipes_struct *p, struct srvsvc_NetShareAdd *r)
{
pstring share_name;
pstring comment;
@@ -1814,8 +1802,8 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc,
DEBUG(5,("_srv_net_share_add: %d\n", __LINE__));
- if (parm_error) {
- *parm_error = 0;
+ if (r->out.parm_error) {
+ *r->out.parm_error = 0;
}
is_disk_op = user_has_privileges( p->pipe_user.nt_user_token,
@@ -1824,7 +1812,7 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc,
if (p->pipe_user.ut.uid != sec_initial_uid() && !is_disk_op )
return WERR_ACCESS_DENIED;
- switch (level) {
+ switch (r->in.level) {
case 0:
/* No path. Not enough info in a level 0 to do anything. */
return WERR_ACCESS_DENIED;
@@ -1832,22 +1820,22 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc,
/* Not enough info in a level 1 to do anything. */
return WERR_ACCESS_DENIED;
case 2:
- pstrcpy(share_name, info.info2->name);
- pstrcpy(comment, info.info2->comment);
- pstrcpy(pathname, info.info2->path);
- max_connections = (info.info2->max_users == 0xffffffff) ?
- 0 : info.info2->max_users;
- type = info.info2->type;
+ pstrcpy(share_name, r->in.info.info2->name);
+ pstrcpy(comment, r->in.info.info2->comment);
+ pstrcpy(pathname, r->in.info.info2->path);
+ max_connections = (r->in.info.info2->max_users == 0xffffffff) ?
+ 0 : r->in.info.info2->max_users;
+ type = r->in.info.info2->type;
break;
case 501:
/* No path. Not enough info in a level 501 to do anything. */
return WERR_ACCESS_DENIED;
case 502:
- pstrcpy(share_name, info.info502->name);
- pstrcpy(comment, info.info502->comment);
- pstrcpy(pathname, info.info502->path);
- type = info.info502->type;
- psd = info.info502->sd;
+ pstrcpy(share_name, r->in.info.info502->name);
+ pstrcpy(comment, r->in.info.info502->comment);
+ pstrcpy(pathname, r->in.info.info502->path);
+ type = r->in.info.info502->type;
+ psd = r->in.info.info502->sd;
map_generic_share_sd_bits(psd);
break;
@@ -1864,7 +1852,7 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc,
return WERR_ACCESS_DENIED;
default:
DEBUG(5,("_srv_net_share_add: unsupported switch value %d\n",
- level));
+ r->in.level));
return WERR_UNKNOWN_LEVEL;
}
@@ -1933,8 +1921,7 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, const char *server_unc,
a parameter.
********************************************************************/
-WERROR _srvsvc_NetShareDel(pipes_struct *p, const char *server_unc,
- const char *share_name, uint32_t reserved)
+WERROR _srvsvc_NetShareDel(pipes_struct *p, struct srvsvc_NetShareDel *r)
{
struct share_params *params;
SE_PRIV se_diskop = SE_DISK_OPERATOR;
@@ -1943,14 +1930,14 @@ WERROR _srvsvc_NetShareDel(pipes_struct *p, const char *server_unc,
DEBUG(5,("_srv_net_share_del: %d\n", __LINE__));
- if ( strequal(share_name,"IPC$")
- || ( lp_enable_asu_support() && strequal(share_name,"ADMIN$") )
- || strequal(share_name,"global") )
+ if ( strequal(r->in.share_name, "IPC$")
+ || ( lp_enable_asu_support() && strequal(r->in.share_name,"ADMIN$") )
+ || strequal(r->in.share_name, "global") )
{
return WERR_ACCESS_DENIED;
}
- if (!(params = get_share_params(p->mem_ctx, share_name))) {
+ if (!(params = get_share_params(p->mem_ctx, r->in.share_name))) {
return WERR_NO_SUCH_SHARE;
}
@@ -1979,19 +1966,24 @@ WERROR _srvsvc_NetShareDel(pipes_struct *p, const char *server_unc,
return WERR_OK;
}
-WERROR _srvsvc_NetShareDelSticky(pipes_struct *p, const char *server_unc,
- const char *share_name, uint32_t reserved)
+WERROR _srvsvc_NetShareDelSticky(pipes_struct *p, struct srvsvc_NetShareDelSticky *r)
{
+ struct srvsvc_NetShareDel s;
+
DEBUG(5,("_srv_net_share_del_stick: %d\n", __LINE__));
- return _srvsvc_NetShareDel(p, server_unc, share_name, reserved);
+ s.in.server_unc = r->in.server_unc;
+ s.in.share_name = r->in.share_name;
+ s.in.reserved = r->in.reserved;
+
+ return _srvsvc_NetShareDel(p, &s);
}
/*******************************************************************
time of day
********************************************************************/
-WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, const char *server_unc, struct srvsvc_NetRemoteTODInfo *tod)
+WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, struct srvsvc_NetRemoteTOD *r)
{
struct tm *t;
time_t unixdate = time(NULL);
@@ -2007,18 +1999,18 @@ WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, const char *server_unc, struct srvs
t = gmtime(&unixdate);
/* set up the */
- tod->elapsed = unixdate;
- tod->msecs = 0;
- tod->hours = t->tm_hour;
- tod->mins = t->tm_min;
- tod->secs = t->tm_sec;
- tod->hunds = 0;
- tod->timezone = zone;
- tod->tinterval = 10000;
- tod->day = t->tm_mday;
- tod->month = t->tm_mon + 1;
- tod->year = 1900+t->tm_year;
- tod->weekday = t->tm_wday;
+ r->out.info->elapsed = unixdate;
+ r->out.info->msecs = 0;
+ r->out.info->hours = t->tm_hour;
+ r->out.info->mins = t->tm_min;
+ r->out.info->secs = t->tm_sec;
+ r->out.info->hunds = 0;
+ r->out.info->timezone = zone;
+ r->out.info->tinterval = 10000;
+ r->out.info->day = t->tm_mday;
+ r->out.info->month = t->tm_mon + 1;
+ r->out.info->year = 1900+t->tm_year;
+ r->out.info->weekday = t->tm_wday;
DEBUG(5,("_srv_net_remote_tod: %d\n", __LINE__));
@@ -2029,7 +2021,7 @@ WERROR _srvsvc_NetRemoteTOD(pipes_struct *p, const char *server_unc, struct srvs
Win9x NT tools get security descriptor.
***********************************************************************************/
-WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const char *share, const char *file, uint32_t securityinformation, struct sec_desc_buf *sd_buf)
+WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, struct srvsvc_NetGetFileSecurity *r)
{
SEC_DESC *psd = NULL;
size_t sd_size;
@@ -2049,11 +2041,11 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const
null_pw = data_blob(NULL, 0);
become_root();
- conn = make_connection(share, null_pw, "A:", p->pipe_user.vuid, &nt_status);
+ conn = make_connection(r->in.share, null_pw, "A:", p->pipe_user.vuid, &nt_status);
unbecome_root();
if (conn == NULL) {
- DEBUG(3,("_srv_net_file_query_secdesc: Unable to connect to %s\n", share));
+ DEBUG(3,("_srv_net_file_query_secdesc: Unable to connect to %s\n", r->in.share));
status = ntstatus_to_werror(nt_status);
goto error_exit;
}
@@ -2065,26 +2057,26 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const
}
became_user = True;
- pstrcpy(tmp_file, file);
+ pstrcpy(tmp_file, r->in.file);
nt_status = unix_convert(conn, tmp_file, False, NULL, &st);
if (!NT_STATUS_IS_OK(nt_status)) {
- DEBUG(3,("_srv_net_file_query_secdesc: bad pathname %s\n", file));
+ DEBUG(3,("_srv_net_file_query_secdesc: bad pathname %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
- nt_status = check_name(conn, file);
+ nt_status = check_name(conn, r->in.file);
if (!NT_STATUS_IS_OK(nt_status)) {
- DEBUG(3,("_srv_net_file_query_secdesc: can't access %s\n", file));
+ DEBUG(3,("_srv_net_file_query_secdesc: can't access %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
- nt_status = open_file_stat(conn, file, &st, &fsp);
+ nt_status = open_file_stat(conn, r->in.file, &st, &fsp);
if (!NT_STATUS_IS_OK(nt_status)) {
/* Perhaps it is a directory */
if (NT_STATUS_EQUAL(nt_status, NT_STATUS_FILE_IS_A_DIRECTORY))
- nt_status = open_directory(conn, file, &st,
+ nt_status = open_directory(conn, r->in.file, &st,
READ_CONTROL_ACCESS,
FILE_SHARE_READ|FILE_SHARE_WRITE,
FILE_OPEN,
@@ -2092,7 +2084,7 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const
NULL, &fsp);
if (!NT_STATUS_IS_OK(nt_status)) {
- DEBUG(3,("_srv_net_file_query_secdesc: Unable to open file %s\n", file));
+ DEBUG(3,("_srv_net_file_query_secdesc: Unable to open file %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
@@ -2101,13 +2093,13 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p, const char *server_unc, const
sd_size = SMB_VFS_GET_NT_ACL(fsp, fsp->fsp_name, (OWNER_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION|DACL_SECURITY_INFORMATION), &psd);
if (sd_size == 0) {
- DEBUG(3,("_srv_net_file_query_secdesc: Unable to get NT ACL for file %s\n", file));
+ DEBUG(3,("_srv_net_file_query_secdesc: Unable to get NT ACL for file %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
- sd_buf->sd_size= sd_size;
- sd_buf->sd = psd;
+ r->out.sd_buf->sd_size= sd_size;
+ r->out.sd_buf->sd = psd;
psd->dacl->revision = (uint16) NT4_ACL_REVISION;
@@ -2135,7 +2127,7 @@ error_exit:
Win9x NT tools set security descriptor.
***********************************************************************************/
-WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const char *share, const char *file, uint32_t securityinformation, struct sec_desc_buf sd_buf)
+WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, struct srvsvc_NetSetFileSecurity *r)
{
BOOL ret;
DATA_BLOB null_pw;
@@ -2153,11 +2145,11 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const
null_pw = data_blob(NULL, 0);
become_root();
- conn = make_connection(share, null_pw, "A:", p->pipe_user.vuid, &nt_status);
+ conn = make_connection(r->in.share, null_pw, "A:", p->pipe_user.vuid, &nt_status);
unbecome_root();
if (conn == NULL) {
- DEBUG(3,("_srv_net_file_set_secdesc: Unable to connect to %s\n", share));
+ DEBUG(3,("_srv_net_file_set_secdesc: Unable to connect to %s\n", r->in.share));
status = ntstatus_to_werror(nt_status);
goto error_exit;
}
@@ -2169,28 +2161,28 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const
}
became_user = True;
- pstrcpy(tmp_file, file);
+ pstrcpy(tmp_file, r->in.file);
nt_status = unix_convert(conn, tmp_file, False, NULL, &st);
if (!NT_STATUS_IS_OK(nt_status)) {
- DEBUG(3,("_srv_net_file_set_secdesc: bad pathname %s\n", file));
+ DEBUG(3,("_srv_net_file_set_secdesc: bad pathname %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
- nt_status = check_name(conn, file);
+ nt_status = check_name(conn, r->in.file);
if (!NT_STATUS_IS_OK(nt_status)) {
- DEBUG(3,("_srv_net_file_set_secdesc: can't access %s\n", file));
+ DEBUG(3,("_srv_net_file_set_secdesc: can't access %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
- nt_status = open_file_stat(conn, file, &st, &fsp);
+ nt_status = open_file_stat(conn, r->in.file, &st, &fsp);
if (!NT_STATUS_IS_OK(nt_status)) {
/* Perhaps it is a directory */
if (NT_STATUS_EQUAL(nt_status, NT_STATUS_FILE_IS_A_DIRECTORY))
- nt_status = open_directory(conn, file, &st,
+ nt_status = open_directory(conn, r->in.file, &st,
FILE_READ_ATTRIBUTES,
FILE_SHARE_READ|FILE_SHARE_WRITE,
FILE_OPEN,
@@ -2198,16 +2190,16 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p, const char *server_unc, const
NULL, &fsp);
if (!NT_STATUS_IS_OK(nt_status)) {
- DEBUG(3,("_srv_net_file_set_secdesc: Unable to open file %s\n", file));
+ DEBUG(3,("_srv_net_file_set_secdesc: Unable to open file %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
}
- ret = SMB_VFS_SET_NT_ACL(fsp, fsp->fsp_name, securityinformation, sd_buf.sd);
+ ret = SMB_VFS_SET_NT_ACL(fsp, fsp->fsp_name, r->in.securityinformation, r->in.sd_buf.sd);
if (ret == False) {
- DEBUG(3,("_srv_net_file_set_secdesc: Unable to set NT ACL on file %s\n", file));
+ DEBUG(3,("_srv_net_file_set_secdesc: Unable to set NT ACL on file %s\n", r->in.file));
status = WERR_ACCESS_DENIED;
goto error_exit;
}
@@ -2280,38 +2272,38 @@ static const char *next_server_disk_enum(uint32 *resume)
return disk;
}
-WERROR _srvsvc_NetDiskEnum(pipes_struct *p, const char *server_unc, uint32_t level, struct srvsvc_NetDiskInfo *info, uint32_t maxlen, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetDiskEnum(pipes_struct *p, struct srvsvc_NetDiskEnum *r)
{
uint32 i;
const char *disk_name;
WERROR status = WERR_OK;
- *totalentries = init_server_disk_enum(resume_handle);
- info->count = 0;
+ *r->out.totalentries = init_server_disk_enum(r->in.resume_handle);
+ r->out.info->count = 0;
- if(!(info->disks = TALLOC_ARRAY(p->mem_ctx, struct srvsvc_NetDiskInfo0, MAX_SERVER_DISK_ENTRIES))) {
+ if(!(r->out.info->disks = TALLOC_ARRAY(p->mem_ctx, struct srvsvc_NetDiskInfo0, MAX_SERVER_DISK_ENTRIES))) {
return WERR_NOMEM;
}
/*allow one struct srvsvc_NetDiskInfo0 for null terminator*/
- for(i = 0; i < MAX_SERVER_DISK_ENTRIES -1 && (disk_name = next_server_disk_enum(resume_handle)); i++) {
+ for(i = 0; i < MAX_SERVER_DISK_ENTRIES -1 && (disk_name = next_server_disk_enum(r->in.resume_handle)); i++) {
- info->count++;
- (*totalentries)++;
+ r->out.info->count++;
+ (*r->out.totalentries)++;
/*copy disk name into a unicode string*/
- info->disks[i].disk = disk_name;
+ r->out.info->disks[i].disk = disk_name;
}
/* add a terminating null string. Is this there if there is more data to come? */
- info->count++;
- (*totalentries)++;
+ r->out.info->count++;
+ (*r->out.totalentries)++;
- info->disks[i].disk = "";
+ r->out.info->disks[i].disk = "";
return status;
}
@@ -2319,29 +2311,29 @@ WERROR _srvsvc_NetDiskEnum(pipes_struct *p, const char *server_unc, uint32_t lev
/********************************************************************
********************************************************************/
-WERROR _srvsvc_NetNameValidate(pipes_struct *p, const char *server_unc, const char *name, uint32_t name_type, uint32_t flags)
+WERROR _srvsvc_NetNameValidate(pipes_struct *p, struct srvsvc_NetNameValidate *r)
{
int len;
- if ((flags != 0x0) && (flags != 0x80000000)) {
+ if ((r->in.flags != 0x0) && (r->in.flags != 0x80000000)) {
return WERR_INVALID_PARAM;
}
- switch ( name_type ) {
+ switch ( r->in.name_type ) {
case 0x9:
- len = strlen_m(name);
+ len = strlen_m(r->in.name);
- if ((flags == 0x0) && (len > 81)) {
- DEBUG(5,("_srv_net_name_validate: share name too long (%s > 81 chars)\n", name));
+ if ((r->in.flags == 0x0) && (len > 81)) {
+ DEBUG(5,("_srv_net_name_validate: share name too long (%s > 81 chars)\n", r->in.name));
return WERR_INVALID_NAME;
}
- if ((flags == 0x80000000) && (len > 13)) {
- DEBUG(5,("_srv_net_name_validate: share name too long (%s > 13 chars)\n", name));
+ if ((r->in.flags == 0x80000000) && (len > 13)) {
+ DEBUG(5,("_srv_net_name_validate: share name too long (%s > 13 chars)\n", r->in.name));
return WERR_INVALID_NAME;
}
- if ( ! validate_net_name( name, INVALID_SHARENAME_CHARS, sizeof(name) ) ) {
- DEBUG(5,("_srv_net_name_validate: Bad sharename \"%s\"\n", name));
+ if ( ! validate_net_name( r->in.name, INVALID_SHARENAME_CHARS, sizeof(r->in.name) ) ) {
+ DEBUG(5,("_srv_net_name_validate: Bad sharename \"%s\"\n", r->in.name));
return WERR_INVALID_NAME;
}
break;
@@ -2357,216 +2349,216 @@ WERROR _srvsvc_NetNameValidate(pipes_struct *p, const char *server_unc, const ch
/********************************************************************
********************************************************************/
-WERROR _srvsvc_NetFileClose(pipes_struct *p, const char *server_unc, uint32_t fid)
+WERROR _srvsvc_NetFileClose(pipes_struct *p, struct srvsvc_NetFileClose *r)
{
return WERR_ACCESS_DENIED;
}
-WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetCharDevCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, struct srvsvc_NetCharDevEnum *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetCharDevGetInfo(pipes_struct *p, const char *server_unc, const char *device_name, uint32_t level, union srvsvc_NetCharDevInfo *info)
+WERROR _srvsvc_NetCharDevGetInfo(pipes_struct *p, struct srvsvc_NetCharDevGetInfo *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetCharDevControl(pipes_struct *p, const char *server_unc, const char *device_name, uint32_t opcode)
+WERROR _srvsvc_NetCharDevControl(pipes_struct *p, struct srvsvc_NetCharDevControl *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetCharDevQEnum(pipes_struct *p, const char *server_unc, const char *user, uint32_t *level, union srvsvc_NetCharDevQCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetCharDevQEnum(pipes_struct *p, struct srvsvc_NetCharDevQEnum *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetCharDevQGetInfo(pipes_struct *p, const char *server_unc, const char *queue_name, const char *user, uint32_t level, union srvsvc_NetCharDevQInfo *info)
+WERROR _srvsvc_NetCharDevQGetInfo(pipes_struct *p, struct srvsvc_NetCharDevQGetInfo *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetCharDevQSetInfo(pipes_struct *p, const char *server_unc, const char *queue_name, uint32_t level, union srvsvc_NetCharDevQInfo info, uint32_t *parm_error)
+WERROR _srvsvc_NetCharDevQSetInfo(pipes_struct *p, struct srvsvc_NetCharDevQSetInfo *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetCharDevQPurge(pipes_struct *p, const char *server_unc, const char *queue_name)
+WERROR _srvsvc_NetCharDevQPurge(pipes_struct *p, struct srvsvc_NetCharDevQPurge *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetCharDevQPurgeSelf(pipes_struct *p, const char *server_unc, const char *queue_name, const char *computer_name)
+WERROR _srvsvc_NetCharDevQPurgeSelf(pipes_struct *p, struct srvsvc_NetCharDevQPurgeSelf *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetFileGetInfo(pipes_struct *p, const char *server_unc, uint32_t fid, uint32_t level, union srvsvc_NetFileInfo *info)
+WERROR _srvsvc_NetFileGetInfo(pipes_struct *p, struct srvsvc_NetFileGetInfo *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetShareCheck(pipes_struct *p, const char *server_unc, const char *device_name, enum srvsvc_ShareType *type)
+WERROR _srvsvc_NetShareCheck(pipes_struct *p, struct srvsvc_NetShareCheck *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetServerStatisticsGet(pipes_struct *p, const char *server_unc, const char *service, uint32_t level, uint32_t options, struct srvsvc_Statistics *stats)
+WERROR _srvsvc_NetServerStatisticsGet(pipes_struct *p, struct srvsvc_NetServerStatisticsGet *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetTransportAdd(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetTransportInfo info)
+WERROR _srvsvc_NetTransportAdd(pipes_struct *p, struct srvsvc_NetTransportAdd *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetTransportEnum(pipes_struct *p, const char *server_unc, uint32_t *level, union srvsvc_NetTransportCtr *transports, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _srvsvc_NetTransportEnum(pipes_struct *p, struct srvsvc_NetTransportEnum *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetTransportDel(pipes_struct *p, const char *server_unc, uint32_t unknown, struct srvsvc_NetTransportInfo0 transport)
+WERROR _srvsvc_NetTransportDel(pipes_struct *p, struct srvsvc_NetTransportDel *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetSetServiceBits(pipes_struct *p, const char *server_unc, const char *transport, uint32_t servicebits, uint32_t updateimmediately)
+WERROR _srvsvc_NetSetServiceBits(pipes_struct *p, struct srvsvc_NetSetServiceBits *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetPathType(pipes_struct *p, const char *server_unc, const char *path, uint32_t pathflags, uint32_t *pathtype)
+WERROR _srvsvc_NetPathType(pipes_struct *p, struct srvsvc_NetPathType *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetPathCanonicalize(pipes_struct *p, const char *server_unc, const char *path, uint8_t *can_path, uint32_t maxbuf, const char *prefix, uint32_t *pathtype, uint32_t pathflags)
+WERROR _srvsvc_NetPathCanonicalize(pipes_struct *p, struct srvsvc_NetPathCanonicalize *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetPathCompare(pipes_struct *p, const char *server_unc, const char *path1, const char *path2, uint32_t pathtype, uint32_t pathflags)
+WERROR _srvsvc_NetPathCompare(pipes_struct *p, struct srvsvc_NetPathCompare *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p)
+WERROR _srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p, struct srvsvc_NETRPRNAMECANONICALIZE *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetPRNameCompare(pipes_struct *p, const char *server_unc, const char *name1, const char *name2, uint32_t name_type, uint32_t flags)
+WERROR _srvsvc_NetPRNameCompare(pipes_struct *p, struct srvsvc_NetPRNameCompare *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetShareDelStart(pipes_struct *p, const char *server_unc, const char *share, uint32_t reserved, struct policy_handle *hnd)
+WERROR _srvsvc_NetShareDelStart(pipes_struct *p, struct srvsvc_NetShareDelStart *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetShareDelCommit(pipes_struct *p, struct policy_handle *hnd)
+WERROR _srvsvc_NetShareDelCommit(pipes_struct *p, struct srvsvc_NetShareDelCommit *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetServerTransportAddEx(pipes_struct *p, const char *server_unc, uint32_t level, union srvsvc_NetTransportInfo info)
+WERROR _srvsvc_NetServerTransportAddEx(pipes_struct *p, struct srvsvc_NetServerTransportAddEx *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NetServerSetServiceBitsEx(pipes_struct *p, const char *server_unc, const char *emulated_server_unc, const char *transport, uint32_t servicebitsofinterest, uint32_t servicebits, uint32_t updateimmediately)
+WERROR _srvsvc_NetServerSetServiceBitsEx(pipes_struct *p, struct srvsvc_NetServerSetServiceBitsEx *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSGETVERSION(pipes_struct *p)
+WERROR _srvsvc_NETRDFSGETVERSION(pipes_struct *p, struct srvsvc_NETRDFSGETVERSION *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p)
+WERROR _srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSCREATELOCALPARTITION *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p)
+WERROR _srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSDELETELOCALPARTITION *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p)
+WERROR _srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p, struct srvsvc_NETRDFSSETLOCALVOLUMESTATE *R)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p)
+WERROR _srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p, struct srvsvc_NETRDFSSETSERVERINFO *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p)
+WERROR _srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSCREATEEXITPOINT *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p)
+WERROR _srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSDELETEEXITPOINT *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p)
+WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p, struct srvsvc_NETRSERVERTRANSPORTDELEX *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p)
+WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p, struct srvsvc_NETRDFSMANAGERREPORTSITEINFO *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p)
+WERROR _srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p, struct srvsvc_NETRDFSMODIFYPREFIX *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
}
-WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p)
+WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p, struct srvsvc_NETRDFSFIXLOCALVOLUME *r)
{
p->rng_fault_state = True;
return WERR_NOT_SUPPORTED;
diff --git a/source3/rpc_server/srv_unixinfo_nt.c b/source3/rpc_server/srv_unixinfo_nt.c
index 5dd5215ed0..565d96e1fc 100644
--- a/source3/rpc_server/srv_unixinfo_nt.c
+++ b/source3/rpc_server/srv_unixinfo_nt.c
@@ -30,26 +30,26 @@
/* Map a sid to a uid */
-NTSTATUS _unixinfo_SidToUid(pipes_struct *p, struct dom_sid sid, uint64_t *uid)
+NTSTATUS _unixinfo_SidToUid(pipes_struct *p, struct unixinfo_SidToUid *r)
{
uid_t real_uid;
NTSTATUS status;
- *uid = 0;
+ *r->out.uid = 0;
- status = sid_to_uid(&sid, &real_uid) ? NT_STATUS_OK : NT_STATUS_NONE_MAPPED;
+ status = sid_to_uid(&r->in.sid, &real_uid) ? NT_STATUS_OK : NT_STATUS_NONE_MAPPED;
if (NT_STATUS_IS_OK(status))
- *uid = real_uid;
+ *r->out.uid = real_uid;
return status;
}
/* Map a uid to a sid */
-NTSTATUS _unixinfo_UidToSid(pipes_struct *p, uint64_t uid, struct dom_sid *sid)
+NTSTATUS _unixinfo_UidToSid(pipes_struct *p, struct unixinfo_UidToSid *r)
{
NTSTATUS status = NT_STATUS_NO_SUCH_USER;
- uid_to_sid(sid, (uid_t)uid);
+ uid_to_sid(r->out.sid, (uid_t)r->in.uid);
status = NT_STATUS_OK;
return status;
@@ -57,27 +57,27 @@ NTSTATUS _unixinfo_UidToSid(pipes_struct *p, uint64_t uid, struct dom_sid *sid)
/* Map a sid to a gid */
-NTSTATUS _unixinfo_SidToGid(pipes_struct *p, struct dom_sid sid, uint64_t *gid)
+NTSTATUS _unixinfo_SidToGid(pipes_struct *p, struct unixinfo_SidToGid *r)
{
gid_t real_gid;
NTSTATUS status;
- *gid = 0;
+ *r->out.gid = 0;
- status = sid_to_gid(&sid, &real_gid) ? NT_STATUS_OK : NT_STATUS_NONE_MAPPED;
+ status = sid_to_gid(&r->in.sid, &real_gid) ? NT_STATUS_OK : NT_STATUS_NONE_MAPPED;
if (NT_STATUS_IS_OK(status))
- *gid = real_gid;
+ *r->out.gid = real_gid;
return status;
}
/* Map a gid to a sid */
-NTSTATUS _unixinfo_GidToSid(pipes_struct *p, uint64_t gid, struct dom_sid *sid)
+NTSTATUS _unixinfo_GidToSid(pipes_struct *p, struct unixinfo_GidToSid *r)
{
NTSTATUS status = NT_STATUS_NO_SUCH_GROUP;
- gid_to_sid(sid, (gid_t)gid);
+ gid_to_sid(r->out.sid, (gid_t)r->in.gid);
status = NT_STATUS_OK;
return status;
@@ -85,31 +85,30 @@ NTSTATUS _unixinfo_GidToSid(pipes_struct *p, uint64_t gid, struct dom_sid *sid)
/* Get unix struct passwd information */
-NTSTATUS _unixinfo_GetPWUid(pipes_struct *p, uint32_t *count, uint64_t *uids,
- struct unixinfo_GetPWUidInfo *infos)
+NTSTATUS _unixinfo_GetPWUid(pipes_struct *p, struct unixinfo_GetPWUid *r)
{
int i;
NTSTATUS status;
- if (*count > 1023)
+ if (*r->in.count > 1023)
return NT_STATUS_INVALID_PARAMETER;
status = NT_STATUS_OK;
- for (i=0; i<*count; i++) {
+ for (i=0; i<*r->in.count; i++) {
struct passwd *pw;
char *homedir, *shell;
ssize_t len1, len2;
- infos[i].status = NT_STATUS_NO_SUCH_USER;
- infos[i].homedir = "";
- infos[i].shell = "";
+ r->out.infos[i].status = NT_STATUS_NO_SUCH_USER;
+ r->out.infos[i].homedir = "";
+ r->out.infos[i].shell = "";
- pw = getpwuid(uids[i]);
+ pw = getpwuid(r->in.uids[i]);
if (pw == NULL) {
DEBUG(10, ("Did not find uid %lld\n",
- (long long int)uids[i]));
+ (long long int)r->in.uids[i]));
continue;
}
@@ -119,13 +118,13 @@ NTSTATUS _unixinfo_GetPWUid(pipes_struct *p, uint32_t *count, uint64_t *uids,
if ((len1 < 0) || (len2 < 0) || (homedir == NULL) ||
(shell == NULL)) {
DEBUG(3, ("push_utf8_talloc failed\n"));
- infos[i].status = NT_STATUS_NO_MEMORY;
+ r->out.infos[i].status = NT_STATUS_NO_MEMORY;
continue;
}
- infos[i].status = NT_STATUS_OK;
- infos[i].homedir = homedir;
- infos[i].shell = shell;
+ r->out.infos[i].status = NT_STATUS_OK;
+ r->out.infos[i].homedir = homedir;
+ r->out.infos[i].shell = shell;
}
return status;
diff --git a/source3/rpc_server/srv_winreg_nt.c b/source3/rpc_server/srv_winreg_nt.c
index 4006b375b5..404210a416 100644
--- a/source3/rpc_server/srv_winreg_nt.c
+++ b/source3/rpc_server/srv_winreg_nt.c
@@ -119,14 +119,14 @@ static BOOL close_registry_key(pipes_struct *p, POLICY_HND *hnd)
reg_close
********************************************************************/
-WERROR _winreg_CloseKey(pipes_struct *p, struct policy_handle *handle)
+WERROR _winreg_CloseKey(pipes_struct *p, struct winreg_CloseKey *r)
{
/* close the policy handle */
- if (!close_registry_key(p, handle))
+ if (!close_registry_key(p, r->in.handle))
return WERR_BADFID;
- ZERO_STRUCTP(handle);
+ ZERO_STRUCTP(r->out.handle);
return WERR_OK;
}
@@ -134,110 +134,97 @@ WERROR _winreg_CloseKey(pipes_struct *p, struct policy_handle *handle)
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKLM(pipes_struct *p, uint16_t *system_name, uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKLM(pipes_struct *p, struct winreg_OpenHKLM *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKLM, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKLM, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKPD(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKPD(pipes_struct *p, struct winreg_OpenHKPD *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKPD, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKPD, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKPT(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKPT(pipes_struct *p, struct winreg_OpenHKPT *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKPT, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKPT, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKCR(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKCR(pipes_struct *p, struct winreg_OpenHKCR *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKCR, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKCR, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKU(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKU(pipes_struct *p, struct winreg_OpenHKU *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKU, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKU, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKCU(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKCU(pipes_struct *p, struct winreg_OpenHKCU *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKCU, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKCU, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKCC(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKCC(pipes_struct *p, struct winreg_OpenHKCC *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKCC, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKCC, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKDD(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKDD(pipes_struct *p, struct winreg_OpenHKDD *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKDD, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKDD, r->in.access_mask);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_OpenHKPN(pipes_struct *p, uint16_t *system_name,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenHKPN(pipes_struct *p, struct winreg_OpenHKPN *r)
{
- return open_registry_key(p, handle, NULL, KEY_HKPN, access_mask);
+ return open_registry_key(p, r->out.handle, NULL, KEY_HKPN, r->in.access_mask);
}
/*******************************************************************
reg_reply_open_entry
********************************************************************/
-WERROR _winreg_OpenKey(pipes_struct *p, struct policy_handle *parent_handle,
- struct winreg_String keyname, uint32_t unknown,
- uint32_t access_mask, struct policy_handle *handle)
+WERROR _winreg_OpenKey(pipes_struct *p, struct winreg_OpenKey *r)
{
- struct registry_key *parent = find_regkey_by_hnd(p, parent_handle );
+ struct registry_key *parent = find_regkey_by_hnd(p, r->in.parent_handle );
if ( !parent )
return WERR_BADFID;
- return open_registry_key(p, handle, parent, keyname.name, access_mask);
+ return open_registry_key(p, r->out.handle, parent, r->in.keyname.name, r->in.access_mask);
}
/*******************************************************************
reg_reply_info
********************************************************************/
-WERROR _winreg_QueryValue(pipes_struct *p, struct policy_handle *handle,
- struct winreg_String value_name,
- enum winreg_Type *type, uint8_t *data,
- uint32_t *data_size, uint32_t *value_length)
+WERROR _winreg_QueryValue(pipes_struct *p, struct winreg_QueryValue *r)
{
WERROR status = WERR_BADFILE;
- struct registry_key *regkey = find_regkey_by_hnd( p, handle );
+ struct registry_key *regkey = find_regkey_by_hnd( p, r->in.handle );
prs_struct prs_hkpd;
uint8_t *outbuf;
@@ -250,7 +237,7 @@ WERROR _winreg_QueryValue(pipes_struct *p, struct policy_handle *handle,
if ( !regkey )
return WERR_BADFID;
- *value_length = *type = 0;
+ *r->out.value_length = *r->out.type = 0;
DEBUG(7,("_reg_info: policy key name = [%s]\n", regkey->key->name));
DEBUG(7,("_reg_info: policy key type = [%08x]\n", regkey->key->type));
@@ -258,54 +245,54 @@ WERROR _winreg_QueryValue(pipes_struct *p, struct policy_handle *handle,
/* Handle QueryValue calls on HKEY_PERFORMANCE_DATA */
if(regkey->key->type == REG_KEY_HKPD)
{
- if(strequal(value_name.name, "Global")) {
- prs_init(&prs_hkpd, *data_size, p->mem_ctx, MARSHALL);
+ if(strequal(r->in.value_name.name, "Global")) {
+ prs_init(&prs_hkpd, *r->in.data_size, p->mem_ctx, MARSHALL);
status = reg_perfcount_get_hkpd(
- &prs_hkpd, *data_size, &outbuf_size, NULL);
+ &prs_hkpd, *r->in.data_size, &outbuf_size, NULL);
outbuf = (uint8_t *)prs_hkpd.data_p;
free_prs = True;
}
- else if(strequal(value_name.name, "Counter 009")) {
+ else if(strequal(r->in.value_name.name, "Counter 009")) {
outbuf_size = reg_perfcount_get_counter_names(
reg_perfcount_get_base_index(),
(char **)(void *)&outbuf);
free_buf = True;
}
- else if(strequal(value_name.name, "Explain 009")) {
+ else if(strequal(r->in.value_name.name, "Explain 009")) {
outbuf_size = reg_perfcount_get_counter_help(
reg_perfcount_get_base_index(),
(char **)(void *)&outbuf);
free_buf = True;
}
- else if(isdigit(value_name.name[0])) {
+ else if(isdigit(r->in.value_name.name[0])) {
/* we probably have a request for a specific object
* here */
- prs_init(&prs_hkpd, *data_size, p->mem_ctx, MARSHALL);
+ prs_init(&prs_hkpd, *r->in.data_size, p->mem_ctx, MARSHALL);
status = reg_perfcount_get_hkpd(
- &prs_hkpd, *data_size, &outbuf_size,
- value_name.name);
+ &prs_hkpd, *r->in.data_size, &outbuf_size,
+ r->in.value_name.name);
outbuf = (uint8_t *)prs_hkpd.data_p;
free_prs = True;
}
else {
DEBUG(3,("Unsupported key name [%s] for HKPD.\n",
- value_name.name));
+ r->in.value_name.name));
return WERR_BADFILE;
}
- *type = REG_BINARY;
+ *r->out.type = REG_BINARY;
}
else {
struct registry_value *val;
- status = reg_queryvalue(p->mem_ctx, regkey, value_name.name,
+ status = reg_queryvalue(p->mem_ctx, regkey, r->in.value_name.name,
&val);
if (!W_ERROR_IS_OK(status)) {
- if (data_size) {
- *data_size = 0;
+ if (r->out.data_size) {
+ *r->out.data_size = 0;
}
- if (value_length) {
- *value_length = 0;
+ if (r->out.value_length) {
+ *r->out.value_length = 0;
}
return status;
}
@@ -317,21 +304,21 @@ WERROR _winreg_QueryValue(pipes_struct *p, struct policy_handle *handle,
outbuf = val_blob.data;
outbuf_size = val_blob.length;
- *type = val->type;
+ *r->out.type = val->type;
}
- *value_length = outbuf_size;
+ *r->out.value_length = outbuf_size;
- if ( *data_size == 0 || !data ) {
+ if ( *r->in.data_size == 0 || !r->out.data ) {
status = WERR_OK;
- } else if ( *value_length > *data_size ) {
+ } else if ( *r->out.value_length > *r->in.data_size ) {
status = WERR_MORE_DATA;
} else {
- memcpy( data, outbuf, *value_length );
+ memcpy( r->out.data, outbuf, *r->out.value_length );
status = WERR_OK;
}
- *data_size = *value_length;
+ *r->out.data_size = *r->out.value_length;
if (free_prs) prs_mem_free(&prs_hkpd);
if (free_buf) SAFE_FREE(outbuf);
@@ -343,26 +330,20 @@ WERROR _winreg_QueryValue(pipes_struct *p, struct policy_handle *handle,
Implementation of REG_QUERY_KEY
****************************************************************************/
-WERROR _winreg_QueryInfoKey(pipes_struct *p, struct policy_handle *handle,
- struct winreg_String *classname,
- uint32_t *num_subkeys, uint32_t *max_subkeylen,
- uint32_t *max_subkeysize,
- uint32_t *num_values, uint32_t *max_valnamelen,
- uint32_t *max_valbufsize,
- uint32_t *secdescsize, NTTIME *last_changed_time)
+WERROR _winreg_QueryInfoKey(pipes_struct *p, struct winreg_QueryInfoKey *r)
{
WERROR status = WERR_OK;
- struct registry_key *regkey = find_regkey_by_hnd( p, handle );
+ struct registry_key *regkey = find_regkey_by_hnd( p, r->in.handle );
if ( !regkey )
return WERR_BADFID;
- classname->name = NULL;
+ r->out.classname->name = NULL;
- status = reg_queryinfokey(regkey, num_subkeys, max_subkeylen,
- max_subkeysize, num_values, max_valnamelen,
- max_valbufsize, secdescsize,
- last_changed_time);
+ status = reg_queryinfokey(regkey, r->out.num_subkeys, r->out.max_subkeylen,
+ r->out.max_classlen, r->out.num_values, r->out.max_valnamelen,
+ r->out.max_valbufsize, r->out.secdescsize,
+ r->out.last_changed_time);
if (!W_ERROR_IS_OK(status)) {
return status;
}
@@ -372,10 +353,10 @@ WERROR _winreg_QueryInfoKey(pipes_struct *p, struct policy_handle *handle,
* UTF-16. They are inexact at best, but so far they worked.
*/
- *max_subkeylen *= 2;
+ *r->out.max_subkeylen *= 2;
- *max_valnamelen += 1;
- *max_valnamelen *= 2;
+ *r->out.max_valnamelen += 1;
+ *r->out.max_valnamelen *= 2;
return WERR_OK;
}
@@ -385,14 +366,14 @@ WERROR _winreg_QueryInfoKey(pipes_struct *p, struct policy_handle *handle,
Implementation of REG_GETVERSION
****************************************************************************/
-WERROR _winreg_GetVersion(pipes_struct *p, struct policy_handle *handle, uint32_t *version)
+WERROR _winreg_GetVersion(pipes_struct *p, struct winreg_GetVersion *r)
{
- struct registry_key *regkey = find_regkey_by_hnd( p, handle );
+ struct registry_key *regkey = find_regkey_by_hnd( p, r->in.handle );
if ( !regkey )
return WERR_BADFID;
- *version = 0x00000005; /* Windows 2000 registry API version */
+ *r->out.version = 0x00000005; /* Windows 2000 registry API version */
return WERR_OK;
}
@@ -402,25 +383,25 @@ WERROR _winreg_GetVersion(pipes_struct *p, struct policy_handle *handle, uint32_
Implementation of REG_ENUM_KEY
****************************************************************************/
-WERROR _winreg_EnumKey(pipes_struct *p, struct policy_handle *handle, uint32_t enum_index, struct winreg_StringBuf *name, struct winreg_StringBuf *keyclass, NTTIME *last_changed_time)
+WERROR _winreg_EnumKey(pipes_struct *p, struct winreg_EnumKey *r)
{
WERROR err;
- struct registry_key *key = find_regkey_by_hnd( p, handle );
+ struct registry_key *key = find_regkey_by_hnd( p, r->in.handle );
if ( !key )
return WERR_BADFID;
- if ( !name || !keyclass )
+ if ( !r->in.name || !r->in.keyclass )
return WERR_INVALID_PARAM;
DEBUG(8,("_reg_enum_key: enumerating key [%s]\n", key->key->name));
- err = reg_enumkey(p->mem_ctx, key, enum_index, (char **)&name->name,
- last_changed_time);
+ err = reg_enumkey(p->mem_ctx, key, r->in.enum_index, (char **)&r->out.name->name,
+ r->out.last_changed_time);
if (!W_ERROR_IS_OK(err)) {
return err;
}
- keyclass->name = "";
+ r->out.keyclass->name = "";
return WERR_OK;
}
@@ -428,13 +409,10 @@ WERROR _winreg_EnumKey(pipes_struct *p, struct policy_handle *handle, uint32_t e
Implementation of REG_ENUM_VALUE
****************************************************************************/
-WERROR _winreg_EnumValue(pipes_struct *p, struct policy_handle *handle,
- uint32_t enum_index, struct winreg_ValNameBuf *name,
- enum winreg_Type *type, uint8_t **data,
- uint32_t *data_size, uint32_t *value_length)
+WERROR _winreg_EnumValue(pipes_struct *p, struct winreg_EnumValue *r)
{
WERROR err;
- struct registry_key *key = find_regkey_by_hnd( p, handle );
+ struct registry_key *key = find_regkey_by_hnd( p, r->in.handle );
char *valname;
struct registry_value *val;
DATA_BLOB value_blob;
@@ -442,13 +420,13 @@ WERROR _winreg_EnumValue(pipes_struct *p, struct policy_handle *handle,
if ( !key )
return WERR_BADFID;
- if ( !name )
+ if ( !r->in.name )
return WERR_INVALID_PARAM;
DEBUG(8,("_winreg_EnumValue: enumerating values for key [%s]\n",
key->key->name));
- err = reg_enumvalue(p->mem_ctx, key, enum_index, &valname, &val);
+ err = reg_enumvalue(p->mem_ctx, key, r->in.enum_index, &valname, &val);
if (!W_ERROR_IS_OK(err)) {
return err;
}
@@ -458,31 +436,31 @@ WERROR _winreg_EnumValue(pipes_struct *p, struct policy_handle *handle,
return err;
}
- if (name != NULL) {
- name->name = valname;
+ if (r->out.name != NULL) {
+ r->out.name->name = valname;
}
- if (type != NULL) {
- *type = val->type;
+ if (r->out.type != NULL) {
+ *r->out.type = val->type;
}
- if (data != NULL) {
- if ((data_size == NULL) || (value_length == NULL)) {
+ if (r->out.data != NULL) {
+ if ((r->out.data_size == NULL) || (r->out.value_length == NULL)) {
return WERR_INVALID_PARAM;
}
- if (value_blob.length > *data_size) {
+ if (value_blob.length > *r->out.data_size) {
return WERR_MORE_DATA;
}
- memcpy( data, value_blob.data, value_blob.length );
+ memcpy( r->out.data, value_blob.data, value_blob.length );
}
- if (value_length != NULL) {
- *value_length = value_blob.length;
+ if (r->out.value_length != NULL) {
+ *r->out.value_length = value_blob.length;
}
- if (data_size != NULL) {
- *data_size = value_blob.length;
+ if (r->out.data_size != NULL) {
+ *r->out.data_size = value_blob.length;
}
return WERR_OK;
@@ -492,15 +470,21 @@ WERROR _winreg_EnumValue(pipes_struct *p, struct policy_handle *handle,
reg_shutdwon
********************************************************************/
-WERROR _winreg_InitiateSystemShutdown(pipes_struct *p, uint16_t *hostname, struct initshutdown_String *message, uint32_t timeout, uint8_t force_apps, uint8_t reboot)
+WERROR _winreg_InitiateSystemShutdown(pipes_struct *p, struct winreg_InitiateSystemShutdown *r)
{
- uint32_t reason = 0;
+ struct winreg_InitiateSystemShutdownEx s;
+
+ s.in.hostname = r->in.hostname;
+ s.in.message = r->in.message;
+ s.in.timeout = r->in.timeout;
+ s.in.force_apps = r->in.force_apps;
+ s.in.reboot = r->in.reboot;
+ s.in.reason = 0;
/* thunk down to _winreg_InitiateSystemShutdownEx()
(just returns a status) */
- return _winreg_InitiateSystemShutdownEx( p, hostname, message, timeout,
- force_apps, reboot, reason );
+ return _winreg_InitiateSystemShutdownEx( p, &s );
}
/*******************************************************************
@@ -511,14 +495,14 @@ WERROR _winreg_InitiateSystemShutdown(pipes_struct *p, uint16_t *hostname, struc
#define SHUTDOWN_F_STRING "-f"
-WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, uint16_t *hostname, struct initshutdown_String *message, uint32_t timeout, uint8_t force_apps, uint8_t reboot, uint32_t reason)
+WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, struct winreg_InitiateSystemShutdownEx *r)
{
pstring shutdown_script;
char *msg = NULL;
pstring chkmsg;
fstring str_timeout;
fstring str_reason;
- fstring r;
+ fstring reboot;
fstring f;
int ret;
BOOL can_shutdown;
@@ -533,21 +517,21 @@ WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, uint16_t *hostname, str
chkmsg[0] = '\0';
- if ( message && message->name && message->name->name ) {
- if ( (msg = talloc_strdup(p->mem_ctx, message->name->name )) == NULL ) {
+ if ( r->in.message && r->in.message->name && r->in.message->name->name ) {
+ if ( (msg = talloc_strdup(p->mem_ctx, r->in.message->name->name )) == NULL ) {
return WERR_NOMEM;
}
alpha_strcpy (chkmsg, msg, NULL, sizeof(chkmsg));
}
- fstr_sprintf(str_timeout, "%d", timeout);
- fstr_sprintf(r, reboot ? SHUTDOWN_R_STRING : "");
- fstr_sprintf(f, force_apps ? SHUTDOWN_F_STRING : "");
- fstr_sprintf(str_reason, "%d", reason );
+ fstr_sprintf(str_timeout, "%d", r->in.timeout);
+ fstr_sprintf(reboot, r->in.reboot ? SHUTDOWN_R_STRING : "");
+ fstr_sprintf(f, r->in.force_apps ? SHUTDOWN_F_STRING : "");
+ fstr_sprintf(str_reason, "%d", r->in.reason );
all_string_sub( shutdown_script, "%z", chkmsg, sizeof(shutdown_script) );
all_string_sub( shutdown_script, "%t", str_timeout, sizeof(shutdown_script) );
- all_string_sub( shutdown_script, "%r", r, sizeof(shutdown_script) );
+ all_string_sub( shutdown_script, "%r", reboot, sizeof(shutdown_script) );
all_string_sub( shutdown_script, "%f", f, sizeof(shutdown_script) );
all_string_sub( shutdown_script, "%x", str_reason, sizeof(shutdown_script) );
@@ -582,7 +566,7 @@ WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, uint16_t *hostname, str
reg_abort_shutdwon
********************************************************************/
-WERROR _winreg_AbortSystemShutdown(pipes_struct *p, uint16_t *server)
+WERROR _winreg_AbortSystemShutdown(pipes_struct *p, struct winreg_AbortSystemShutdown *r)
{
pstring abort_shutdown_script;
int ret;
@@ -767,19 +751,19 @@ static WERROR restore_registry_key ( REGISTRY_KEY *krecord, const char *fname )
/*******************************************************************
********************************************************************/
-WERROR _winreg_RestoreKey(pipes_struct *p, struct policy_handle *handle, struct winreg_String *filename, uint32_t flags)
+WERROR _winreg_RestoreKey(pipes_struct *p, struct winreg_RestoreKey *r)
{
- struct registry_key *regkey = find_regkey_by_hnd( p, handle );
+ struct registry_key *regkey = find_regkey_by_hnd( p, r->in.handle );
pstring fname;
int snum;
if ( !regkey )
return WERR_BADFID;
- if ( !filename || !filename->name )
+ if ( !r->in.filename || !r->in.filename->name )
return WERR_INVALID_PARAM;
- pstrcpy( fname, filename->name );
+ pstrcpy( fname, r->in.filename->name );
DEBUG(8,("_winreg_RestoreKey: verifying restore of key [%s] from "
"\"%s\"\n", regkey->key->name, fname));
@@ -954,19 +938,19 @@ static WERROR backup_registry_key ( REGISTRY_KEY *krecord, const char *fname )
/*******************************************************************
********************************************************************/
-WERROR _winreg_SaveKey(pipes_struct *p, struct policy_handle *handle, struct winreg_String *filename, struct KeySecurityAttribute *sec_attrib)
+WERROR _winreg_SaveKey(pipes_struct *p, struct winreg_SaveKey *r)
{
- struct registry_key *regkey = find_regkey_by_hnd( p, handle );
+ struct registry_key *regkey = find_regkey_by_hnd( p, r->in.handle );
pstring fname;
int snum;
if ( !regkey )
return WERR_BADFID;
- if ( !filename || !filename->name )
+ if ( !r->in.filename || !r->in.filename->name )
return WERR_INVALID_PARAM;
- pstrcpy( fname, filename->name );
+ pstrcpy( fname, r->in.filename->name );
DEBUG(8,("_winreg_SaveKey: verifying backup of key [%s] to \"%s\"\n",
regkey->key->name, fname));
@@ -983,7 +967,7 @@ WERROR _winreg_SaveKey(pipes_struct *p, struct policy_handle *handle, struct win
/*******************************************************************
********************************************************************/
-WERROR _winreg_SaveKeyEx(pipes_struct *p)
+WERROR _winreg_SaveKeyEx(pipes_struct *p, struct winreg_SaveKeyEx *r)
{
/* fill in your code here if you think this call should
do anything */
@@ -995,28 +979,22 @@ WERROR _winreg_SaveKeyEx(pipes_struct *p)
/*******************************************************************
********************************************************************/
-WERROR _winreg_CreateKey( pipes_struct *p, struct policy_handle *handle,
- struct winreg_String keyname,
- struct winreg_String keyclass,
- uint32_t options, uint32_t access_mask,
- struct winreg_SecBuf *secdesc,
- struct policy_handle *new_handle,
- enum winreg_CreateAction *action_taken )
+WERROR _winreg_CreateKey( pipes_struct *p, struct winreg_CreateKey *r)
{
- struct registry_key *parent = find_regkey_by_hnd(p, handle);
+ struct registry_key *parent = find_regkey_by_hnd(p, r->in.handle);
struct registry_key *new_key;
WERROR result;
if ( !parent )
return WERR_BADFID;
- result = reg_createkey(NULL, parent, keyname.name, access_mask,
- &new_key, action_taken);
+ result = reg_createkey(NULL, parent, r->in.name.name, r->in.access_mask,
+ &new_key, r->out.action_taken);
if (!W_ERROR_IS_OK(result)) {
return result;
}
- if (!create_policy_hnd(p, new_handle, free_regkey, new_key)) {
+ if (!create_policy_hnd(p, r->out.new_handle, free_regkey, new_key)) {
TALLOC_FREE(new_key);
return WERR_BADFILE;
}
@@ -1027,64 +1005,60 @@ WERROR _winreg_CreateKey( pipes_struct *p, struct policy_handle *handle,
/*******************************************************************
********************************************************************/
-WERROR _winreg_SetValue(pipes_struct *p, struct policy_handle *handle,
- struct winreg_String name, enum winreg_Type type,
- uint8_t *data, uint32_t size)
+WERROR _winreg_SetValue(pipes_struct *p, struct winreg_SetValue *r)
{
- struct registry_key *key = find_regkey_by_hnd(p, handle);
+ struct registry_key *key = find_regkey_by_hnd(p, r->in.handle);
struct registry_value *val;
WERROR status;
if ( !key )
return WERR_BADFID;
- DEBUG(8,("_reg_set_value: Setting value for [%s:%s]\n", key->key->name,
- name.name));
+ DEBUG(8,("_reg_set_value: Setting value for [%s:%s]\n",
+ key->key->name, r->in.name.name));
- status = registry_pull_value(p->mem_ctx, &val, type, data, size, size);
+ status = registry_pull_value(p->mem_ctx, &val, r->in.type, r->in.data,
+ r->in.size, r->in.size);
if (!W_ERROR_IS_OK(status)) {
return status;
}
- return reg_setvalue(key, name.name, val);
+ return reg_setvalue(key, r->in.name.name, val);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_DeleteKey(pipes_struct *p, struct policy_handle *handle,
- struct winreg_String key)
+WERROR _winreg_DeleteKey(pipes_struct *p, struct winreg_DeleteKey *r)
{
- struct registry_key *parent = find_regkey_by_hnd(p, handle);
+ struct registry_key *parent = find_regkey_by_hnd(p, r->in.handle);
if ( !parent )
return WERR_BADFID;
- return reg_deletekey(parent, key.name);
+ return reg_deletekey(parent, r->in.key.name);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_DeleteValue(pipes_struct *p, struct policy_handle *handle,
- struct winreg_String value)
+WERROR _winreg_DeleteValue(pipes_struct *p, struct winreg_DeleteValue *r)
{
- struct registry_key *key = find_regkey_by_hnd(p, handle);
+ struct registry_key *key = find_regkey_by_hnd(p, r->in.handle);
if ( !key )
return WERR_BADFID;
- return reg_deletevalue(key, value.name);
+ return reg_deletevalue(key, r->in.value.name);
}
/*******************************************************************
********************************************************************/
-WERROR _winreg_GetKeySecurity(pipes_struct *p, struct policy_handle *handle,
- uint32_t sec_info, struct KeySecurityData *sd)
+WERROR _winreg_GetKeySecurity(pipes_struct *p, struct winreg_GetKeySecurity *r)
{
- struct registry_key *key = find_regkey_by_hnd(p, handle);
+ struct registry_key *key = find_regkey_by_hnd(p, r->in.handle);
WERROR err;
struct security_descriptor *secdesc;
uint8 *data;
@@ -1109,14 +1083,14 @@ WERROR _winreg_GetKeySecurity(pipes_struct *p, struct policy_handle *handle,
return err;
}
- if (len > sd->size) {
- sd->size = len;
+ if (len > r->out.sd->size) {
+ r->out.sd->size = len;
return WERR_INSUFFICIENT_BUFFER;
}
- sd->size = len;
- sd->len = len;
- sd->data = data;
+ r->out.sd->size = len;
+ r->out.sd->len = len;
+ r->out.sd->data = data;
return WERR_OK;
}
@@ -1124,9 +1098,9 @@ WERROR _winreg_GetKeySecurity(pipes_struct *p, struct policy_handle *handle,
/*******************************************************************
********************************************************************/
-WERROR _winreg_SetKeySecurity(pipes_struct *p, struct policy_handle *handle, uint32_t access_mask, struct KeySecurityData *sd)
+WERROR _winreg_SetKeySecurity(pipes_struct *p, struct winreg_SetKeySecurity *r)
{
- struct registry_key *key = find_regkey_by_hnd(p, handle);
+ struct registry_key *key = find_regkey_by_hnd(p, r->in.handle);
struct security_descriptor *secdesc;
WERROR err;
@@ -1138,8 +1112,8 @@ WERROR _winreg_SetKeySecurity(pipes_struct *p, struct policy_handle *handle, uin
if ( !(key->key->access_granted & STD_RIGHT_WRITE_DAC_ACCESS) )
return WERR_ACCESS_DENIED;
- err = ntstatus_to_werror(unmarshall_sec_desc(p->mem_ctx, sd->data,
- sd->len, &secdesc));
+ err = ntstatus_to_werror(unmarshall_sec_desc(p->mem_ctx, r->in.sd->data,
+ r->in.sd->len, &secdesc));
if (!W_ERROR_IS_OK(err)) {
return err;
}
@@ -1150,7 +1124,7 @@ WERROR _winreg_SetKeySecurity(pipes_struct *p, struct policy_handle *handle, uin
/*******************************************************************
********************************************************************/
-WERROR _winreg_FlushKey(pipes_struct *p, struct policy_handle *handle)
+WERROR _winreg_FlushKey(pipes_struct *p, struct winreg_FlushKey *r)
{
/* I'm just replying OK because there's not a lot
here I see to do i --jerry */
@@ -1161,7 +1135,7 @@ WERROR _winreg_FlushKey(pipes_struct *p, struct policy_handle *handle)
/*******************************************************************
********************************************************************/
-WERROR _winreg_UnLoadKey(pipes_struct *p)
+WERROR _winreg_UnLoadKey(pipes_struct *p, struct winreg_UnLoadKey *r)
{
/* fill in your code here if you think this call should
do anything */
@@ -1173,7 +1147,7 @@ WERROR _winreg_UnLoadKey(pipes_struct *p)
/*******************************************************************
********************************************************************/
-WERROR _winreg_ReplaceKey(pipes_struct *p)
+WERROR _winreg_ReplaceKey(pipes_struct *p, struct winreg_ReplaceKey *r)
{
/* fill in your code here if you think this call should
do anything */
@@ -1185,7 +1159,7 @@ WERROR _winreg_ReplaceKey(pipes_struct *p)
/*******************************************************************
********************************************************************/
-WERROR _winreg_LoadKey(pipes_struct *p, struct policy_handle *handle, struct winreg_String *keyname, struct winreg_String *filename)
+WERROR _winreg_LoadKey(pipes_struct *p, struct winreg_LoadKey *r)
{
/* fill in your code here if you think this call should
do anything */
@@ -1197,7 +1171,7 @@ WERROR _winreg_LoadKey(pipes_struct *p, struct policy_handle *handle, struct win
/*******************************************************************
********************************************************************/
-WERROR _winreg_NotifyChangeKeyValue(pipes_struct *p, struct policy_handle *handle, uint8_t watch_subtree, uint32_t notify_filter, uint32_t unknown, struct winreg_String string1, struct winreg_String string2, uint32_t unknown2)
+WERROR _winreg_NotifyChangeKeyValue(pipes_struct *p, struct winreg_NotifyChangeKeyValue *r)
{
/* fill in your code here if you think this call should
do anything */
@@ -1209,7 +1183,7 @@ WERROR _winreg_NotifyChangeKeyValue(pipes_struct *p, struct policy_handle *handl
/*******************************************************************
********************************************************************/
-WERROR _winreg_QueryMultipleValues(pipes_struct *p, struct policy_handle *key_handle, struct QueryMultipleValue *values, uint32_t num_values, uint8_t *buffer, uint32_t *buffer_size)
+WERROR _winreg_QueryMultipleValues(pipes_struct *p, struct winreg_QueryMultipleValues *r)
{
/* fill in your code here if you think this call should
do anything */
@@ -1221,7 +1195,7 @@ WERROR _winreg_QueryMultipleValues(pipes_struct *p, struct policy_handle *key_ha
/*******************************************************************
********************************************************************/
-WERROR _winreg_QueryMultipleValues2(pipes_struct *p)
+WERROR _winreg_QueryMultipleValues2(pipes_struct *p, struct winreg_QueryMultipleValues2 *r)
{
/* fill in your code here if you think this call should
do anything */
diff --git a/source3/rpc_server/srv_wkssvc_nt.c b/source3/rpc_server/srv_wkssvc_nt.c
index 3ed1cbe682..1a827b265b 100644
--- a/source3/rpc_server/srv_wkssvc_nt.c
+++ b/source3/rpc_server/srv_wkssvc_nt.c
@@ -56,14 +56,13 @@ static void create_wks_info_100(struct wkssvc_NetWkstaInfo100 *info100)
only supports info level 100 at the moment.
********************************************************************/
-WERROR _wkssvc_NetWkstaGetInfo( pipes_struct *p, const char *server_name, uint32_t level,
- union wkssvc_NetWkstaInfo *info )
+WERROR _wkssvc_NetWkstaGetInfo( pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r)
{
struct wkssvc_NetWkstaInfo100 *wks100 = NULL;
/* We only support info level 100 currently */
- if ( level != 100 ) {
+ if ( r->in.level != 100 ) {
return WERR_UNKNOWN_LEVEL;
}
@@ -73,7 +72,7 @@ WERROR _wkssvc_NetWkstaGetInfo( pipes_struct *p, const char *server_name, uint32
create_wks_info_100( wks100 );
- info->info100 = wks100;
+ r->out.info->info100 = wks100;
return WERR_OK;
}
@@ -81,9 +80,7 @@ WERROR _wkssvc_NetWkstaGetInfo( pipes_struct *p, const char *server_name, uint32
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetWkstaSetInfo( pipes_struct *p, const char *server_name,
- uint32_t level, union wkssvc_NetWkstaInfo *info,
- uint32_t *parm_error )
+WERROR _wkssvc_NetWkstaSetInfo( pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r)
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -93,12 +90,7 @@ WERROR _wkssvc_NetWkstaSetInfo( pipes_struct *p, const char *server_name,
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetWkstaEnumUsers( pipes_struct *p, const char *server_name,
- uint32_t level,
- union WKS_USER_ENUM_UNION *users,
- uint32_t prefmaxlen, uint32_t *entriesread,
- uint32_t *totalentries,
- uint32_t *resumehandle )
+WERROR _wkssvc_NetWkstaEnumUsers( pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r)
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -108,7 +100,7 @@ WERROR _wkssvc_NetWkstaEnumUsers( pipes_struct *p, const char *server_name,
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRWKSTAUSERGETINFO( pipes_struct *p )
+WERROR _WKSSVC_NETRWKSTAUSERGETINFO( pipes_struct *p, struct WKSSVC_NETRWKSTAUSERGETINFO *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -118,7 +110,7 @@ WERROR _WKSSVC_NETRWKSTAUSERGETINFO( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRWKSTAUSERSETINFO( pipes_struct *p )
+WERROR _WKSSVC_NETRWKSTAUSERSETINFO( pipes_struct *p, struct WKSSVC_NETRWKSTAUSERSETINFO *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -128,7 +120,7 @@ WERROR _WKSSVC_NETRWKSTAUSERSETINFO( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetWkstaTransportEnum( pipes_struct *p, const char *server_name, uint32_t *level, union wkssvc_NetWkstaTransportCtr *ctr, uint32_t max_buffer, uint32_t *totalentries, uint32_t *resume_handle)
+WERROR _wkssvc_NetWkstaTransportEnum( pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r)
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -138,7 +130,7 @@ WERROR _wkssvc_NetWkstaTransportEnum( pipes_struct *p, const char *server_name,
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRWKSTATRANSPORTADD( pipes_struct *p )
+WERROR _WKSSVC_NETRWKSTATRANSPORTADD( pipes_struct *p, struct WKSSVC_NETRWKSTATRANSPORTADD *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -148,7 +140,7 @@ WERROR _WKSSVC_NETRWKSTATRANSPORTADD( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRWKSTATRANSPORTDEL( pipes_struct *p )
+WERROR _WKSSVC_NETRWKSTATRANSPORTDEL( pipes_struct *p, struct WKSSVC_NETRWKSTATRANSPORTDEL *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -158,7 +150,7 @@ WERROR _WKSSVC_NETRWKSTATRANSPORTDEL( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRUSEADD( pipes_struct *p )
+WERROR _WKSSVC_NETRUSEADD( pipes_struct *p, struct WKSSVC_NETRUSEADD *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -168,7 +160,7 @@ WERROR _WKSSVC_NETRUSEADD( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRUSEGETINFO( pipes_struct *p )
+WERROR _WKSSVC_NETRUSEGETINFO( pipes_struct *p, struct WKSSVC_NETRUSEGETINFO *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -178,7 +170,7 @@ WERROR _WKSSVC_NETRUSEGETINFO( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRUSEDEL( pipes_struct *p )
+WERROR _WKSSVC_NETRUSEDEL( pipes_struct *p, struct WKSSVC_NETRUSEDEL *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -188,7 +180,7 @@ WERROR _WKSSVC_NETRUSEDEL( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRUSEENUM( pipes_struct *p )
+WERROR _WKSSVC_NETRUSEENUM( pipes_struct *p, struct WKSSVC_NETRUSEENUM *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -198,7 +190,7 @@ WERROR _WKSSVC_NETRUSEENUM( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRMESSAGEBUFFERSEND( pipes_struct *p )
+WERROR _WKSSVC_NETRMESSAGEBUFFERSEND( pipes_struct *p, struct WKSSVC_NETRMESSAGEBUFFERSEND *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -208,7 +200,7 @@ WERROR _WKSSVC_NETRMESSAGEBUFFERSEND( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET( pipes_struct *p )
+WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET( pipes_struct *p, struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -218,7 +210,7 @@ WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD( pipes_struct *p )
+WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD( pipes_struct *p, struct WKSSVC_NETRLOGONDOMAINNAMEADD *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -228,7 +220,7 @@ WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL( pipes_struct *p )
+WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL( pipes_struct *p, struct WKSSVC_NETRLOGONDOMAINNAMEDEL *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -238,7 +230,7 @@ WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRJOINDOMAIN( pipes_struct *p )
+WERROR _WKSSVC_NETRJOINDOMAIN( pipes_struct *p, struct WKSSVC_NETRJOINDOMAIN *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -248,7 +240,7 @@ WERROR _WKSSVC_NETRJOINDOMAIN( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRUNJOINDOMAIN( pipes_struct *p )
+WERROR _WKSSVC_NETRUNJOINDOMAIN( pipes_struct *p, struct WKSSVC_NETRUNJOINDOMAIN *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -258,7 +250,7 @@ WERROR _WKSSVC_NETRUNJOINDOMAIN( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN( pipes_struct *p )
+WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN( pipes_struct *p, struct WKSSVC_NETRRENAMEMACHINEINDOMAIN *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -268,7 +260,7 @@ WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRVALIDATENAME( pipes_struct *p )
+WERROR _WKSSVC_NETRVALIDATENAME( pipes_struct *p, struct WKSSVC_NETRVALIDATENAME *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -278,7 +270,7 @@ WERROR _WKSSVC_NETRVALIDATENAME( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRGETJOININFORMATION( pipes_struct *p )
+WERROR _WKSSVC_NETRGETJOININFORMATION( pipes_struct *p, struct WKSSVC_NETRGETJOININFORMATION *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -288,7 +280,7 @@ WERROR _WKSSVC_NETRGETJOININFORMATION( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRGETJOINABLEOUS( pipes_struct *p )
+WERROR _WKSSVC_NETRGETJOINABLEOUS( pipes_struct *p, struct WKSSVC_NETRGETJOINABLEOUS *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -298,7 +290,7 @@ WERROR _WKSSVC_NETRGETJOINABLEOUS( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p, const char *server_name, const char *domain_name, const char *account_name, const char *admin_account, struct wkssvc_PasswordBuffer *encrypted_password, uint32_t join_flags)
+WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p, struct wkssvc_NetrJoinDomain2 *r)
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -308,7 +300,7 @@ WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p, const char *server_name, const c
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p, const char *server_name, const char *account, struct wkssvc_PasswordBuffer *encrypted_password, uint32_t unjoin_flags)
+WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p, struct wkssvc_NetrUnjoinDomain2 *r)
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -318,7 +310,7 @@ WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p, const char *server_name, const
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, const char *server_name, const char *NewMachineName, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t RenameOptions)
+WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain2 *r)
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -328,7 +320,7 @@ WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, const char *server_na
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRVALIDATENAME2( pipes_struct *p )
+WERROR _WKSSVC_NETRVALIDATENAME2( pipes_struct *p, struct WKSSVC_NETRVALIDATENAME2 *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -338,7 +330,7 @@ WERROR _WKSSVC_NETRVALIDATENAME2( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRGETJOINABLEOUS2( pipes_struct *p )
+WERROR _WKSSVC_NETRGETJOINABLEOUS2( pipes_struct *p, struct WKSSVC_NETRGETJOINABLEOUS2 *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -348,7 +340,7 @@ WERROR _WKSSVC_NETRGETJOINABLEOUS2( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, const char *server_name, const char *NewAlternateMachineName, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t Reserved)
+WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -358,7 +350,7 @@ WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, const char *server_
/********************************************************************
********************************************************************/
-WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, const char *server_name, const char *AlternateMachineNameToRemove, const char *Account, struct wkssvc_PasswordBuffer *EncryptedPassword, uint32_t Reserved)
+WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_NetrRemoveAlternateComputerName *r)
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -368,7 +360,7 @@ WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, const char *serv
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME( pipes_struct *p )
+WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME( pipes_struct *p, struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;
@@ -378,7 +370,7 @@ WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME( pipes_struct *p )
/********************************************************************
********************************************************************/
-WERROR _WKSSVC_NETRENUMERATECOMPUTERNAMES( pipes_struct *p )
+WERROR _WKSSVC_NETRENUMERATECOMPUTERNAMES( pipes_struct *p, struct WKSSVC_NETRENUMERATECOMPUTERNAMES *r )
{
/* FIXME: Add implementation code here */
p->rng_fault_state = True;