usbmon.h

来自「usb透明加密驱动程序源代码」· C头文件 代码 · 共 77 行

H
77
字号
#ifndef __USB_MON_H__
#define __USB_MON_H__

#include <ntddk.h>
#include <srb.h>
#include "nttypes.h"

#define IoGetIrpStackLocation( Irp , Level) ((Irp)->Tail.Overlay.CurrentStackLocation + Level)

#define MAX_MDL_LIST			32						//并发IRP

typedef struct _GLOBALS 
{
	HANDLE			PnpHookHandle;
	HANDLE			ScsiHookHandle;
	HANDLE			fsdReadHookHandle;
	HANDLE			fsdWriteHookHandle;
	HANDLE			ScsiReadCompletionHandle;
	PDRIVER_OBJECT	UsbStorDriver;
	PDRIVER_OBJECT	FastFatDriver;
	BYTE			Key[128];							//128BIT密钥
	PVOID			CryptMdlList[MAX_MDL_LIST];			//需加解密的MDL地址表
	ULONG			CryptMdlNum;
} GLOBALS;

NTSTATUS
HookPnpDevice(
	IN HANDLE OrgFunction,
	IN PDEVICE_OBJECT DeviceObject,
	IN PIRP Irp
	);

NTSTATUS
HookUsbScsi(
	IN HANDLE OrgFunction,
	IN PDEVICE_OBJECT DeviceObject,
	IN PIRP Irp
	);

NTSTATUS
HookFsdReadWrite(
	IN HANDLE OrgFunction,
	IN PDEVICE_OBJECT DeviceObject,
	IN PIRP Irp
	);

VOID
UsbMonUnload(
	IN PDRIVER_OBJECT DriverObject
	);

NTSTATUS
HookIoCompletionRoutine(
	IN PDEVICE_OBJECT DeviceObject,
	IN PIRP Irp,
	IN PVOID Context
	);

NTSTATUS
InlineHookIoCompletionRoutine(
	IN HANDLE OrgFunction,
	IN PDEVICE_OBJECT DeviceObject,
	IN PIRP Irp,
	IN PVOID Context
	);

PVOID
SetupIoCompletionRoutineHook(
	IN PIRP Irp,
	IN PIO_STACK_LOCATION irsp,
	IN PIO_COMPLETION_ROUTINE HookHandle
	);

extern GLOBALS Globals;
#endif

⌨️ 快捷键说明

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