Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Dienstkonfigurationsprogramm verwendet die OpenService-Funktion , um ein Handle für ein installiertes Dienstobjekt abzurufen. Das Programm kann dann das Dienstobjekthandle in der DeleteService-Funktion verwenden, um den Dienst aus der SCM-Datenbank zu löschen.
Die DoDeleteSvc-Funktion im folgenden Beispiel zeigt, wie ein Dienst aus der SCM-Datenbank gelöscht wird. Die variable szSvcName ist eine globale Variable, die den Namen des zu löschenden Diensts enthält. Das vollständige Beispiel, das diese Variable festlegt, finden Sie unter 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);
}
Zugehörige Themen