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