Sending Control Requests to a Service

The following example uses the ControlService function to send a control value to a running service. Different control values require different levels of access to the service object. For example, a service object handle must have SERVICE_STOP access to send the SERVICE_CONTROL_STOP code. When ControlService returns, a SERVICE_STATUS structure contains the latest status information for the service.

VOID ControlSampleService(DWORD fdwControl)

{

SERVICE_STATUS ssStatus;

DWORD fdwAccess;

// The required service object access depends on the control.

switch (fdwControl)

{

case SERVICE_CONTROL_STOP:

fdwAccess = SERVICE_STOP;

break;

case SERVICE_CONTROL_PAUSE:

case SERVICE_CONTROL_CONTINUE:

fdwAccess = SERVICE_PAUSE_CONTINUE;

break;

case SERVICE_CONTROL_INTERROGATE:

fdwAccess = SERVICE_INTERROGATE;

break;

default:

fdwAccess = SERVICE_INTERROGATE;

}

// Open a handle to the service.

schService = OpenService(

schSCManager, // SCManager database

TEXT("Sample_Srv"), // name of service

fdwAccess); // specify access

if (schService == NULL)

MyErrorExit("OpenService");

// Send a control value to the service.

if (! ControlService(

schService, // handle of service

fdwControl, // control value to send

&ssStatus) ) // address of status info

{

MyErrorExit("ControlService");

}

// Print the service status.

printf("\nStatus of Sample_Srv: \n");

printf(" Service Type: 0x%x\n", ssStatus.dwServiceType);

printf(" Current State: 0x%x\n", ssStatus.dwCurrentState);

printf(" Controls Accepted: 0x%x\n",

ssStatus.dwControlsAccepted);

printf(" Exit Code: %d\n", ssStatus.dwWin32ExitCode);

printf(" Service Specific Exit Code: %d\n",

ssStatus.dwServiceSpecificExitCode);

printf(" Check Point: %d\n", ssStatus.dwCheckPoint);

printf(" Wait Hint: %d\n", ssStatus.dwWaitHint);

return;

}

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database