1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Помогите найти причину BSOD'а!

Тема в разделе "WASM.NT.KERNEL", создана пользователем Foo, 22 фев 2012.

  1. Foo

    Foo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2012
    Сообщения:
    24
    Mika, спасибо! Действительно, ebx нелшьзя трогать! Кстати, похожая проблема, если в DriverEntry изменить edi без восстановления. И что интересно, там лежит указатель на объект драйвера... А есть ли еще подобные нюансы?
     
  2. Foo

    Foo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2012
    Сообщения:
    24
    Передача через регистры - это так называемый fast call: первый аргумент в ecx, второй в edx, остальные в стеке. Функция завершения IRP запроса называется IofCompleteRequest ( f после Io - это фасткол)
     
  3. Foo

    Foo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2012
    Сообщения:
    24
    А насчет того, что лучше, С или асм - так и этак хорошо, так и этак вкусно!
     
  4. Foo

    Foo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2012
    Сообщения:
    24
    Ой, извини по поводу фасткола, просто твой вопрос невнимательно прочел...
     
  5. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Foo
    Почитать можно здесь и здесь. Ну и в целом по ключевым словам 'calling convention'.
     
  6. Foo

    Foo New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2012
    Сообщения:
    24
    Спасибо.