news 2026/9/3 0:50:50

IopInitializeDeviceInstanceKey调用IopMapDeviceObjectToDeviceInstance添加到nt!PpDeviceReferenceTable非常重要

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IopInitializeDeviceInstanceKey调用IopMapDeviceObjectToDeviceInstance添加到nt!PpDeviceReferenceTable非常重要

IopInitializeDeviceInstanceKey调用IoCreateDevice后调用IopMapDeviceObjectToDeviceInstance添加到nt!PpDeviceReferenceTable

BOOLEAN
IopInitializeDeviceInstanceKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING KeyName,
IN OUT PVOID Context
)
{


//
// Create madeup PDO and device node to represent the root device.
//

status = IoCreateDevice( IoPnpDriverObject,
sizeof(IOPNP_DEVICE_EXTENSION),
NULL,
FILE_DEVICE_CONTROLLER,
FILE_AUTOGENERATED_DEVICE_NAME,
FALSE,
&deviceObject );

if (NT_SUCCESS(status)) {

deviceObject->Flags |= DO_BUS_ENUMERATED_DEVICE;
deviceObject->DeviceObjectExtension->ExtensionFlags |= DOE_START_PENDING;

status = PipAllocateDeviceNode(deviceObject, &deviceNode);
if (status != STATUS_SYSTEM_HIVE_TOO_LARGE && deviceNode) {

。。。。。。

//
// Add an entry into the table to set up a mapping between the DO
// and the instance path.
//

status = IopMapDeviceObjectToDeviceInstance(deviceNode->PhysicalDeviceObject, &deviceNode->InstancePath);
ASSERT(NT_SUCCESS(status));

参考:

1: kd> kc
#
00 nt!IoCreateDevice
01 nt!IopInitializeDeviceInstanceKey
02 nt!PipApplyFunctionToSubKeys
03 nt!IopInitializeDeviceKey
04 nt!PipApplyFunctionToSubKeys
05 nt!IopGetRootDevices
06 nt!IopPnPDispatch
07 nt!IofCallDriver
08 nt!IopSynchronousCall
09 nt!IopQueryDeviceRelations
0a nt!PipEnumerateDevice
0b nt!PipProcessDevNodeTree
0c nt!PiProcessReenumeration
0d nt!PipDeviceActionWorker
0e nt!PipRequestDeviceAction
0f nt!IopInitializePlugPlayServices
10 nt!IoInitSystem
11 nt!Phase1Initialization
12 nt!PspSystemThreadStartup
13 nt!KiThreadStartup

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

基于NVIDIA显卡的PyTorch-CUDA-v2.7最佳适配方案

基于NVIDIA显卡的PyTorch-CUDA-v2.7最佳适配方案 在深度学习模型日益复杂、训练数据量爆炸式增长的今天,一个稳定高效的GPU加速环境已不再是“锦上添花”,而是决定研发效率的关键基础设施。然而,许多开发者仍困于“依赖地狱”:安装…

作者头像 李华
网站建设 2026/9/2 21:58:09

计算机Java毕设实战-基于springBoot的高校大学生党建系统设计与实现党员发展管理、理论学习教育、组织生活管理、党员考核评议【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/9/1 5:03:29

PyTorch-CUDA-v2.7镜像设置环境变量的最佳实践

PyTorch-CUDA-v2.7 镜像环境变量配置的深度实践 在现代 AI 开发中,一个稳定、高效且可复现的运行环境几乎决定了项目的成败。尽管 PyTorch 提供了灵活易用的编程接口,但真正让模型“跑起来”的,往往是背后那些不起眼的环境变量和系统配置。尤…

作者头像 李华
网站建设 2026/9/2 22:27:12

我发现LLM短信方言适配,乡村误诊率直降40%

📝 博客主页:Jax的CSDN主页 目录 当AI学会“未病先防”:中医智慧如何重塑心理健康干预 一、被忽视的痛点:精神健康领域的“预防真空” 二、技术破局:LLM如何“翻译”中医智慧 三、价值链重构:为什么预防环节…

作者头像 李华