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