SuperAPI AI 工具集

windbg-kernel-irp-lifecycle-triage

测试与质量

查看项目

更新于 10-16 00:32

技能介绍

用途:在 Windows 内核转储或经授权的实时内核会话中排查 I/O Request Packet(IRP)的停滞与生命周期问题,例如 0x9F 电源故障以及进度取决于某个驱动请求的挂起。需先加载 windbg-diagnostic-method,并在证据排序、假设检验、置信度校准、独立复核与报告验证中持续应用。

主要能力:解码已知请求、跟踪调用栈与所有权、关联依赖、检验请求协议。对 0x9F 且 P1 等于 3 的情况,P4 即被阻塞的 IRP,应先直接检查它再做全系统搜索。需要记录主/次操作、当前栈位置、设备/驱动栈、完成例程、挂起标志、取消状态及相关线程,判断应由哪个组件推进或完成请求。

必要用法: !analyze -v !irp <irp-address> 无请求地址且转储含所需池数据时可用 !irpfind;该命令在实时会话中开销较大,在受限转储中可能不完整,无结果不能证明不存在未完成请求。不要仅凭 IRP 栈中最后打印的名字认定问题驱动。

关联:出现 I/O verifier 违规或影子历史转 windbg-kernel-verifier-triage;锁链死锁转 windbg-kernel-lock-deadlock-triage;异常或陷阱转 windbg-kernel-bugcheck-triage。

适用场景:电源请求、取消竞争、双重完成、挂起请求等协议检验。

限制:WDM 与 WDF 的所有权 API 不同,不可未经契约检查就把原生 WDM 完成/取消模式套用到框架拥有的请求;单一活动 IRP 快照可能不足以还原历史;本技能只建立证据,不是完整 I/O 协议参考,也不解码所有电源子类型;历史缺失时应提出经批准的插桩测试,而非臆断。反馈需遵循 FEEDBACK.md 并仅提交经审查、脱敏内容,不自动上传内核转储或请求内容。