ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »