资源简介
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个文件信息
- 上一篇:Linux环境编程:从应用到内核(文字版非扫描版)
- 下一篇:3Dmax.zip
相关资源
- DriverStudio3.2补丁DSDDKEnv.zip
- U盘过滤并且实现透明加密
- \\基于WDF过滤驱动的USB存储设备监控系
- USB内核过滤驱动
- 史上最简单的VS2008+WINDDK驱动开发环境
- 修复单击变双击的鼠标过滤驱动源码
- USB设备过滤驱动[Src+Bin]
- NTDDK 文件
- Window文件监控微过滤驱动
- 驱动环境搭建必备DDKWizard_helpDDKWizar
- windows内科安全与驱动开发,minifilte
- NTDDK开发包(usb驱动开发相关)
- window DDK/WDK 经典中文帮助文档
- Windows DDK 中文版
- wdm驱动-过滤驱动
- de4dot-Reactor5.0 By ddk313.rar
- sdkddkver.h
评论
共有 条评论