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

📄 init.asm

📁 虚拟光驱的驱动程序源代码
💻 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

⌨️ 快捷键说明

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