过滤T雪软件的驱动的一个历程_的驱动
来源:互联网 发布:淘宝为什么要交保证金 编辑:程序博客网 时间:2024/05/16 23:56
#include"ntddk.h"NTSTATUSObReferenceObjectByName(__in PUNICODE_STRING ObjectName,__in ULONG Attributes,__in_opt PACCESS_STATE AccessState,__in_opt ACCESS_MASK DesiredAccess,__in POBJECT_TYPE ObjectType,__in KPROCESSOR_MODE AccessMode,__inout_opt PVOID ParseContext,__out PVOID *Object);extern POBJECT_TYPE *IoDriverObjectType;PDRIVER_DISPATCH m_laolichengdizhi;//历程类型PDRIVER_OBJECT m_dedaokanxuequdongduixiang;//获得的看雪驱动对象VOID xiezai1(_In_ struct _DRIVER_OBJECT *qudongduixiang1){KdPrint(("驱动卸载历程已经执行\n"));if (MmIsAddressValid(m_dedaokanxuequdongduixiang))//判断是否是有效的地址{m_dedaokanxuequdongduixiang->MajorFunction[IRP_MJ_DEVICE_CONTROL] = m_laolichengdizhi;//卸载自己的历程(还原看雪的历程)}}NTSTATUS guolvqudong1(_In_ struct _DEVICE_OBJECT *DeviceObject, _Inout_ struct _IRP *Irp){KdPrint(("我自己写的驱动历程 运行看雪软件的时候 进入到它的sys 我过滤到了 欧耶\n"));return m_laolichengdizhi(DeviceObject, Irp);}NTSTATUS DriverEntry(PDRIVER_OBJECT qudongduixiang1,PUNICODE_STRING zhucebiao1){KdPrint(("通过IO管理器生成驱动对象 进入驱动入口\n"));KdPrint(("注册表路径%wZ\n", zhucebiao1));KdPrint(("驱动对象名%wZ\n", &qudongduixiang1->DriverName));UNICODE_STRING m_kanxuequdongmingzi1;RtlInitUnicodeString(&m_kanxuequdongmingzi1, L"\\Driver\\PCHunter32al");ObReferenceObjectByName(&m_kanxuequdongmingzi1, OBJ_CASE_INSENSITIVE,//不区分大小写 驱动名可以写大写或小写 调用了这个函数打开了一次这个对象 对象管理器的计数加1NULL, //结构比较复杂设计对象特性的东西access state 0, // 访问权限可以写0 写0完全访问不受控制 access mask *IoDriverObjectType,//对象类型 注意加*号 KernelMode,//内核模式 有三种模式 enum 类型 NULL, //不知道 parse context (PVOID*)&m_dedaokanxuequdongduixiang);//输出对象 我们要得到的驱动对象 )//注意类型转换 这个是重点出错的地方KdPrint(("看雪驱动对象名%wZ\n", &m_dedaokanxuequdongduixiang->DriverName));m_laolichengdizhi = m_dedaokanxuequdongduixiang->MajorFunction[IRP_MJ_DEVICE_CONTROL];//主函数有28 个不同的历程m_dedaokanxuequdongduixiang->MajorFunction[IRP_MJ_DEVICE_CONTROL] = guolvqudong1;//设备控制历程 所有的应用程序和驱动通信 都会用这个ObDereferenceObject(m_dedaokanxuequdongduixiang);//关闭对象管理器的计数 千万别忘记了qudongduixiang1->DriverUnload = xiezai1;return STATUS_SUCCESS;}
0 0
- 过滤T雪软件的驱动的一个历程_的驱动
- Windows驱动_文件系统微小过滤驱动之三微小过滤驱动的操作
- 一个简单的串口过滤驱动
- 一个简单的文件系统过滤驱动框架
- 一个简单的文件系统过滤驱动框架
- 过滤驱动的概念
- 过滤驱动的概念
- Windows驱动_文件系统微小过滤驱动之二驱动的安装和加载
- 一个可以过滤串口输入的过滤驱动
- windows下的驱动开发(过滤驱动)
- 串口的过滤驱动例子
- 枚举系统的过滤驱动
- NDIS6过滤驱动的编写
- 串口过滤驱动(过滤所有的串口)
- 紫金桥组态软件的DL/T 645-2007驱动
- 文件过滤驱动--一个Unicode操作的Lib
- 一个简单的串口过滤驱动及一点体会
- 实现一个具有还原功能的磁盘卷过滤驱动
- GStreamer基础教程07——多线程和Pad的有效性
- 次小生成树
- ARM之210内存初始化
- Python处理时间
- 机器学习——神经网络
- 过滤T雪软件的驱动的一个历程_的驱动
- Java中的注解入门
- Emacs graphviz图形中使用latex
- 微信小程序点击编译为什么老是弹出设置框
- [杜教筛] BZOJ 3512 DZY Loves Math IV
- 【CUDA开发】CUDA编程接口(一)------一十八般武器
- 二分查找,lower_bound,upper_bound
- 51NOD 1483 化学变换
- HM中语法元素二进制化的相关代码分析