Suppression d’un service
Un programme de configuration de service utilise la fonction OpenService pour obtenir un handle sur un objet de service installé. Le programme peut ensuite utiliser le handle d’objet de service dans la fonction DeleteService pour supprimer le service de la base de données SCM.
La fonction DoDeleteSvc dans l’exemple suivant montre comment supprimer un service de la base de données SCM. La variable szSvcName est une variable globale qui contient le nom du service à supprimer. Pour obtenir l’exemple complet qui définit cette variable, consultez SvcConfig.cpp.
//
// Purpose:
// Deletes a service from the SCM database
//
// Parameters:
// None
//
// Return value:
// None
//
VOID __stdcall DoDeleteSvc()
{
SC_HANDLE schSCManager;
SC_HANDLE schService;
SERVICE_STATUS ssStatus;
// Get a handle to the SCM database.
schSCManager = OpenSCManager(
NULL, // local computer
NULL, // ServicesActive database
SC_MANAGER_ALL_ACCESS); // full access rights
if (NULL == schSCManager)
{
printf("OpenSCManager failed (%d)\n", GetLastError());
return;
}
// Get a handle to the service.
schService = OpenService(
schSCManager, // SCM database
szSvcName, // name of service
DELETE); // need delete access
if (schService == NULL)
{
printf("OpenService failed (%d)\n", GetLastError());
CloseServiceHandle(schSCManager);
return;
}
// Delete the service.
if (! DeleteService(schService) )
{
printf("DeleteService failed (%d)\n", GetLastError());
}
else printf("Service deleted successfully\n");
CloseServiceHandle(schService);
CloseServiceHandle(schSCManager);
}
Rubriques connexes