PnpMgr分析
+ -

PNP管理器新设备的生成和老设备的卸载

2023-09-05 28 0
您好,该文仅对付费用户可见,请开通VIP会员

0 篇笔记 写笔记

PNP管理器设备树变动IoInvalidateDeviceRelations
IoInvalidateDeviceRelations用于通知PNP管理器设备树关系已经发生变化,这样PNP管理器会重新扫描设备树。VOID IoInvalidateDeviceRelations( IN PDEVICE_OBJECT DeviceObject, IN DEV......
PNP管理器重新扫描设树ReenumerateDeviceTree原理
IoInvalidateDeviceRelations最终下发是的一个ReenumerateDeviceTree请求到WorkItem.case RestartEnumeration: // Used after completion of async I/Ocase Reenum......
PNP管理器新设备的生成和老设备的卸载
这里介绍IoInvalidateDeviceRelations引起的设备节点状态变化的状态机:当然,系统定义的设备节点太多了typedef enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified = 0x300, // 768 ......
PNP管理器创建新的设备节点及设备节点树
通过IoCreateDevice创建的PDO设备通过IRP_MN_QUERY_DEVICE_RELATION获取子设备集之后,PNP管理器判断出这是一个新的PDO之后,会创建设备节点并与设备对象DEVICE_OBJECT绑定。判断是一个新的标准很简单,就是判断该设备象DEVOCE_OBJECT的......
PNP管理器设备节点初始化流程
设备节点的创建PDO设备信息的收集安装设备驱动、调用AddDevice分配设备资源调用IRP_MN_PNP_START等的过程其中在PipProcessStartPhase1中调用IopStartDevice,即IRP_MN_START_DEVICE.......
PNP管理器事件
当设备管理器有动作时,使用PiInsertEventInQueue创建一个相关的事件动作,并挂入相应全局动作队列中,然后启用WorkItem来执行该动作。事件动作定义为:typedef struct _PNP_DEVICE_EVENT_ENTRY { LIST_ENTRY ......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!