vkeyfdo.h

来自「虚拟的键盘设备。安装后系统中出现一个虚拟的键盘设备。可以通过设备管理器看到。名字」· C头文件 代码 · 共 65 行

H
65
字号
//////////////////////////////////////////////////////////////////////////////
//	Copyright 2004 by leiwhere
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
//	Include WDM standard header with C linkage

extern "C"
{
#include "wdm.h"
#include "kbdmou.h"
#include <ntddkbd.h>
}

typedef VOID (*KeyboardClassServiceCallback)(
	IN PDEVICE_OBJECT DeviceObject,
	IN PKEYBOARD_INPUT_DATA InputDataStart,
	IN PKEYBOARD_INPUT_DATA InputDataEnd,
	IN OUT PULONG InputDataConsumed);

/////////////////////////////////////////////////////////////////////////////
//	Our device extension
typedef struct
{
	PDEVICE_OBJECT	fdo;
	PDEVICE_OBJECT	NextStackDevice;
}DEVICE_EXTENSION, *PDEVICE_EXTENSION;

extern PDEVICE_OBJECT FunctionDevice;

class MYKEYBOARD_INPUT_DATA : public KEYBOARD_INPUT_DATA
{
public:
	MYKEYBOARD_INPUT_DATA()
	{
		RtlZeroMemory(this,sizeof(MYKEYBOARD_INPUT_DATA));
	}
};

/////////////////////////////////////////////////////////////////////////////
// Forward declarations of global functions

VOID Unload(IN PDRIVER_OBJECT DriverObject);

NTSTATUS Power(	IN PDEVICE_OBJECT fdo,IN PIRP Irp);

NTSTATUS Pnp(IN PDEVICE_OBJECT fdo,IN PIRP Irp);

NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject,IN PDEVICE_OBJECT pdo);

NTSTATUS Create(IN PDEVICE_OBJECT fdo,IN PIRP Irp);

NTSTATUS Close(IN PDEVICE_OBJECT fdo,IN PIRP Irp);

NTSTATUS DeviceControl(	IN PDEVICE_OBJECT fdo,IN PIRP Irp);

NTSTATUS InternalControl(IN PDEVICE_OBJECT fdo,IN PIRP Irp);

NTSTATUS SystemControl(	IN PDEVICE_OBJECT fdo,IN PIRP Irp);

NTSTATUS CompleteIrp( PIRP Irp, NTSTATUS status, ULONG info);

/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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