MinGW и драйвер

Тема в разделе "WASM.WIN32", создана пользователем Voodoo, 15 дек 2004.

  1. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    Как заставить gcc из состава MinGW создавать такой же эпилог процедуры как и M$ cl? Проблема в том, что при попытке загрузить "неправильный драйвер" виснет весь SCM.

    Единственное отличие нижепреведенного от symplest.sys от Four-F - эпилог DriverEntry
    Код (Text):
    1.  
    2. #dr.c
    3.  
    4. #include <ddk/ntddk.h>
    5.  
    6. #ifdef  ALLOC_PRAGMA
    7. #pragma alloc(INIT, DriverEntry)
    8. #endif
    9.  
    10. NTSTATUS DriverEntry(
    11.     IN PDRIVER_OBJECT  DriverObject,
    12.     IN PUNICODE_STRING RegistryPath)
    13. {
    14.     return STATUS_DEVICE_CONFIGURATION_ERROR;
    15. }
    16.  


    Эпилог :
    Код (Text):
    1.  
    2. ...
    3. .text:00010203                 mov     eax, 0C0000182h
    4. .text:00010208                 pop     ebp
    5. .text:00010209                 retn
    6. .text:00010209 start           endp
    7.  


    Symplest.sys:
    Код (Text):
    1.  
    2. ...
    3. .text:00010203                 mov     eax, 0C0000182h
    4. .text:00010208                 leave
    5. .text:00010209                 retn    8
    6. .text:00010209 start           endp
    7.  
     
  2. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    И вообще говоря - объясните, как собрать драйвер в MinGW?
     
  3. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Методы вызова функций, используемые в MinGW?
     
  4. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    Скорее всего stdcall...
     
  5. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Скорее всего cdecl, т.к. стэк от аргументов не очищается.

    stdcall это у Symplest.sys