Код: Выделить всё
BOOL StopDriver(SC_HANDLE scm, LPCTSTR DriverName)
{
SC_HANDLE Service =
OpenService (scm, DriverName, SERVICE_ALL_ACCESS );
SERVICE_STATUS serviceStatus;
BOOL ret =
ControlService(Service, SERVICE_CONTROL_STOP, &serviceStatus);
CloseServiceHandle (Service);
return ret;
}
Код: Выделить всё
#pragma code_seg("PAGE")
VOID UnloadRoutine(IN PDRIVER_OBJECT pDriverObject)
{
PDEVICE_OBJECT pNextDevObj;
int i;
#if DBG
DbgPrint("-Example- In Unload Routine.");
#endif
pNextDevObj = pDriverObject->DeviceObject;
for(i=0; pNextDevObj!=NULL; i++)
{
PEXAMPLE_DEVICE_EXTENSION dx =
(PEXAMPLE_DEVICE_EXTENSION)pNextDevObj->DeviceExtension;
UNICODE_STRING *pLinkName = & (dx->ustrSymLinkName);
pNextDevObj = pNextDevObj->NextDevice;
IoDeleteSymbolicLink(pLinkName);
IoDeleteDevice( dx->fdo);
}
}
#pragma code_seg()