ВУЗ:
Составители:
72
поток является текущим. Это позволяет VxD открывать файл во время
Sys_VM_Init, когда начальный поток системной VM является текущим, а
осуществлять запись в файл тем же самым обработчиком во время другого
сообщения VM или потока, когда текущим является другой поток.
OnSysVmInit держит файл открытым и хранит дескриптор файла в
глобальной переменной fh так, чтобы обработчики
сообщений другого
SKELETON.VXD могли также писать в файл. Файл закрывается
обработчиком сообщения OnSysVmTerminate, при завершении работы
Windows.
Все обработчики сообщений, включая OnSysVmInit, осуществляют
запись в этот уже открытый файл, используя IFSMgr_Ring0_WriteFile. Эта
функция использует параметры, которые обычно используются для записи:
дескриптор, буфер и счетчик. Однако, если большая часть файловых
функций ввода/
вывода изменяет положение указателя файла
автоматически с каждой операцией чтения и записи,
IFSMgr_Ring0_WriteFile требует явного задания параметра положения
указателя файла. Это означает, что вызывающий должен сохранять у себя
текущее положение указателя файла. SKELETON делает это, обнуляя при
инициализации глобальную переменную file_pos, и инкрементируя ее
количеством байтов, записанных с каждым обращением к
IFSMgr_Ring0_WriteFile
.
IFSMgr_Ring0_WriteFile не выполняет никакого форматирования,
она просто пишет строку буфера. Перед вызовом IFSMgr_Ring0_WriteFile
каждый обработчик сообщения сначала форматирует буфер, используя
сервисную функцию VMM _Sprintf, представленную в библиотеке
VXDWRAPS.CLB DDK .
72
поток является текущим. Это позволяет VxD открывать файл во время
Sys_VM_Init, когда начальный поток системной VM является текущим, а
осуществлять запись в файл тем же самым обработчиком во время другого
сообщения VM или потока, когда текущим является другой поток.
OnSysVmInit держит файл открытым и хранит дескриптор файла в
глобальной переменной fh так, чтобы обработчики сообщений другого
SKELETON.VXD могли также писать в файл. Файл закрывается
обработчиком сообщения OnSysVmTerminate, при завершении работы
Windows.
Все обработчики сообщений, включая OnSysVmInit, осуществляют
запись в этот уже открытый файл, используя IFSMgr_Ring0_WriteFile. Эта
функция использует параметры, которые обычно используются для записи:
дескриптор, буфер и счетчик. Однако, если большая часть файловых
функций ввода/вывода изменяет положение указателя файла
автоматически с каждой операцией чтения и записи,
IFSMgr_Ring0_WriteFile требует явного задания параметра положения
указателя файла. Это означает, что вызывающий должен сохранять у себя
текущее положение указателя файла. SKELETON делает это, обнуляя при
инициализации глобальную переменную file_pos, и инкрементируя ее
количеством байтов, записанных с каждым обращением к
IFSMgr_Ring0_WriteFile.
IFSMgr_Ring0_WriteFile не выполняет никакого форматирования,
она просто пишет строку буфера. Перед вызовом IFSMgr_Ring0_WriteFile
каждый обработчик сообщения сначала форматирует буфер, используя
сервисную функцию VMM _Sprintf, представленную в библиотеке
VXDWRAPS.CLB DDK .
Страницы
- « первая
- ‹ предыдущая
- …
- 70
- 71
- 72
- 73
- 74
- …
- следующая ›
- последняя »
