2006-09-20 16:32:29 +00:00
/*
* Unix SMB / CIFS implementation .
* client auto - generated by pidl . DO NOT MODIFY !
*/
# include "includes.h"
# include "librpc/gen_ndr/cli_svcctl.h"
NTSTATUS rpccli_svcctl_CloseServiceHandle ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle )
{
struct svcctl_CloseServiceHandle r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_CloseServiceHandle , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CLOSESERVICEHANDLE , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_CloseServiceHandle , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* handle = * r . out . handle ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-05-31 15:46:01 +00:00
NTSTATUS rpccli_svcctl_ControlService ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t control , struct SERVICE_STATUS * service_status )
2006-09-20 16:32:29 +00:00
{
struct svcctl_ControlService r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . control = control ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_ControlService , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CONTROLSERVICE , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_ControlService , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-05-31 15:46:01 +00:00
* service_status = * r . out . service_status ;
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_DeleteService ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle )
{
struct svcctl_DeleteService r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_DeleteService , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_DELETESERVICE , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_DeleteService , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_LockServiceDatabase ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , struct policy_handle * lock )
{
struct svcctl_LockServiceDatabase r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_LockServiceDatabase , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_LOCKSERVICEDATABASE , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_LockServiceDatabase , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* lock = * r . out . lock ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx )
{
struct svcctl_QueryServiceObjectSecurity r ;
NTSTATUS status ;
/* In parameters */
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceObjectSecurity , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICEOBJECTSECURITY , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceObjectSecurity , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_SetServiceObjectSecurity ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx )
{
struct svcctl_SetServiceObjectSecurity r ;
NTSTATUS status ;
/* In parameters */
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_SetServiceObjectSecurity , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_SETSERVICEOBJECTSECURITY , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_SetServiceObjectSecurity , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-05-31 15:46:01 +00:00
NTSTATUS rpccli_svcctl_QueryServiceStatus ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , struct SERVICE_STATUS * service_status )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceStatus r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceStatus , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICESTATUS , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceStatus , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-05-31 15:46:01 +00:00
* service_status = * r . out . service_status ;
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_SetServiceStatus ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx )
{
struct svcctl_SetServiceStatus r ;
NTSTATUS status ;
/* In parameters */
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_SetServiceStatus , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_SETSERVICESTATUS , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_SetServiceStatus , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_UnlockServiceDatabase ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * lock )
{
struct svcctl_UnlockServiceDatabase r ;
NTSTATUS status ;
/* In parameters */
r . in . lock = lock ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_UnlockServiceDatabase , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_UNLOCKSERVICEDATABASE , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_UnlockServiceDatabase , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* lock = * r . out . lock ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_NotifyBootConfigStatus ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx )
{
struct svcctl_NotifyBootConfigStatus r ;
NTSTATUS status ;
/* In parameters */
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_NotifyBootConfigStatus , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_NOTIFYBOOTCONFIGSTATUS , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_NotifyBootConfigStatus , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_SCSetServiceBitsW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t bits , uint32_t bitson , uint32_t immediate )
{
struct svcctl_SCSetServiceBitsW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . bits = bits ;
r . in . bitson = bitson ;
r . in . immediate = immediate ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_SCSetServiceBitsW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_SCSETSERVICEBITSW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_SCSetServiceBitsW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_ChangeServiceConfigW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t type , uint32_t start , uint32_t error , const char * binary_path , const char * load_order_group , uint32_t * tag_id , const char * dependencies , const char * service_start_name , const char * password , const char * display_name )
{
struct svcctl_ChangeServiceConfigW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . type = type ;
r . in . start = start ;
r . in . error = error ;
r . in . binary_path = binary_path ;
r . in . load_order_group = load_order_group ;
r . in . dependencies = dependencies ;
r . in . service_start_name = service_start_name ;
r . in . password = password ;
r . in . display_name = display_name ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_ChangeServiceConfigW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CHANGESERVICECONFIGW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_ChangeServiceConfigW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* tag_id = * r . out . tag_id ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_CreateServiceW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * scmanager_handle , const char * ServiceName , const char * DisplayName , uint32_t desired_access , uint32_t type , uint32_t start_type , uint32_t error_control , const char * binary_path , const char * LoadOrderGroupKey , uint32_t * TagId , uint8_t * dependencies , uint32_t dependencies_size , const char * service_start_name , uint8_t * password , uint32_t password_size , struct policy_handle * handle )
2006-09-20 16:32:29 +00:00
{
struct svcctl_CreateServiceW r ;
NTSTATUS status ;
/* In parameters */
r . in . scmanager_handle = scmanager_handle ;
r . in . ServiceName = ServiceName ;
r . in . DisplayName = DisplayName ;
r . in . desired_access = desired_access ;
r . in . type = type ;
r . in . start_type = start_type ;
r . in . error_control = error_control ;
r . in . binary_path = binary_path ;
r . in . LoadOrderGroupKey = LoadOrderGroupKey ;
2007-01-16 15:42:03 +00:00
r . in . TagId = TagId ;
2006-09-20 16:32:29 +00:00
r . in . dependencies = dependencies ;
r . in . dependencies_size = dependencies_size ;
r . in . service_start_name = service_start_name ;
r . in . password = password ;
r . in . password_size = password_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_CreateServiceW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CREATESERVICEW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_CreateServiceW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-10-17 10:35:51 +02:00
if ( TagId & & r . out . TagId ) {
2007-01-16 15:42:03 +00:00
* TagId = * r . out . TagId ;
}
2006-09-20 16:32:29 +00:00
* handle = * r . out . handle ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-05-31 15:46:01 +00:00
NTSTATUS rpccli_svcctl_EnumDependentServicesW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * service , uint32_t state , struct ENUM_SERVICE_STATUS * service_status , uint32_t buf_size , uint32_t * bytes_needed , uint32_t * services_returned )
2006-09-20 16:32:29 +00:00
{
struct svcctl_EnumDependentServicesW r ;
NTSTATUS status ;
/* In parameters */
r . in . service = service ;
r . in . state = state ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_EnumDependentServicesW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_ENUMDEPENDENTSERVICESW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_EnumDependentServicesW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-10-17 10:35:51 +02:00
if ( service_status & & r . out . service_status ) {
2007-05-31 15:46:01 +00:00
* service_status = * r . out . service_status ;
2007-01-16 15:42:03 +00:00
}
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
* services_returned = * r . out . services_returned ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_EnumServicesStatusW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t type , uint32_t state , uint32_t buf_size , uint8_t * service , uint32_t * bytes_needed , uint32_t * services_returned , uint32_t * resume_handle )
2006-09-20 16:32:29 +00:00
{
struct svcctl_EnumServicesStatusW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . type = type ;
r . in . state = state ;
r . in . buf_size = buf_size ;
2007-01-16 15:42:03 +00:00
r . in . resume_handle = resume_handle ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_EnumServicesStatusW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_ENUMSERVICESSTATUSW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_EnumServicesStatusW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( service , r . out . service , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
* services_returned = * r . out . services_returned ;
2007-10-17 10:35:51 +02:00
if ( resume_handle & & r . out . resume_handle ) {
2007-01-16 15:42:03 +00:00
* resume_handle = * r . out . resume_handle ;
}
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_OpenSCManagerW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , const char * MachineName , const char * DatabaseName , uint32_t access_mask , struct policy_handle * handle )
{
struct svcctl_OpenSCManagerW r ;
NTSTATUS status ;
/* In parameters */
r . in . MachineName = MachineName ;
r . in . DatabaseName = DatabaseName ;
r . in . access_mask = access_mask ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_OpenSCManagerW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_OPENSCMANAGERW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_OpenSCManagerW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* handle = * r . out . handle ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_OpenServiceW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * scmanager_handle , const char * ServiceName , uint32_t access_mask , struct policy_handle * handle )
{
struct svcctl_OpenServiceW r ;
NTSTATUS status ;
/* In parameters */
r . in . scmanager_handle = scmanager_handle ;
r . in . ServiceName = ServiceName ;
r . in . access_mask = access_mask ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_OpenServiceW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_OPENSERVICEW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_OpenServiceW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* handle = * r . out . handle ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_QueryServiceConfigW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint8_t * query , uint32_t buf_size , uint32_t * bytes_needed )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceConfigW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceConfigW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICECONFIGW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceConfigW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( query , r . out . query , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-05-31 15:46:01 +00:00
NTSTATUS rpccli_svcctl_QueryServiceLockStatusW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t buf_size , struct SERVICE_LOCK_STATUS * lock_status , uint32_t * required_buf_size )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceLockStatusW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceLockStatusW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICELOCKSTATUSW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceLockStatusW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-05-31 15:46:01 +00:00
* lock_status = * r . out . lock_status ;
2006-09-20 16:32:29 +00:00
* required_buf_size = * r . out . required_buf_size ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_StartServiceW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t NumArgs , const char * Arguments )
{
struct svcctl_StartServiceW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . NumArgs = NumArgs ;
r . in . Arguments = Arguments ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_StartServiceW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_STARTSERVICEW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_StartServiceW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_GetServiceDisplayNameW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , const char * service_name , const char * * display_name , uint32_t * display_name_length )
2006-09-20 16:32:29 +00:00
{
struct svcctl_GetServiceDisplayNameW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . service_name = service_name ;
2007-01-16 15:42:03 +00:00
r . in . display_name_length = display_name_length ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_GetServiceDisplayNameW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_GETSERVICEDISPLAYNAMEW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_GetServiceDisplayNameW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* display_name = * r . out . display_name ;
2007-10-17 10:35:51 +02:00
if ( display_name_length & & r . out . display_name_length ) {
2007-01-16 15:42:03 +00:00
* display_name_length = * r . out . display_name_length ;
}
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_GetServiceKeyNameW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , const char * service_name , const char * * key_name , uint32_t * display_name_length )
2006-09-20 16:32:29 +00:00
{
struct svcctl_GetServiceKeyNameW r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . service_name = service_name ;
2007-01-16 15:42:03 +00:00
r . in . display_name_length = display_name_length ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_GetServiceKeyNameW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_GETSERVICEKEYNAMEW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_GetServiceKeyNameW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* key_name = * r . out . key_name ;
2007-10-17 10:35:51 +02:00
if ( display_name_length & & r . out . display_name_length ) {
2007-01-16 15:42:03 +00:00
* display_name_length = * r . out . display_name_length ;
}
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_SCSetServiceBitsA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t bits , uint32_t bitson , uint32_t immediate )
{
struct svcctl_SCSetServiceBitsA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . bits = bits ;
r . in . bitson = bitson ;
r . in . immediate = immediate ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_SCSetServiceBitsA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_SCSETSERVICEBITSA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_SCSetServiceBitsA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_ChangeServiceConfigA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t type , uint32_t start , uint32_t error , const char * binary_path , const char * load_order_group , uint32_t * tag_id , const char * dependencies , const char * service_start_name , const char * password , const char * display_name )
{
struct svcctl_ChangeServiceConfigA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . type = type ;
r . in . start = start ;
r . in . error = error ;
r . in . binary_path = binary_path ;
r . in . load_order_group = load_order_group ;
r . in . dependencies = dependencies ;
r . in . service_start_name = service_start_name ;
r . in . password = password ;
r . in . display_name = display_name ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_ChangeServiceConfigA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CHANGESERVICECONFIGA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_ChangeServiceConfigA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* tag_id = * r . out . tag_id ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_CreateServiceA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , const char * ServiceName , const char * DisplayName , uint32_t desired_access , uint32_t type , uint32_t start_type , uint32_t error_control , const char * binary_path , const char * LoadOrderGroupKey , uint32_t * TagId , const char * dependencies , const char * service_start_name , const char * password )
2006-09-20 16:32:29 +00:00
{
struct svcctl_CreateServiceA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . ServiceName = ServiceName ;
r . in . DisplayName = DisplayName ;
r . in . desired_access = desired_access ;
r . in . type = type ;
r . in . start_type = start_type ;
r . in . error_control = error_control ;
r . in . binary_path = binary_path ;
r . in . LoadOrderGroupKey = LoadOrderGroupKey ;
r . in . dependencies = dependencies ;
r . in . service_start_name = service_start_name ;
r . in . password = password ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_CreateServiceA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CREATESERVICEA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_CreateServiceA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-10-17 10:35:51 +02:00
if ( TagId & & r . out . TagId ) {
2007-01-16 15:42:03 +00:00
* TagId = * r . out . TagId ;
}
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-05-31 15:46:01 +00:00
NTSTATUS rpccli_svcctl_EnumDependentServicesA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * service , uint32_t state , struct ENUM_SERVICE_STATUS * service_status , uint32_t buf_size , uint32_t * bytes_needed , uint32_t * services_returned )
2006-09-20 16:32:29 +00:00
{
struct svcctl_EnumDependentServicesA r ;
NTSTATUS status ;
/* In parameters */
r . in . service = service ;
r . in . state = state ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_EnumDependentServicesA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_ENUMDEPENDENTSERVICESA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_EnumDependentServicesA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-10-17 10:35:51 +02:00
if ( service_status & & r . out . service_status ) {
2007-05-31 15:46:01 +00:00
* service_status = * r . out . service_status ;
2007-01-16 15:42:03 +00:00
}
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
* services_returned = * r . out . services_returned ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_EnumServicesStatusA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t type , uint32_t state , uint32_t buf_size , uint8_t * service , uint32_t * bytes_needed , uint32_t * services_returned , uint32_t * resume_handle )
2006-09-20 16:32:29 +00:00
{
struct svcctl_EnumServicesStatusA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . type = type ;
r . in . state = state ;
r . in . buf_size = buf_size ;
2007-01-16 15:42:03 +00:00
r . in . resume_handle = resume_handle ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_EnumServicesStatusA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_ENUMSERVICESSTATUSA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_EnumServicesStatusA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( service , r . out . service , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
* services_returned = * r . out . services_returned ;
2007-10-17 10:35:51 +02:00
if ( resume_handle & & r . out . resume_handle ) {
2007-01-16 15:42:03 +00:00
* resume_handle = * r . out . resume_handle ;
}
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_OpenSCManagerA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , const char * MachineName , const char * DatabaseName , uint32_t access_mask , struct policy_handle * handle )
{
struct svcctl_OpenSCManagerA r ;
NTSTATUS status ;
/* In parameters */
r . in . MachineName = MachineName ;
r . in . DatabaseName = DatabaseName ;
r . in . access_mask = access_mask ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_OpenSCManagerA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_OPENSCMANAGERA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_OpenSCManagerA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* handle = * r . out . handle ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_OpenServiceA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * scmanager_handle , const char * ServiceName , uint32_t access_mask )
{
struct svcctl_OpenServiceA r ;
NTSTATUS status ;
/* In parameters */
r . in . scmanager_handle = scmanager_handle ;
r . in . ServiceName = ServiceName ;
r . in . access_mask = access_mask ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_OpenServiceA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_OPENSERVICEA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_OpenServiceA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_QueryServiceConfigA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint8_t * query , uint32_t buf_size , uint32_t * bytes_needed )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceConfigA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceConfigA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICECONFIGA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceConfigA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( query , r . out . query , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-05-31 15:46:01 +00:00
NTSTATUS rpccli_svcctl_QueryServiceLockStatusA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t buf_size , struct SERVICE_LOCK_STATUS * lock_status , uint32_t * required_buf_size )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceLockStatusA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceLockStatusA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICELOCKSTATUSA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceLockStatusA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-05-31 15:46:01 +00:00
* lock_status = * r . out . lock_status ;
2006-09-20 16:32:29 +00:00
* required_buf_size = * r . out . required_buf_size ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_StartServiceA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t NumArgs , const char * Arguments )
{
struct svcctl_StartServiceA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . NumArgs = NumArgs ;
r . in . Arguments = Arguments ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_StartServiceA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_STARTSERVICEA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_StartServiceA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_GetServiceDisplayNameA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , const char * service_name , const char * * display_name , uint32_t * display_name_length )
2006-09-20 16:32:29 +00:00
{
struct svcctl_GetServiceDisplayNameA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . service_name = service_name ;
2007-01-16 15:42:03 +00:00
r . in . display_name_length = display_name_length ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_GetServiceDisplayNameA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_GETSERVICEDISPLAYNAMEA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_GetServiceDisplayNameA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* display_name = * r . out . display_name ;
2007-10-17 10:35:51 +02:00
if ( display_name_length & & r . out . display_name_length ) {
2007-01-16 15:42:03 +00:00
* display_name_length = * r . out . display_name_length ;
}
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_GetServiceKeyNameA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , const char * service_name , const char * * key_name , uint32_t * display_name_length )
2006-09-20 16:32:29 +00:00
{
struct svcctl_GetServiceKeyNameA r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . service_name = service_name ;
2007-01-16 15:42:03 +00:00
r . in . display_name_length = display_name_length ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_GetServiceKeyNameA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_GETSERVICEKEYNAMEA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_GetServiceKeyNameA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
* key_name = * r . out . key_name ;
2007-10-17 10:35:51 +02:00
if ( display_name_length & & r . out . display_name_length ) {
2007-01-16 15:42:03 +00:00
* display_name_length = * r . out . display_name_length ;
}
2006-09-20 16:32:29 +00:00
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_GetCurrentGroupeStateW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx )
{
struct svcctl_GetCurrentGroupeStateW r ;
NTSTATUS status ;
/* In parameters */
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_GetCurrentGroupeStateW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_GETCURRENTGROUPESTATEW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_GetCurrentGroupeStateW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_EnumServiceGroupW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx )
{
struct svcctl_EnumServiceGroupW r ;
NTSTATUS status ;
/* In parameters */
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_EnumServiceGroupW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_ENUMSERVICEGROUPW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_EnumServiceGroupW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_ChangeServiceConfig2A ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t info_level , uint8_t * info )
{
struct svcctl_ChangeServiceConfig2A r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . info_level = info_level ;
r . in . info = info ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_ChangeServiceConfig2A , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CHANGESERVICECONFIG2A , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_ChangeServiceConfig2A , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_ChangeServiceConfig2W ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t info_level , uint8_t * info )
{
struct svcctl_ChangeServiceConfig2W r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . info_level = info_level ;
r . in . info = info ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_ChangeServiceConfig2W , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_CHANGESERVICECONFIG2W , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_ChangeServiceConfig2W , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_QueryServiceConfig2A ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t info_level , uint8_t * buffer , uint32_t buf_size , uint32_t * bytes_needed )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceConfig2A r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . info_level = info_level ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceConfig2A , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICECONFIG2A , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceConfig2A , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( buffer , r . out . buffer , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_QueryServiceConfig2W ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t info_level , uint8_t * buffer , uint32_t buf_size , uint32_t * bytes_needed )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceConfig2W r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . info_level = info_level ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceConfig2W , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICECONFIG2W , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceConfig2W , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( buffer , r . out . buffer , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_svcctl_QueryServiceStatusEx ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * handle , uint32_t info_level , uint8_t * buffer , uint32_t buf_size , uint32_t * bytes_needed )
2006-09-20 16:32:29 +00:00
{
struct svcctl_QueryServiceStatusEx r ;
NTSTATUS status ;
/* In parameters */
r . in . handle = handle ;
r . in . info_level = info_level ;
r . in . buf_size = buf_size ;
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_QueryServiceStatusEx , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_QUERYSERVICESTATUSEX , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_QueryServiceStatusEx , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( buffer , r . out . buffer , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_EnumServicesStatusExA ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * scmanager , uint32_t info_level , uint32_t type , uint32_t state , uint8_t * services , uint32_t buf_size , uint32_t * bytes_needed , uint32_t * service_returned , uint32_t * resume_handle , const char * * group_name )
2006-09-20 16:32:29 +00:00
{
struct EnumServicesStatusExA r ;
NTSTATUS status ;
/* In parameters */
r . in . scmanager = scmanager ;
r . in . info_level = info_level ;
r . in . type = type ;
r . in . state = state ;
r . in . buf_size = buf_size ;
2007-01-16 15:42:03 +00:00
r . in . resume_handle = resume_handle ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( EnumServicesStatusExA , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_ENUMSERVICESSTATUSEXA , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( EnumServicesStatusExA , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( services , r . out . services , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
* service_returned = * r . out . service_returned ;
2007-10-17 10:35:51 +02:00
if ( resume_handle & & r . out . resume_handle ) {
2007-01-16 15:42:03 +00:00
* resume_handle = * r . out . resume_handle ;
}
2006-09-20 16:32:29 +00:00
* group_name = * r . out . group_name ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
2007-01-16 15:42:03 +00:00
NTSTATUS rpccli_EnumServicesStatusExW ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , struct policy_handle * scmanager , uint32_t info_level , uint32_t type , uint32_t state , uint8_t * services , uint32_t buf_size , uint32_t * bytes_needed , uint32_t * service_returned , uint32_t * resume_handle , const char * * group_name )
2006-09-20 16:32:29 +00:00
{
struct EnumServicesStatusExW r ;
NTSTATUS status ;
/* In parameters */
r . in . scmanager = scmanager ;
r . in . info_level = info_level ;
r . in . type = type ;
r . in . state = state ;
r . in . buf_size = buf_size ;
2007-01-16 15:42:03 +00:00
r . in . resume_handle = resume_handle ;
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( EnumServicesStatusExW , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_ENUMSERVICESSTATUSEXW , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( EnumServicesStatusExW , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
2007-02-16 14:50:57 +00:00
memcpy ( services , r . out . services , r . in . buf_size ) ;
2006-09-20 16:32:29 +00:00
* bytes_needed = * r . out . bytes_needed ;
* service_returned = * r . out . service_returned ;
2007-10-17 10:35:51 +02:00
if ( resume_handle & & r . out . resume_handle ) {
2007-01-16 15:42:03 +00:00
* resume_handle = * r . out . resume_handle ;
}
2006-09-20 16:32:29 +00:00
* group_name = * r . out . group_name ;
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}
NTSTATUS rpccli_svcctl_SCSendTSMessage ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx )
{
struct svcctl_SCSendTSMessage r ;
NTSTATUS status ;
/* In parameters */
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_IN_DEBUG ( svcctl_SCSendTSMessage , & r ) ;
2007-08-21 12:20:33 +00:00
status = cli_do_rpc_ndr ( cli , mem_ctx , PI_SVCCTL , & ndr_table_svcctl , NDR_SVCCTL_SCSENDTSMESSAGE , & r ) ;
2006-09-20 16:32:29 +00:00
2007-02-16 14:50:57 +00:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-09-28 21:19:08 +00:00
return status ;
}
2006-09-20 16:32:29 +00:00
if ( DEBUGLEVEL > = 10 )
NDR_PRINT_OUT_DEBUG ( svcctl_SCSendTSMessage , & r ) ;
if ( NT_STATUS_IS_ERR ( status ) ) {
return status ;
}
/* Return variables */
/* Return result */
return werror_to_ntstatus ( r . out . result ) ;
}