diff options
Diffstat (limited to 'source/rpc_server/srv_svcctl_nt.c')
-rw-r--r-- | source/rpc_server/srv_svcctl_nt.c | 19 |
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; |