как отменить регистрацию драйвера...

Тема в разделе "WASM.BEGINNERS", создана пользователем Necromancer13, 18 ноя 2007.

  1. Necromancer13

    Necromancer13 Виталий

    Публикаций:
    0
    зарегистрировал вот я драйвер beeper.sys
    этой программой: (с KmdKit)

    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap:none
    4.  
    5.  
    6. include \masm32\include\windows.inc
    7.  
    8. include \masm32\include\kernel32.inc
    9. include \masm32\include\user32.inc
    10. include \masm32\include\advapi32.inc
    11.  
    12. includelib \masm32\lib\kernel32.lib
    13. includelib \masm32\lib\user32.lib
    14. includelib \masm32\lib\advapi32.lib
    15.  
    16. include \masm32\Macros\Strings.mac
    17.  
    18.  
    19. .code
    20.  
    21. start proc
    22.  
    23. local hSCManager:HANDLE
    24. local hService:HANDLE
    25. local acDriverPath[MAX_PATH]:CHAR
    26.  
    27.     invoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE
    28.     .if eax != NULL
    29.         mov hSCManager, eax
    30.  
    31.         push eax
    32.         invoke GetFullPathName, $CTA0("tester.sys"), sizeof acDriverPath, addr acDriverPath, esp
    33.         pop eax
    34.  
    35.         invoke CreateService, hSCManager, $CTA0("tester"), $CTA0("Nice Melody tester"), \
    36.                 SERVICE_START + DELETE, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \
    37.                 SERVICE_ERROR_IGNORE, addr acDriverPath, NULL, NULL, NULL, NULL, NULL
    38.         .if eax != NULL
    39.             mov hService, eax
    40.             invoke StartService, hService, 0, NULL
    41.             invoke DeleteService, hService
    42.             invoke CloseServiceHandle, hService
    43.         .else
    44.             invoke MessageBox, NULL, $CTA0("Can't register driver."), NULL, MB_ICONSTOP
    45.         .endif
    46.         invoke CloseServiceHandle, hSCManager
    47.     .else
    48.         invoke MessageBox, NULL, $CTA0("Can't connect to Service Control Manager."), \
    49.                             NULL, MB_ICONSTOP
    50.     .endif
    51.  
    52.     invoke ExitProcess, 0
    53.  
    54. start endp
    55.  
    56. end start
    а вот теперь хочу попробовать свой простой драйвер написать, но не регистрировать новый, а этот beeper.sys изменить и проверить...
    но пишет "Can't register driver."
    как удалить старый, чтоб зарегить новый?:)
    пробовал OpenService и DeleteService - не получилось...
    ф-ия DeleteService вернула 0, а это значит, что ошибка:dntknw:
    и длайвер не удалился...
    подскажите, плиз, как его удалить?
     
  2. apple

    apple Виктор

    Публикаций:
    0
    Код (Text):
    1. BOOL RemoveDriver(SC_HANDLE scm, LPCTSTR DriverName)
    2. {
    3.     SC_HANDLE Service =
    4.             OpenService (scm, DriverName, SERVICE_ALL_ACCESS);
    5.     if (Service == NULL) return FALSE;
    6.     BOOL ret = DeleteService (Service);
    7.     if (!ret) { }
    8.  
    9.     CloseServiceHandle (Service);
    10. return ret;
    11. }
     
  3. Necromancer13

    Necromancer13 Виталий

    Публикаций:
    0
    спасибки, а то я уже думал, что мой вопрос настолько глупый, что ответа не будет...:)