Компиляция VXD под Windows 95

Тема в разделе "WASM.HEAP", создана пользователем weiv, 15 июн 2005.

  1. weiv

    weiv New Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2003
    Сообщения:
    25
    Адрес:
    Новосибирск
    Скомпилировал один пример из VXD Tutorial'а, размещенного здесь

    на сайте.



    Хотел загрузить полученный VXD с помощью CreateFile.

    Но CreateFile всегда возвращала INVALID_HANDLE_VALUE.



    Причем делал все по инструкции, в т.ч. и команды:



    ml -coff -c -Cx -DMASM6 -DBLD_COFF -DIS_32 shellmsg.asm

    link -vxd -def:shellmsg.def shellmsg.obj



    Долго не мог понять, почему готовый VXD из примера загружается,

    а мой перекомпилированный нет.



    Стал сравнивать в дизассемблере. Оказалось, что в моем примере

    поле SDK_Version из VxD description block равно 0x40A,

    а в готовом VXD из Tutorial'а оно равно 0x400.

    Увидел то это я давно, но не думал, что это имеет какое-то значение.



    Видимо, все из-за того что у меня Windows 95.

    После того как добавил опцию -DWIN40COMPAT в командной строке

    все стало работать.



    Вот такая вот история. А потратил на поиск ошибки целый день :)
     
  2. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    weiv

    Дяржи, вот, на днях траяну писал, это от него кусок, гатовый VxD :) тока смари, лучше пользовать 98 и выше

    [​IMG] 1486497580__Vxd1371.rar
     
  3. weiv

    weiv New Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2003
    Сообщения:
    25
    Адрес:
    Новосибирск
    CARDINAL



    Насчет твоего VXD...

    А нехорошо портить MBR и boot-sector :)))

    А представь, если этот человек 15 июля (если я правильно понял текст)

    этого года не будет включать компьютер?

    Значит изменения загрузочных секторов отложатся до следующего года?



    Да, кстати, в твоем VXD поле SDK_Version тоже 0x40A,

    так что на моем Windows 95 не запустился бы... к счастью :)
     
  4. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    стоп, тебе примерчик был нужен, а по части запуска, тебе нужен ddk98 :)
     
  5. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    weiv

    Да, брат, а если ты очень внимательно разглядел сырец. то там кроме голой деструкции имеется ещё и возможность восстановления убитого mbr и br :))