Проблема с драйвером

Тема в разделе "WASM.BEGINNERS", создана пользователем Omigo, 8 апр 2006.

  1. Omigo

    Omigo New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2006
    Сообщения:
    22
    Написал функцию загрузки драйвера по примеру ---не работает. Помогите, объясните почему

    Вот код:

    .386

    .model flat, stdcall

    option casemap:none



    include I:\Alex\Driver\KmdKit\include\windows.inc

    include I:\Alex\Driver\KmdKit\include\kernel32.inc

    include I:\Alex\Driver\KmdKit\include\user32.inc

    include I:\Alex\Driver\KmdKIt\include\advapi32.inc

    includelib I:\Alex\Driver\KmdKit\lib\kernel32.lib

    includelib I:\Alex\Driver\KmdKit\lib\user32.lib

    includelib I:\Alex\Driver\KmdKit\lib\advapi32.lib

    include I:\Alex\Driver\KmdKit\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("simplest.sys"), sizeof acDriverPath, addr acDriverPath, esp

    pop eax



    invoke CreateService, hSCManager, $CTA0("simplest"), $CTA0("My first driver"), \

    SERVICE_START + DELETE, SERVICE_KERNEL_DRIVER, SERVICE_AUTO_START, \

    SERVICE_ERROR_IGNORE, addr acDriverPath, NULL, NULL, NULL, NULL, NULL



    .if eax != NULL

    mov hService, eax

    invoke StartService, hService, 0, NULL



    .else

    invoke MessageBox, NULL, $CTA0("Can't registry driver."), NULL, MB_ICONSTOP

    .endif

    .else

    invoke MessageBox, NULL, $CTA0("Can't connect to Service Control Manager."), \

    NULL, MB_ICONSTOP

    .endif



    invoke ExitProcess, 0



    start endp



    end start





    Выдает can't registry driver

    Думал может путь драйвера определяет не так

    проверил все нормально путь правильный находит

    В чем же проблема?
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Если CreateService возвратила ноль, вызывай GetLastError и смотри, какая ошибка произошла.

    Так и получишь информацию об ошибке.