summaryrefslogtreecommitdiff
path: root/source/rpc_server/srv_svcctl_nt.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/rpc_server/srv_svcctl_nt.c')
-rw-r--r--source/rpc_server/srv_svcctl_nt.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/source/rpc_server/srv_svcctl_nt.c b/source/rpc_server/srv_svcctl_nt.c
index 6bb538a311..446fa4b16f 100644
--- a/source/rpc_server/srv_svcctl_nt.c
+++ b/source/rpc_server/srv_svcctl_nt.c
@@ -529,13 +529,11 @@ WERROR _svcctl_ControlService(pipes_struct *p,
}
/********************************************************************
- _svcctl_EnumDependentServicesW
********************************************************************/
-WERROR _svcctl_EnumDependentServicesW(pipes_struct *p,
- struct svcctl_EnumDependentServicesW *r)
+WERROR _svcctl_enum_dependent_services( pipes_struct *p, SVCCTL_Q_ENUM_DEPENDENT_SERVICES *q_u, SVCCTL_R_ENUM_DEPENDENT_SERVICES *r_u )
{
- SERVICE_INFO *info = find_service_info_by_hnd( p, r->in.service );
+ SERVICE_INFO *info = find_service_info_by_hnd( p, &q_u->handle );
/* perform access checks */
@@ -547,12 +545,13 @@ WERROR _svcctl_EnumDependentServicesW(pipes_struct *p,
/* we have to set the outgoing buffer size to the same as the
incoming buffer size (even in the case of failure */
- /* this is done in the autogenerated server already - gd */
- *r->out.bytes_needed = r->in.buf_size;
+ rpcbuf_init( &r_u->buffer, q_u->buffer_size, p->mem_ctx );
+
+ r_u->needed = q_u->buffer_size;
/* no dependent services...basically a stub function */
- *r->out.services_returned = 0;
+ r_u->returned = 0;
return WERR_OK;
}
@@ -951,6 +950,12 @@ WERROR _svcctl_CreateServiceW(pipes_struct *p, struct svcctl_CreateServiceW *r)
return WERR_NOT_SUPPORTED;
}
+WERROR _svcctl_EnumDependentServicesW(pipes_struct *p, struct svcctl_EnumDependentServicesW *r)
+{
+ p->rng_fault_state = True;
+ return WERR_NOT_SUPPORTED;
+}
+
WERROR _svcctl_EnumServicesStatusW(pipes_struct *p, struct svcctl_EnumServicesStatusW *r)
{
p->rng_fault_state = True;