kbfilterdevice.h

来自「键盘过滤驱动」· C头文件 代码 · 共 70 行

H
70
字号
// KbfilterDevice.h
//
// Generated by DriverWizard version DriverStudio 2.0.0 (Build 473)
// Requires Compuware's DriverWorks classes
//

#ifndef __KbfilterDevice_h__
#define __KbfilterDevice_h__
#include "kbdmou.h"

// TODO:	The wizard creates a single driver managed queue class.
//			You may choose to create additional classes derived from
//			KDriverManagedQueueEx to help manage Irp processing.	
/*
class KbfilterDevice_DriverManagedQueue : public KDriverManagedQueueEx
{
public:
	SAFE_DESTRUCTORS;
	VOID StartIo(KIrp I);
};
*/
typedef
VOID
(*PMY_SERVICE_CALLBACK) (
    PDEVICE_OBJECT pDeviceObject,
    PKEYBOARD_INPUT_DATA InputDataStart,
    PKEYBOARD_INPUT_DATA InputDataEnd,
    PULONG InputDataConsumed
    );


#define DEVMEMBER_SERVICE_CALLBACK(classname, function)	\
	VOID function(PKEYBOARD_INPUT_DATA InputDataStart,\
	PKEYBOARD_INPUT_DATA InputDataEnd,              \
	PULONG InputDataConsumed);						\
	static VOID LinkTo(function)(						\
    	PDEVICE_OBJECT pDevObj,					\
	    PKEYBOARD_INPUT_DATA InputDataStart,\
		PKEYBOARD_INPUT_DATA InputDataEnd,\
		PULONG InputDataConsumed)							\
	{												\
		((classname*)KDevicePTR(pDevObj))			\
			->function(InputDataStart,InputDataEnd,InputDataConsumed);						\
	}


class KbfilterDevice : public KWdmFilterDevice
{
	// Constructors
public:
	SAFE_DESTRUCTORS;
	KbfilterDevice(PDEVICE_OBJECT Pdo, ULONG Unit);
	~KbfilterDevice();
	char ConvertScancodeToLetter(ULONG scancode);
	// Member Functions
public:
	DEVMEMBER_SERVICE_CALLBACK(KbfilterDevice, KBServiceCallback);
	MEMBER_PASSTHROUGH_COMPLETE(KbfilterDevice, InternalDeviceCompletion);
	virtual NTSTATUS InternalDeviceControl(KIrp I);	

	// Member Data
protected:
		// Unit number for this device (0-9)
	ULONG					m_Unit;
	PDEVICE_OBJECT			m_RealDeviceObject;
	PMY_SERVICE_CALLBACK	m_RealClassService;
};

#endif

⌨️ 快捷键说明

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