ВУЗ:
Составители:
67
4.3. Блок дескриптора устройства DDB и
Управляющая Процедура Устройства: SKELCTRL.ASM
Короткий модуль на языке ассемблера SKELCTRL.ASM (листинг
3.2) содержит блок дескриптора устройства DDB и управляющую
процедуру устройства:
.386p
;***************************************************************************
; Включения
;***************************************************************************
include vmm.inc
include debug.inc
;==================================================
; Объявление виртуального устройства
;==================================================
DECLARE_VIRTUAL_DEVICE SKELETON, 1, 0, ControlProc,
UNDEFINED_DEVICE_ID, \
UNDEFINED_INIT_ORDER
VxD_LOCKED_CODE_SEG
;==================================================
; Процедура: ControlProc
;
; Описание:
; Управляющая процедура устройства для SKELETON VxD
; Вход:
; EAX = Идентификатор вызова управления
; Выход:
; если флаг переноса очищен
; Успешно
; иначе
; Вызов управления неудачен
; Используются:
; EAX, EBX, ECX, EDX, ESI, EDI, флаги
;==================================================
BeginProc ControlProc
Control_Dispatch SYS_VM_INIT, _OnSysVmInit, cCall, <ebx>
Control_Dispatch SYS_VM_TERMINATE, _OnSysVmTerminate, cCall, <ebx>
Control_Dispatch CREATE_VM, _OnCreateVm, cCall, <ebx>
Control_Dispatch DESTROY_VM, _OnDestroyVm, cCall, <ebx>
Control_Dispatch CREATE_THREAD, _OnCreateThread, cCall, <edi>
Control_Dispatch DESTROY_THREAD, _OnDestroyThread, cCall, <edi>
clc
ret
EndProc ControlProc
VxD_LOCKED_CODE_ENDS
END
67 4.3. Блок дескриптора устройства DDB и Управляющая Процедура Устройства: SKELCTRL.ASM Короткий модуль на языке ассемблера SKELCTRL.ASM (листинг 3.2) содержит блок дескриптора устройства DDB и управляющую процедуру устройства: .386p ;*************************************************************************** ; Включения ;*************************************************************************** include vmm.inc include debug.inc ;================================================== ; Объявление виртуального устройства ;================================================== DECLARE_VIRTUAL_DEVICE SKELETON, 1, 0, ControlProc, UNDEFINED_DEVICE_ID, \ UNDEFINED_INIT_ORDER VxD_LOCKED_CODE_SEG ;================================================== ; Процедура: ControlProc ; ; Описание: ; Управляющая процедура устройства для SKELETON VxD ; Вход: ; EAX = Идентификатор вызова управления ; Выход: ; если флаг переноса очищен ; Успешно ; иначе ; Вызов управления неудачен ; Используются: ; EAX, EBX, ECX, EDX, ESI, EDI, флаги ;================================================== BeginProc ControlProc Control_Dispatch SYS_VM_INIT, _OnSysVmInit, cCall,Control_Dispatch SYS_VM_TERMINATE, _OnSysVmTerminate, cCall, Control_Dispatch CREATE_VM, _OnCreateVm, cCall, Control_Dispatch DESTROY_VM, _OnDestroyVm, cCall, Control_Dispatch CREATE_THREAD, _OnCreateThread, cCall, Control_Dispatch DESTROY_THREAD, _OnDestroyThread, cCall, clc ret EndProc ControlProc VxD_LOCKED_CODE_ENDS END
Страницы
- « первая
- ‹ предыдущая
- …
- 65
- 66
- 67
- 68
- 69
- …
- следующая ›
- последняя »