
				FILE SYSTEM in VxD
				Writteln by [CoxoC]


Oto mechanizm przejmowania systemu plikow przez VxD :

    .486p

    .xlist
    include    vmm.inc
    include    debug.inc
    include    ifsmgr.inc

    .list


;============================================================================
;     C Z E S C    I N I C J A L I Z A C Y J N A   U R Z A D Z E N I A
;============================================================================

VXD_Icode_Seg

BeginProc      PIERWSZY_Device_Init

	VxdCall IFSMgr_InstallFileSystemApiHook, <offset32 systemplikow>
	cmp	eax,0
	jz	blad
	mov	poprzedniaprocka,eax
	clc
	ret

blad:	stc		;zawiadom system o niepowodzeniu
	ret
EndProc     PIERWSZY_Device_Init

VXD_Icode_Ends

;============================================================================
;             D E K L A R A C J A   U R Z A D Z E N I A
;============================================================================

VXD_Locked_Code_Seg


Declare_Virtual_Device    PIERWSZY,0,1,PIERWSZY_Control,Undefined_Device_ID, \
                          Undefined_Init_Order,,


;----------------------------------------------------------------------------
;
; Procedura kontrolna urzadzenia dla VxD
;
;----------------------------------------------------------------------------

BeginProc   PIERWSZY_Control

      Control_Dispatch SYS_DYNAMIC_DEVICE_INIT, PIERWSZY_Device_Init
      Control_Dispatch SYS_DYNAMIC_DEVICE_EXIT, PIERWSZY_Device_Exit
      Control_Dispatch W32_DEVICEIOCONTROL,     PIERWSZY_ioctl
      clc
      ret

SWAPPAGE_Control  ENDP

BeginProc      PIERWSZY_ioctl
      mov      ecx,[esi].dwIoControlCode
      xor      eax, eax
      clc
      ret
EndProc        PIERWSZY_ioctl



;----------------------------------------------------------------------------
;
; Procedura konczaca
;
;----------------------------------------------------------------------------
BeginProc	PIERWSZY_Device_Exit
	VxdCall IFSMgr_RemoveFileSystemApiHook, <OFFSET32 systemplikow>

	clc
	ret
EndProc		PIERWSZY_Device_Exit
;============================================================================
;                            	D A N E 
;============================================================================
poprzedniaprocka	dd 0

;============================================================================
;                       C Z E S C    G L O W N A
;============================================================================
BeginProc	systemplikow

	clc
	ret
EndProc		systemplikow

VXD_LOCKED_CODE_ENDS

end	
;=========================== K O N I E C   K O D U ==========================

