- 2024-05-29Windows驱动开发涉及到许多重要的概念和技术,包括调试、进程管理、文件操作、注册表访问、系统调用、IRP(I/O Request Packet)和锁原理。以下是对每个主题的简要介绍:
Windows驱动开发涉及到许多重要的概念和技术,包括调试、进程管理、文件操作、注册表访问、系统调用、IRP(I/ORequestPacket)和锁原理。以下是对每个主题的简要介绍:调试Windows驱动程序的调试通常涉及使用调试器(如WinDbg)来分析驱动程序的运行时行为,包括查看内存、寄存器状态、
- 2024-05-18驱动通信1
05驱动通信介绍通信流程:R3->符号链接->设备对象->驱动对象->驱动功能驱动通信实质上是设备通信设备是挂在驱动上的DeviceObject上面的所以我们看一下设备对象可以参考微软官方文档kd>dt_DEVICE_OBJECTntdll!_DEVICE_OBJECT+0x000Type:Int2B//类型(设
- 2024-05-16逆向 | 驱动IRP通信模板
逆向|驱动IRP通信模板踩了很多坑,比如说IoCreateDevice以后要删除,符号链接也要在卸载的时候删除啥的。反正存个模板在这儿下次就能套了:#include<ntddk.h>#include<stdio.h>#include<stdlib.h>//0-2047是保留的,可以用2048-4095#defineOPER1CTL_CODE(FILE_DEVICE_UN
- 2024-04-09CommMonitor列表视图有什么功能特性?
CommMonitor列表视图有什么功能特性?列表视图主要展示IRP的基本属性,有串口数据包序号、时间、进程、COM口、IRP功能、数据长度、数据(hex)、字符串、备注。包序号:按内核监控驱动取得的数据包的索引,索引号是按开始停监控开如计数,停止监控清0,升序增加;时间:有两种记录方式,根据通用
- 2024-04-09CommMonitor如何监控电脑串口
CommMonitor如何监控电脑串口?1、新建、打开监控会话打开CEIWEICommMonitor软件,点击工具栏上的[+]添加新监控会话,接下来进入新建监控对话框-〉选择要监控的串口-〉选择数据视图后,点击[确定]。2、监控的串口选择支持多个串口同时监控,如下图3、视图窗口说明a)列
- 2024-01-17基于Minifilter的文件过滤驱动以及与应用层通讯
前一段时间在做一个文件过滤系统,为了配合公司的产品使用,希望对指定目录禁止访问。一开始使用的是sfilter的框架,很多事情需要自己做,创建过滤驱动的控制设备,创建符号链接,设置IRP例程,设置FASTI/O例程,用这个框架做了一半,与应用层通讯比较麻烦,就又去学习了Minifilter框架,这个框架就非
- 2023-11-29入门Windows驱动程序
来自:https://www.anquanke.com/post/id/85972入门Windows驱动程序:0x1 背景笔者在学习中发现,关于Windows驱动编程的文章多不胜数,但是其中很多文章的内容繁杂不便于了解与学习,缺少对内容精准的概括与总结,所以本篇文章将对Windows驱动编程进行一次总结性介绍。文章将分为两个部
- 2023-11-20转载:基于WDF的PCI/PCIe接口卡Windows驱动程序(2)-开发者需要了解的WDF中的一些重要的概念
原文出处:http://www.cnblogs.com/jacklu/p/4646601.html本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法。在上一篇简要介绍了WDF和开发环境搭建后,本篇将讲述几个WDF中的概念,对开发者了解WDF非常有帮助,属于“内功部分”;本篇文章结
- 2023-10-25转个文件过滤驱动的东东,总结的比较全面
1> IFS 流程图a.生成一个控制设备.当然此前你必须给控制设置指定名称.b.设置Dispatch Functions. c.设置Fast Io Functions. d.编写一个my_fs_notify回调函数,在其中绑定刚激活的FS CDO. e.使用wdff_reg_notify调用注册这个回调函数。f.编写默认的dispatch functions. g
- 2023-10-24FastIo driver
由于你的驱动将要绑定到文件系统驱动的上边,文件系统除了处理正常的IRP 之外,还要处理所谓的FastIo.FastIo是CacheManager 调用所引发的一种没有irp 的请求。换句话说,除了正常的DispatchFunctions 之外,你还得为DriverObject 撰写另一组FastIoFunctions.这组函数的指针在dri
- 2023-02-27Windows驱动开发学习记录-IRP取消例程问题
一般设置IRP取消例程很简单,大致代码如下{......IoSetCancelRoutine(pIrp,LogIRPCancelRoutine); pIrp->IoStatus.Status=STATUS_PENDING;returnSTATU
- 2022-11-07调试遗漏IoStartNextPacket引起的阻塞
前面driververifier检测驱动死锁 一文中本想检测一下驱动中潜在的死锁来解决驱动无响应的bug,然而并没有实质性的进展。后来通过一系列的调试终于找到了
- 2022-11-07windbg中通过文件句柄查找设备(!handle/!fileobj/!devobj命令)
有时,在驱动程序中会调用ZwCreateFile获得设备句柄,然后保存在设备扩展区域中供其他例程使用。由于驱动程序经常被动调用----执行的上下文可能不是同一个线程----会获得
- 2022-11-07win驱动中使用IRP注意项及原因分析(后续补充)
MS上有很多关于驱动中使用IRP的守则(跟黄历中的宜忌差不多了),比如:Q1.“DriversmustnotattempttoreuseIRPsissuedbytheI/Omanager.Inparticular,driversshou
- 2022-11-07注册IRP_MJ_SHUTDOWN事件 基于ReactOS0303
系统关闭时,会向注册SHUTDOWN事件的设备驱动发送IRP_MJ_SHUTDOWN事件。NTSTATUSSTDCALLNtShutdownSystem(INSHUTDOWN_ACTIONAction){if(Action>ShutdownPowe
- 2022-10-11IRP IO_STACK_LOCATION 《寒江独钓》内核学习笔记(1)
在学习内核过滤驱动的过程中,遇到了大量的涉及IRP操作的代码,这里有必要对IRP的数据结构和与之相关的API函数做一下笔记。 1.相关阅读资料《深入解析windows操作系统(第4
- 2022-10-03驱动开发:通过Async反向与内核通信
在前几篇文章中给大家具体解释了驱动与应用层之间正向通信的一些经典案例,本章将继续学习驱动通信,不过这次我们学习的是通过运用Async异步模式实现的反向通信,反向通信机制在
- 2022-10-03驱动开发:通过Async反向与内核通信
在前几篇文章中给大家具体解释了驱动与应用层之间正向通信的一些经典案例,本章将继续学习驱动通信,不过这次我们学习的是通过运用Async异步模式实现的反向通信,反向通信机制在
- 2022-10-02驱动开发:通过ReadFile与内核层通信
驱动与应用程序的通信是非常有必要的,内核中执行代码后需要将其动态显示给应用层,但驱动程序与应用层毕竟不在一个地址空间内,为了实现内核与应用层数据交互
- 2022-09-30驱动开发:通过ReadFile与内核层通信
驱动与应用程序的通信是非常有必要的,内核中执行代码后需要将其动态显示给应用层,但驱动程序与应用层毕竟不在一个地址空间内,为了实现内核与应用层数据交互则必须有通信的方
- 2022-09-30驱动开发:通过ReadFile与内核层通信
驱动与应用程序的通信是非常有必要的,内核中执行代码后需要将其动态显示给应用层,但驱动程序与应用层毕竟不在一个地址空间内,为了实现内核与应用层数据交互则必须有通信的方法
- 2022-08-2164位内开发第二十三讲,分层过滤驱动-键盘过滤
目录64位内开发第二十三讲,分层过滤驱动-键盘过滤一丶键盘过滤的两种方式1.1第一种方式驱动对象方式绑定1.2第二种方式,直接设备类型绑定.1.3效果64位内开发第二十三