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