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

UptoLike

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

70
макроопределение DPRINTF, чтобы сгенерировать выход отладчика. Это
макроопределение похоже на полезную функцию VToolsD dprintf.
Макроопределение комбинирует запрос к двум сервисным функциям
VMM: _Sprintf, которая форматирует строку, и Out_Debug_String, которая
выводит форматированную строку в отладчик. Обе сервисные функции
включены в библиотеку VXDWRAPS.CLB DDK.
Макроопределение разворачивается только в том случае, если во
время трансляции обнаружен символ отладчика (DEBUG).
Этот символ
чаще определяется ключом компилятора, чем строкой #define в исходном
файле. Например, с компилятором Microsoft используется DDEBUG=1.
Если отладчик (DEBUG) не обнаружен, макроопределение DPRINTF
вообще не разворачивается.
Чтобы посылать сообщения в файл, обработчики сообщений
используют сервисную функцию IFSMgr_Ring0_FileIO. IFSMgrэто
устанавливаемый менеджер файловой системы VxD, менеджер высшего
уровня всех VxD, которые вместе формируют файловую систему.
Большинство
сервисных функций IFSMgr используются другими VxD,
которые являются частью файловой системы, однако, сервисная функция
IFSMgr_Ring0_FileIO полезна для любого VxD: она позволяет VxD
исполнять файл ввода/вывода в Кольце 0. "Кольцо 0" – это важно, потому
что, раньше VxD мог исполнять файл ввода/вывода только, переключаясь в
кольцо 3, и каждая индивидуальная операция ввода/вывода (открытие,
закрытие, и т.
д.) требовала последовательности из нескольких сервисных
функций VMM. Под Windows 95, требуется единственное обращение к
IFSMgr для выполнения каждой файловой операции ввода/вывода.
Сервисная функция IFSMgr_Ring0_FileIO не будет работать
правильно, если используется перед сообщением Sys_Init_Complete.
                                  70



макроопределение DPRINTF, чтобы сгенерировать выход отладчика. Это
макроопределение похоже на полезную функцию VToolsD dprintf.
Макроопределение комбинирует запрос к двум сервисным функциям
VMM: _Sprintf, которая форматирует строку, и Out_Debug_String, которая
выводит форматированную строку в отладчик. Обе сервисные функции
включены в библиотеку VXDWRAPS.CLB DDK.
     Макроопределение разворачивается только в том случае, если во
время трансляции обнаружен символ отладчика (DEBUG). Этот символ
чаще определяется ключом компилятора, чем строкой #define в исходном
файле. Например, с компилятором Microsoft используется DDEBUG=1.
Если отладчик (DEBUG) не обнаружен, макроопределение DPRINTF
вообще не разворачивается.
     Чтобы посылать сообщения в файл, обработчики сообщений
используют сервисную функцию IFSMgr_Ring0_FileIO. IFSMgr – это
устанавливаемый менеджер файловой системы VxD, менеджер высшего
уровня всех VxD, которые вместе формируют файловую систему.
Большинство сервисных функций IFSMgr используются другими VxD,
которые являются частью файловой системы, однако, сервисная функция
IFSMgr_Ring0_FileIO полезна для любого VxD: она позволяет VxD
исполнять файл ввода/вывода в Кольце 0. "Кольцо 0" – это важно, потому
что, раньше VxD мог исполнять файл ввода/вывода только, переключаясь в
кольцо 3, и каждая индивидуальная операция ввода/вывода (открытие,
закрытие, и т.д.) требовала последовательности из нескольких сервисных
функций VMM. Под Windows 95, требуется единственное обращение к
IFSMgr для выполнения каждой файловой операции ввода/вывода.
     Сервисная функция IFSMgr_Ring0_FileIO не будет работать
правильно, если используется перед сообщением Sys_Init_Complete.