ВУЗ:
Составители:
69
Остановимся более подробно на реальных функциональных
возможностях SKELETON.VXD, содержащихся в SKELETON.C.
SKELETON.C (листинг 4.1) содержит обработчики сообщений для
SKELETON.VXD. SKELETON.VXD обрабатывает шесть сообщений,
касающихся создания и разрушения виртуальных машин и потоков:
Sys_VM_Init, Sys_VM_Terminate, Create_VM, Destroy_VM, Create_Thread
и Destroy_Thread. Каждый раз при создании VM всем VxD посылается
одно из двух сообщений: Sys_VM_Init для системной VM или Create_VM
для несистемных VM. Создание
VM завершается созданием начального
потока, но в этом случае не посылается никакого сообщения.
Последующие (не начальные) потоки, созданные в VM, кончаются
сообщением Create_Thread. Как уже говорилось ранее, каждая
несистемная VM ограничивается единственным сообщением, поэтому все
сообщения Create_Thread связаны с системной VM.
SKELETON демонстрирует это поведение при печати из обоих
обработчиков VM и значений обработчиков потоков для
этих шести
сообщений. Обработчики сообщений VM (OnSysVmInit, OnCreateVm,
OnDestroyVm, и OnSysVmTerminate) используют сервисную функцию
VMM Get_Initial_Thread_Handle, чтобы получить обработчик начального
сообщения, созданного вместе с VM. (Это сервисная функция не
поддерживается библиотекой VXDWRAPS .CLB DDK, так что ее оболочка
должна находиться в WRAPPERS.CLB). Обработчики сообщений потоков
Create_Thread и Destroy_Thread извлекаются виртуальной машиной
(VM), связанной с потоком, из обработчика
потока, который указывает на
реальный блок управления потока. Одно из полей в блоке управления
потока – обработчик VM, связанной с потоком.
Каждая функция обработчика сообщения отправляет сообщения
обработчика потока в отладчик и в файл. Функции используют
69
Остановимся более подробно на реальных функциональных
возможностях SKELETON.VXD, содержащихся в SKELETON.C.
SKELETON.C (листинг 4.1) содержит обработчики сообщений для
SKELETON.VXD. SKELETON.VXD обрабатывает шесть сообщений,
касающихся создания и разрушения виртуальных машин и потоков:
Sys_VM_Init, Sys_VM_Terminate, Create_VM, Destroy_VM, Create_Thread
и Destroy_Thread. Каждый раз при создании VM всем VxD посылается
одно из двух сообщений: Sys_VM_Init для системной VM или Create_VM
для несистемных VM. Создание VM завершается созданием начального
потока, но в этом случае не посылается никакого сообщения.
Последующие (не начальные) потоки, созданные в VM, кончаются
сообщением Create_Thread. Как уже говорилось ранее, каждая
несистемная VM ограничивается единственным сообщением, поэтому все
сообщения Create_Thread связаны с системной VM.
SKELETON демонстрирует это поведение при печати из обоих
обработчиков VM и значений обработчиков потоков для этих шести
сообщений. Обработчики сообщений VM (OnSysVmInit, OnCreateVm,
OnDestroyVm, и OnSysVmTerminate) используют сервисную функцию
VMM Get_Initial_Thread_Handle, чтобы получить обработчик начального
сообщения, созданного вместе с VM. (Это сервисная функция не
поддерживается библиотекой VXDWRAPS .CLB DDK, так что ее оболочка
должна находиться в WRAPPERS.CLB). Обработчики сообщений потоков
Create_Thread и Destroy_Thread извлекаются виртуальной машиной
(VM), связанной с потоком, из обработчика потока, который указывает на
реальный блок управления потока. Одно из полей в блоке управления
потока – обработчик VM, связанной с потоком.
Каждая функция обработчика сообщения отправляет сообщения
обработчика потока в отладчик и в файл. Функции используют
Страницы
- « первая
- ‹ предыдущая
- …
- 67
- 68
- 69
- 70
- 71
- …
- следующая ›
- последняя »
