Организация ввода-вывода. Часть 1. Виртуальные драйверы и виртуальное окружение WINDOWS. Рощин А.В. - 63 стр.

UptoLike

Составители: 

63
сделает созданный VxD бесполезным. Короче говоря, компилятор
генерирует неправильный код, когда enums используются во вложенных
операторах ассемблера: макрокоманда VMMCall в VMM.H использует
enums. VxD, сгенерированный с этим неправильным кодом вызывает
появление runtime сообщения об ошибке, "Неподдерживаемая сервисная
функция xx в VxD xx ".
Модуль VXDCALL.С, предоставляемый фирмой Vireo
(изготовителем VTolsD) исправляет неправильный код во время
выполнения. Скомпилируйте код однажды, и просто скомпонуйте в
OBJ
файл с любым VxD, созданным в VC ++ 4.1. Обратите внимание, что Вы
должны также включить сопровождающий заголовочный файл
VXDCALL.H во все исходные Си файлы вашего VxD.
Фирма Vireo предоставляет VXDCALL.C на странице
www.vireo.com. Файл VXDCALL.C нужен, если используется VC ++ 4.1,
независимо от того, пользуетесь ли Вы DDK или VToolsD.
Файл SKELCTRL.ASM (листинг 4.2) обеспечивает создание блоков
для SKELETON.VXD, а позднее и для VxD. SKELCTRL.ASM может быть
легко
адаптирован для использования в другом VxD путем изменения
поля DDB (например, имя VxD) и добавления/удаления желаемых
сообщений в управляющей процедуре устройства. Другой файл
SKELETON.C – содержит функции обработки сообщений, которые
реализуют специфические функциональные возможности VxD, и
существенно различны для различных VxD.
Хотя конкретные функциональные возможности исходного файла Си
различны для каждого VxD, здесь и далее каждая версия
исходного файла
Си включает один и тот же основной набор заголовочных файлов.
Заголовочные файлы с кратким описанием приведены в табл. 4.1.
                                     63



сделает созданный VxD бесполезным. Короче говоря, компилятор
генерирует неправильный код, когда enums используются во вложенных
операторах ассемблера: макрокоманда VMMCall         в VMM.H использует
enums. VxD, сгенерированный с этим неправильным кодом вызывает
появление runtime сообщения об ошибке, "Неподдерживаемая сервисная
функция xx в VxD xx ".
     Модуль         VXDCALL.С,      предоставляемый       фирмой      Vireo
(изготовителем      VTolsD)   исправляет   неправильный   код   во   время
выполнения. Скомпилируйте код однажды, и просто скомпонуйте в OBJ
файл с любым VxD, созданным в VC ++ 4.1. Обратите внимание, что Вы
должны      также    включить    сопровождающий     заголовочный      файл
VXDCALL.H во все исходные Си файлы вашего VxD.
     Фирма       Vireo    предоставляет     VXDCALL.C      на      странице
www.vireo.com. Файл VXDCALL.C нужен, если используется VC ++ 4.1,
независимо от того, пользуетесь ли Вы DDK или VToolsD.
     Файл SKELCTRL.ASM (листинг 4.2) обеспечивает создание блоков
для SKELETON.VXD, а позднее и для VxD. SKELCTRL.ASM может быть
легко адаптирован для использования в другом VxD путем изменения
поля DDB (например, имя VxD) и добавления/удаления желаемых
сообщений в управляющей процедуре устройства. Другой файл –
SKELETON.C – содержит функции обработки сообщений, которые
реализуют    специфические      функциональные    возможности      VxD,   и
существенно различны для различных VxD.
     Хотя конкретные функциональные возможности исходного файла Си
различны для каждого VxD, здесь и далее каждая версия исходного файла
Си включает один и тот же основной набор заголовочных файлов.
Заголовочные файлы с кратким описанием приведены в табл. 4.1.