зарегистрировал вот я драйвер beeper.sys этой программой: (с KmdKit) Код (Text): .386 .model flat, stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc include \masm32\include\advapi32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\advapi32.lib include \masm32\Macros\Strings.mac .code start proc local hSCManager:HANDLE local hService:HANDLE local acDriverPath[MAX_PATH]:CHAR invoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE .if eax != NULL mov hSCManager, eax push eax invoke GetFullPathName, $CTA0("tester.sys"), sizeof acDriverPath, addr acDriverPath, esp pop eax invoke CreateService, hSCManager, $CTA0("tester"), $CTA0("Nice Melody tester"), \ SERVICE_START + DELETE, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \ SERVICE_ERROR_IGNORE, addr acDriverPath, NULL, NULL, NULL, NULL, NULL .if eax != NULL mov hService, eax invoke StartService, hService, 0, NULL invoke DeleteService, hService invoke CloseServiceHandle, hService .else invoke MessageBox, NULL, $CTA0("Can't register driver."), NULL, MB_ICONSTOP .endif invoke CloseServiceHandle, hSCManager .else invoke MessageBox, NULL, $CTA0("Can't connect to Service Control Manager."), \ NULL, MB_ICONSTOP .endif invoke ExitProcess, 0 start endp end start а вот теперь хочу попробовать свой простой драйвер написать, но не регистрировать новый, а этот beeper.sys изменить и проверить... но пишет "Can't register driver." как удалить старый, чтоб зарегить новый? пробовал OpenService и DeleteService - не получилось... ф-ия DeleteService вернула 0, а это значит, что ошибка и длайвер не удалился... подскажите, плиз, как его удалить?
Код (Text): BOOL RemoveDriver(SC_HANDLE scm, LPCTSTR DriverName) { SC_HANDLE Service = OpenService (scm, DriverName, SERVICE_ALL_ACCESS); if (Service == NULL) return FALSE; BOOL ret = DeleteService (Service); if (!ret) { } CloseServiceHandle (Service); return ret; }