news 2026/6/20 13:48:10

nt!PiProcessReenumeration函数中的PiMarkDeviceTreeForReenumeration

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nt!PiProcessReenumeration函数中的PiMarkDeviceTreeForReenumeration

nt!PiProcessReenumeration函数中的PiMarkDeviceTreeForReenumeration

1: kd> kc
#
00 nt!PiProcessReenumeration
01 nt!PipDeviceActionWorker
02 nt!PipRequestDeviceAction
03 nt!IopInitializePlugPlayServices
04 nt!IoInitSystem
05 nt!Phase1Initialization
06 nt!PspSystemThreadStartup
07 nt!KiThreadStartup
1: kd> dv
Request = 0x89dc7b78
addContext = struct _ADD_CONTEXT
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ntkrnlmp!_PI_DEVICE_REQUEST *)0x89dc7b78)
((ntkrnlmp!_PI_DEVICE_REQUEST *)0x89dc7b78) : 0x89dc7b78 [Type: _PI_DEVICE_REQUEST *]
[+0x000] ListEntry [Type: _LIST_ENTRY]
[+0x008] DeviceObject : 0x89db9c00 : Device for "\Driver\PnpManager" [Type: _DEVICE_OBJECT *]
[+0x00c] RequestType : ReenumerateRootDevices (8) [Type: _DEVICE_REQUEST_TYPE]
[+0x010] ReorderingBarrier : 0x0 [Type: unsigned char]
[+0x014] RequestArgument : 0x0 [Type: unsigned long]
[+0x018] CompletionEvent : 0x0 [Type: _KEVENT *]
[+0x01c] CompletionStatus : 0x0 [Type: long *]


NTSTATUS
PiProcessReenumeration(
IN PPI_DEVICE_REQUEST Request
)
{

enumType = (Request->RequestType == ReenumerateDeviceOnly)? EnumTypeShallow : EnumTypeDeep;
PiMarkDeviceTreeForReenumeration(
deviceNode,
enumType != EnumTypeShallow ? TRUE : FALSE);

addContext.DriverStartType = SERVICE_DEMAND_START;

PipProcessDevNodeTree(
deviceNode,
PnPBootDriversInitialized, // LoadDriver
FALSE, // ReallocateResources
enumType,
TRUE, // Synchronous
FALSE,
&addContext,
Request);

return STATUS_SUCCESS;
}


1: kd> p
eax=00000308 ebx=00000002 ecx=00000000 edx=00000000 esi=89dc7b78 edi=89db9ac0
eip=80c954b9 esp=f789a5b0 ebp=f789a5c0 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
nt!PiProcessReenumeration+0x81:
80c954b9 83fb01 cmp ebx,1
1: kd> p
PiMarkDeviceTreeForReenumerationWorker: Reenumerating HTREE\ROOT\0
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\ACPI_HAL\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_AFD\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_BEEP\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_CRCDISK\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_DMBOOT\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_DMLOAD\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_FIPS\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_GPC\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_IPSEC\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_KSECDD\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_MNMDD\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_MOUNTMGR\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_NDIS\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_NDISTAPI\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_NDISUIO\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_NDPROXY\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_NETBT\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_NULL\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_PARTMGR\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_RASACD\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_RDPCDD\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_RDPWD\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_TCPIP\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_TDTCP\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_VGASAVE\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_VOLSNAP\0000
PiMarkDeviceTreeForReenumerationWorker: Reenumerating Root\LEGACY_WANARP\0000
eax=00000000 ebx=00000002 ecx=00000000 edx=00000000 esi=89dc7b78 edi=89db9ac0
eip=80c954c6 esp=f789a5b0 ebp=f789a5c0 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
nt!PiProcessReenumeration+0x8e:
80c954c6 56 push esi

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 18:03:06

5分钟掌握Kronos资源配置秘诀:告别显存不足的终极指南

5分钟掌握Kronos资源配置秘诀:告别显存不足的终极指南 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 想要高效训练Kronos金融大模型却总是遇到…

作者头像 李华
网站建设 2026/6/19 20:28:21

IBM Watson Text to Speech?企业级API服务

开源语音合成新范式:从CosyVoice3看下一代TTS的演进路径 在智能客服越来越“像人”、虚拟主播频繁出圈的今天,文本到语音(Text-to-Speech, TTS)技术早已不再是实验室里的概念。用户不再满足于“能说话”,而是期待“说得…

作者头像 李华
网站建设 2026/6/16 2:10:37

CUDA版本要求?11.8及以上推荐使用

CUDA 11.8 及以上为何成为语音克隆系统的首选? 在 AI 音频生成技术飞速发展的今天,像阿里开源的 CosyVoice3 这样的多语言、多方言语音克隆系统正逐步进入生产环境。它不仅能精准合成普通话、粤语、英语和日语,还支持多达 18 种中国方言&…

作者头像 李华
网站建设 2026/6/6 20:23:17

TheBoringNotch:解锁MacBook凹槽的音乐魔法世界

TheBoringNotch:解锁MacBook凹槽的音乐魔法世界 【免费下载链接】boring.notch TheBoringNotch: Not so boring notch That Rocks 🎸🎶 项目地址: https://gitcode.com/gh_mirrors/bor/boring.notch 你是否曾想过,MacBook屏…

作者头像 李华
网站建设 2026/6/15 17:30:43

终极指南:如何为老旧主板启用Resizable BAR功能

终极指南:如何为老旧主板启用Resizable BAR功能 【免费下载链接】NvStrapsReBar Resizable BAR for Turring GTX 1600 / RTX 2000 GPUs 项目地址: https://gitcode.com/gh_mirrors/nv/NvStrapsReBar UEFI驱动技术为Turing显卡性能优化提供了全新的解决方案。…

作者头像 李华
网站建设 2026/6/13 4:10:41

语音生成速度多快?P100 GPU平均2秒内完成一段语音合成

语音生成速度多快?P100 GPU平均2秒内完成一段语音合成 在内容创作、智能交互日益依赖自然语音的今天,一个关键问题摆在开发者和产品设计者面前:我们能否在几秒钟内,仅凭一小段声音样本,就生成高度拟真的个性化语音&am…

作者头像 李华