www.pudn.com > litth_virldisk.zip > Init.asm
.386p .xlist include vmm.inc include drp.inc include ilb.inc include ios.inc include debug.inc .list VXD_IDATA_SEG Drv_Reg_Pkt DRP <'Port Vcd', DRP_MISC_PD, offset32 Port_Async_Request, \ offset32 milb, 'Virldisk PortDrv', 0, 0, 0> VXD_IDATA_ENDS ;=========================================== VXD_LOCKED_DATA_SEG public milb milb ILB <> ; VXD_LOCKED_DATA_ENDS ;============================================ VXD_LOCKED_CODE_SEG DECLARE_VIRTUAL_DEVICE VIRLDISK, 4, 0, VDISK_Control, ,UNDEFINED_INIT_ORDER,,,Drv_Reg_Pkt extrn Port_Async_Request:near VDISK_Control PROC NEAR Control_Dispatch SYS_DYNAMIC_DEVICE_INIT, OnDevInit Control_Dispatch W32_DEVICEIOCONTROL, OnDeviceIOControl clc ret VDISK_Control ENDP BeginProc OnDeviceIOControl xor eax,eax ret EndProc OnDeviceIOControl VXD_LOCKED_CODE_ENDS ;================================================ VXD_ICODE_SEG BeginProc OnDevInit TRAP push offset32 Drv_Reg_Pkt VxdCall IOS_Register add esp, 4 cmp Drv_Reg_Pkt.DRP_reg_result, DRP_REMAIN_RESIDENT je Init_Done cmp Drv_Reg_Pkt.DRP_reg_result, DRP_MINIMIZE je Init_Done mov eax, -1 stc ret Init_Done: xor eax, eax clc ret EndProc OnDevInit VXD_ICODE_ENDS end