Проблемма с sys файлом. VC6

Тема в разделе "WASM.NT.KERNEL", создана пользователем gevara, 20 апр 2007.

  1. gevara

    gevara максим

    Публикаций:
    0
    Регистрация:
    10 ноя 2006
    Сообщения:
    112
    Адрес:
    г. Пермь
    Научил студию компилить драйвера. Написал простенький дров:

    Код (Text):
    1. #include <ntoskrnl.h>
    2.  
    3. /* ###################################################################
    4. DriverUnload
    5. */
    6. NTSTATUS DriverUnload(IN PDRIVER_OBJECT pDriverObject)
    7. {
    8.     DbgPrint("Driver unloaded");
    9.     return STATUS_SUCCESS;
    10. }
    11. /* ###################################################################
    12. DriverEntry
    13. */
    14. NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath)
    15. {  
    16.     pDriverObject->DriverUnload = DriverUnload;
    17.     DbgPrint("Driver loaded");    
    18.     return STATUS_SUCCESS;
    19. }
    Всё отлично компилируется, создаётся driver.sys. Проблеммы происходят при загрузке. Пробовал множество лоадеров, втч свой. При загрузке лоадер подвисает. смотрел в ольге: если это SCManager, то подвисание происходит на функции CreateService; если через реестр - подвисает ZwLoadDriver. С чем это может быть связано? Я так думаю, что линк неправильно конфигурирет sys файл. Как это можно исправить? Для понимания выкладываю дров.

    http://studentsoft.dom.raid.ru/driver.rar

    параметры линкера:
    ntoskrnl.lib /base:"0x10000" /entry:"DriverEntry" /incremental:no /pdb:"Release/driver.pdb" /machine:IX86 /out:"Release/driver.sys" /driver /subsystem:native /align:3
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    хм...
    а компилера покажи
     
  3. gevara

    gevara максим

    Публикаций:
    0
    Регистрация:
    10 ноя 2006
    Сообщения:
    112
    Адрес:
    г. Пермь
    блин, там алигн32. опечатка.

    компилятор:
    /nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Release/driver.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c

    если подробней - я сорцы выложил. в dsp файле есть.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    default calling convention ставь __stdcall а не __cdecl (/Gz кажется параметр компилера, но в опциях легче задать)