ВУЗ:
Составители:
62
4.2. Исходные файлы версии "DDK "
"DDK" версия скелетного VxD состоит из двух исходных файлов:
– SKELCTRL.ASM, который содержит блок дескриптора
устройства (DDB) и управляющую процедуру устройства,
имеющиеся в каждом VxD;
– SKELETON.C, который содержит функции обработчика
сообщений, вызываемые управляющей процедурой устройства.
Кроме того, фирма Vireo (изготовитель VToolsD) предоставляет файл
VXDCALL.C, который содержит заплату, устраняющую ошибку в
компиляторе Microsoft VC ++ 4.1.
Хотя
не обязательно размещать DDB и управляющую процедуру
устройства в файле на языке ассемблера (VToolsD этого не делает), лучше
это делать так. Они очень малы и легко могут быть написаны на
ассемблере, а помещение их в файл Си потребовало бы написания
сложного макроса и включения ассемблерного фрагмента.
Как уже говорилось, когда модуль Си вызывает
сервисную функцию
VMM или VxD, функция на языке ассемблера должна брать параметры из
стека и размещать их в соответствующих регистрах, как этого ожидает
соответствующая сервисная функция. Библиотека VXDWRAPS.CLB в
DDK обеспечивает оболочки для некоторых часто используемых
сервисных функций VMM и VxD, но SKELETON.VXD использует
некоторые функции, которые не содержатся в этой библиотеке.
В этой главе сосредоточено
внимание на том, как SKELETON.С
(листинг 4.1) использует функции в библиотеке оболочки, а не функции
оболочки непосредственно.
Если вы используете Microsoft VC++ 4.1 для разработки
собственного VxD, вам надо будет прикомпоновать в ваш VxD еще один
файл – VXDCALL.C. Без этого модуля ошибка в компиляторе версии 4.1
62 4.2. Исходные файлы версии "DDK " "DDK" версия скелетного VxD состоит из двух исходных файлов: – SKELCTRL.ASM, который содержит блок дескриптора устройства (DDB) и управляющую процедуру устройства, имеющиеся в каждом VxD; – SKELETON.C, который содержит функции обработчика сообщений, вызываемые управляющей процедурой устройства. Кроме того, фирма Vireo (изготовитель VToolsD) предоставляет файл VXDCALL.C, который содержит заплату, устраняющую ошибку в компиляторе Microsoft VC ++ 4.1. Хотя не обязательно размещать DDB и управляющую процедуру устройства в файле на языке ассемблера (VToolsD этого не делает), лучше это делать так. Они очень малы и легко могут быть написаны на ассемблере, а помещение их в файл Си потребовало бы написания сложного макроса и включения ассемблерного фрагмента. Как уже говорилось, когда модуль Си вызывает сервисную функцию VMM или VxD, функция на языке ассемблера должна брать параметры из стека и размещать их в соответствующих регистрах, как этого ожидает соответствующая сервисная функция. Библиотека VXDWRAPS.CLB в DDK обеспечивает оболочки для некоторых часто используемых сервисных функций VMM и VxD, но SKELETON.VXD использует некоторые функции, которые не содержатся в этой библиотеке. В этой главе сосредоточено внимание на том, как SKELETON.С (листинг 4.1) использует функции в библиотеке оболочки, а не функции оболочки непосредственно. Если вы используете Microsoft VC++ 4.1 для разработки собственного VxD, вам надо будет прикомпоновать в ваш VxD еще один файл – VXDCALL.C. Без этого модуля ошибка в компиляторе версии 4.1
Страницы
- « первая
- ‹ предыдущая
- …
- 60
- 61
- 62
- 63
- 64
- …
- следующая ›
- последняя »