⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmaddb.asm

📁 ASM编写调用VxD。 以及VxD编写的科普 源代码
💻 ASM
字号:
    .386p

;******************************************************************************
;                I N C L U D E S
;******************************************************************************

    include vmm.inc
    include debug.inc

;============================================================================
;        V I R T U A L   D E V I C E   D E C L A R A T I O N
;============================================================================
DMABUF_ID   EQU   0DB0H    ; must match ID in DMABUF.H

DECLARE_VIRTUAL_DEVICE    DMABUF, 1, 0, ControlProc, DMABUF_ID, \
                        UNDEFINED_INIT_ORDER, 0, PM_API

;extrn _PM_Api_Handler:near
;extrn _V86_Api_Handler:near

VxD_LOCKED_CODE_SEG

;===========================================================================
;
;   PROCEDURE: ControlProc
;
;   DESCRIPTION:
;    Device control procedure for the SKELETON VxD
;
;   ENTRY:
;    EAX = Control call ID
;
;   EXIT:
;    If carry clear then
;        Successful
;    else
;        Control call failed
;
;   USES:
;    EAX, EBX, ECX, EDX, ESI, EDI, Flags
;
;============================================================================

BeginProc ControlProc
    Control_Dispatch INIT_COMPLETE, _OnInitComplete, cCall, <ebx>
    Control_Dispatch SYS_DYNAMIC_DEVICE_INIT, _OnSysDynamicDeviceInit, cCall, <ebx>
    Control_Dispatch SYS_DYNAMIC_DEVICE_EXIT, _OnSysDynamicDeviceExit, cCall, <ebx>
    Control_Dispatch W32_DEVICEIOCONTROL, _OnW32Deviceiocontrol, cCall, <esi>
    clc
    ret

EndProc ControlProc

BeginProc PM_API

   cCall _PM_Api_Handler, <ebx, ebp>
   mov   [ebp].Client_EAX, eax
   ret

EndProc PM_API

VxD_LOCKED_CODE_ENDS

    END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -