资源简介

Nt式过滤驱动 keyfilter 键盘过滤驱动,付驱动安装说明,和用户端读取按键的方法。

资源截图

代码片段和文件信息

/************************************************************************
*************************************************************************/

#include “KeyFilter.h“

/************************************************************************
* 函数名称:DriverEntry
* 功能描述:初始化驱动程序,定位和申请硬件资源,创建内核对象
* 参数列表:
      pDriverobject:从I/O管理器中传进来的驱动对象
      pRegistryPath:驱动程序在注册表的中的路径
* 返回 值:返回初始化驱动状态
*************************************************************************/
#pragma INITCODE 
extern “C“ NTSTATUS DriverEntry(IN PDRIVER_object pDriverobject
IN PUNICODE_STRING pRegistryPath)
{
KdPrint((“Enter DriverEntry\n“));

pDriverobject->DriverExtension->AddDevice = KeyFilterAddDevice;

pDriverobject->MajorFunction[IRP_MJ_PNP] = KeyFilterPnp;
pDriverobject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = KeyFilterDeviceIoCtl;
pDriverobject->MajorFunction[IRP_MJ_CREATE] = KeyFilterDispatchRoutine;
pDriverobject->MajorFunction[IRP_MJ_CLOSE] = KeyFilterDispatchRoutine;
pDriverobject->MajorFunction[IRP_MJ_READ] = KeyFilterRead;
pDriverobject->MajorFunction[IRP_MJ_WRITE] = KeyFilterDispatchRoutine;
pDriverobject->DriverUnload = KeyFilterUnload;
pDriverobject->DriverStartIo = KeyFilterStartIO;

KdPrint((“Leave DriverEntry\n“));
return STATUS_SUCCESS;
}

/************************************************************************
* 函数名称:KeyFilterAddDevice
* 功能描述:添加新设备
* 参数列表:
      Driverobject:从I/O管理器中传进来的驱动对象
      PhysicalDeviceobject:从I/O管理器中传进来的物理设备对象
* 返回 值:返回添加新设备状态
*************************************************************************/
#pragma PAGEDCODE
NTSTATUS KeyFilterAddDevice(IN PDRIVER_object Driverobject
                           IN PDEVICE_object PhysicalDeviceobject)

PAGED_CODE();

_asm int 3;

NTSTATUS status;
PDEVICE_object PDeviceobject;
UNICODE_STRING strnum;
UNICODE_STRING devName;
UNICODE_STRING kbdclassname;
UNICODE_STRING symlinkName;
//PDRIVER_object kbdDriver;
PDEVICE_object kbdDevice;
int index = 0;
PDEVICE_EXTENSION pdx;
WCHAR Devnamebase[100] =  L“\\Device\\KeyFilterDevice“;
KdPrint((“Enter KeyFilterAddDevice\n“));
//
PFILE_object Fileobject = NULL;
RtlInitUnicodeString(&kbdclassnameL“\\Device\\KeyboardClass0“);
//通过classname得到设备对象
status = IoGetDeviceobjectPointer(&kbdclassnameFILE_ALL_ACCESS&Fileobject&kbdDevice);
if (!NT_SUCCESS(status))
{
KdPrint((“ObReferenceobjectByName error0x%x\n“status));
return status;
}

do{
RtlInitUnicodeString(&strnumL“strnum“);
RtlIntegerToUnicodeString(index10&strnum);

RtlInitUnicodeString(&devNameDevnamebase);
RtlAppendUnicodeStringToString(&devName&strnum);
//创建设备
status = IoCreateDevice(
Driverobject
sizeof(DEVICE_EXTENSION)
&devName
kbdDevice->DeviceType
kbdDevice->Characteristics
FALSE
&PDeviceobject);
if( !NT_SUCCESS(status))
break;
pdx = (PDEVICE_EXTENSION)PDeviceobject->DeviceExtension;
pdx->NextSt

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7769  2014-07-17 10:04  DriverDev.vcxproj

     文件       1189  2014-07-17 10:04  DriverDev.vcxproj.filters

     文件        143  2014-06-16 09:16  DriverDev.vcxproj.user

     文件       2731  2014-07-14 15:31  HelloWDM.inf

     文件        282  2014-07-16 11:07  IoCode.h

     文件      19066  2014-07-21 11:06  KeyFilter.cpp

     文件       2386  2014-07-21 10:20  KeyFilter.h

     文件         20  2007-11-06 09:54  说明.txt

     文件    8257536  2014-07-24 15:16  ipch\driverdev-36610be0\driverdev-84e5d0c9.ipch

     文件         86  2014-07-24 15:41  MyDriver_Check\DriverDev.log

     文件       3754  2014-07-24 15:41  ShowInputKey\Debug\ShowInputKey.Build.CppClean.log

     文件        511  2014-07-24 15:41  ShowInputKey\Debug\ShowInputKey.log

     文件        301  2014-07-16 11:09  ShowInputKey\IoCode.h

     文件       4531  2014-07-08 09:14  ShowInputKey\ReadMe.txt

     文件      67777  2009-08-31 02:31  ShowInputKey\res\ShowInputKey.ico

     文件        808  2014-07-08 09:14  ShowInputKey\res\ShowInputKey.rc2

     文件       1922  2014-07-17 14:46  ShowInputKey\resource.h

     文件      90832  2014-07-18 10:15  ShowInputKey\ShowInputKey.aps

     文件       2547  2014-07-08 09:14  ShowInputKey\ShowInputKey.cpp

     文件        541  2014-07-08 09:14  ShowInputKey\ShowInputKey.h

     文件      11748  2014-07-17 15:51  ShowInputKey\ShowInputKey.rc

     文件       6385  2014-07-16 17:04  ShowInputKey\ShowInputKey.vcxproj

     文件       2152  2014-07-16 11:09  ShowInputKey\ShowInputKey.vcxproj.filters

     文件        143  2014-07-08 09:14  ShowInputKey\ShowInputKey.vcxproj.user

     文件       9468  2014-07-18 15:15  ShowInputKey\ShowInputKeyDlg.cpp

     文件       1595  2014-07-18 15:15  ShowInputKey\ShowInputKeyDlg.h

     文件        214  2014-07-08 09:14  ShowInputKey\stdafx.cpp

     文件       1807  2014-07-08 09:14  ShowInputKey\stdafx.h

     文件        314  2014-07-08 09:14  ShowInputKey\targetver.h

     文件       4140  2007-11-05 20:04  DriverDev.dsp

............此处省略12个文件信息

评论

共有 条评论