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

📄 pgpdriver.asm

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 ASM
字号:
;	Copyright (C) 2002 PGP Corporation
;	All rights reserved.
;	
;	pgpDriver.asm - assembly code for PGPutil driver
;
;	$Id: pgpDriver.asm,v 1.7 2002/08/06 20:11:20 dallen Exp $
;
		.386p

SEGNUM equ 1

;==================================
IFNDEF PGP_EROS
PGP_EROS	EQU		0
ENDIF

IF PGP_EROS
; this is the Eros version ...

		include vmm.inc

Declare_Virtual_Device PGPSDK, 0, 1, PGPSDK_control,\
		Undefined_Device_ID, Undefined_Init_Order

Begin_Control_Dispatch PGPSDK
		Control_Dispatch Sys_Dynamic_Device_Init, _OnDeviceInit, cCall
		Control_Dispatch Sys_Dynamic_Device_Exit, _OnSystemExitC, cCall
		Control_Dispatch W32_DeviceIOControl,     _OnDeviceIoControl, cCall, <esi>
End_Control_Dispatch   PGPSDK

;==================================
ELSE
; and this is the Full version ...

		include vmm.inc
		include vmd.inc
		include vkd.inc
		include local.inc

PGPutil_Inactivity	EQU	BEGIN_RESERVED_PRIVATE_SYSTEM_CONTROL +1

Declare_Virtual_Device PGPSDK, 0, 1, PGPSDK_control,\
		Undefined_Device_ID, VKD_INIT_ORDER+000010000H

Begin_Control_Dispatch PGPSDK
		Control_Dispatch Device_Init, _OnDeviceInit, cCall, <esi>
		Control_Dispatch W32_DeviceIOControl, _OnDeviceIoControl, cCall, <esi>
		Control_Dispatch Init_Complete, OnInitComplete
		Control_Dispatch System_Exit, _OnSystemExitC, cCall
		Control_Dispatch Sys_Dynamic_Device_Init, OnSysDynamicDeviceInit, cCall
		Control_Dispatch Sys_Dynamic_Device_Exit, OnSysDynamicDeviceExit, cCall
		Control_Dispatch PGPutil_Inactivity, _OnPGPutilInactivity, cCall, <esi>
End_Control_Dispatch   PGPSDK

MakeCDecl      IFSMgr_InstallFileSystemApiHook
MakeCDecl      IFSMgr_RemoveFileSystemApiHook
MakeCDecl      UniToBCSPath
MakeCDecl      _VWIN32_QueueUserApc
MakeCDecl      IFSMgr_Block
MakeCDecl      IFSMgr_Wakeup
MakeCDecl      _VolFlush

VxD_LOCKED_DATA_SEG
next_mouse	dd	0
next_kbd	dd	0
VxD_LOCKED_DATA_ENDS

;------------------------------------------------------------------------------

BeginProc OnInitComplete, locked
		GetVxDServiceOrdinal eax, VMD_Manipulate_Pointer_Message
		mov   	esi, offset32 MouseHookProc
		VMMCall	Hook_Device_Service
		jc		initfail

		GetVxDServiceOrdinal eax, VKD_Filter_Keyboard_Input
		mov		esi, offset32 KeyboardHookProc
		VMMCall Hook_Device_Service
		jc		initfail1

;		clc
		ret

initfail1:
		GetVxDServiceOrdinal eax, VMD_Manipulate_Pointer_Message
		mov		esi, offset32 MouseHookProc
		VMMCall Unhook_Device_Service

initfail:
		stc
		ret
EndProc OnInitComplete

;------------------------------------------------------------------------------

BeginProc OnSystemExit, CCALL, PUBLIC, locked
		GetVxDServiceOrdinal eax, VMD_Manipulate_Pointer_Message
		mov		esi, offset32 MouseHookProc
		VMMCall Unhook_Device_Service

		GetVxDServiceOrdinal eax, VKD_Filter_Keyboard_Input
		mov		esi, offset32 KeyboardHookProc
		VMMCall Unhook_Device_Service

;		clc
		ret
EndProc OnSystemExit

;------------------------------------------------------------------------------

BeginProc MouseHookProc, service, hook_proc, next_mouse, locked
		pushad
		push	ax					; button status
		extrn	_PGPMouseMoved:near
		call	_PGPMouseMoved		; call C function
		add		esp, 2				; lose args
		popad
		jmp		[next_mouse]
EndProc MouseHookProc

;------------------------------------------------------------------------------

BeginProc KeyboardHookProc, service, hook_proc, next_kbd, locked
		pushad
		push	cx					; scan code
		extrn	_PGPKBDEvent:near
		call	_PGPKBDEvent		; call C function
		add		esp, 2				; lose args
		popad		
		jmp		[next_kbd]
EndProc KeyboardHookProc

;------------------------------------------------------------------------------

BeginProc OnSysDynamicDeviceInit, locked
		cCall _OnDeviceInit, <esi>
		cmp eax, 0
		je abort

		call OnInitComplete
abort:
		ret
EndProc OnSysDynamicDeviceInit

;------------------------------------------------------------------------------

BeginProc OnSysDynamicDeviceExit, locked
		call OnSystemExit
		ret
EndProc OnSysDynamicDeviceExit

;==================================
ENDIF

		end

⌨️ 快捷键说明

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