news 2026/2/3 18:02:33

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/1/30 6:44:18

将PyTorch模型从实验推向生产:部署全流程解析

将 PyTorch 模型从实验推向生产:部署全流程解析 在深度学习项目中,最令人兴奋的时刻往往不是模型在测试集上首次跑出高准确率,而是它真正上线、被用户调用、产生实际价值的那一刻。然而,从 Jupyter Notebook 中的一次成功推理&…

作者头像 李华
网站建设 2026/1/29 11:55:37

Docker镜像源推荐:PyTorch-CUDA-v2.7一键拉取与部署

Docker镜像源推荐:PyTorch-CUDA-v2.7一键拉取与部署 在深度学习项目开发中,最让人头疼的往往不是模型设计本身,而是环境搭建——明明代码没问题,却因为CUDA版本不匹配、cuDNN缺失或PyTorch编译错误导致torch.cuda.is_available()返…

作者头像 李华
网站建设 2026/1/29 19:21:52

十佳降AI工具分享,论文党必收藏

被 AI率折磨过的人,才知道有多崩。 如果这篇整理能帮你少走点弯路,那就值了。 1、嘎嘎降AI 官网:https://www.aigcleaner.com/?sourcecsdn&keyword1229 功能特点: 1、检测、降重和降AI一键同步,相当于一次就能…

作者头像 李华
网站建设 2026/1/29 17:21:04

PyTorch-CUDA-v2.7镜像是否支持Wandb日志追踪

PyTorch-CUDA-v2.7 镜像是否支持 Wandb 日志追踪 在深度学习项目开发中,一个常见但棘手的问题是:如何在快速迭代的同时,确保每一次实验都可追溯、可复现?尤其是在团队协作场景下,不同成员跑出的结果五花八门&#xff…

作者头像 李华
网站建设 2026/1/29 19:24:20

技术人文与企业价值观如何融合

技术人文与企业价值观的融合,是现代组织实现可持续创新与社会责任平衡的关键命题。 核心在于:1、将技术发展与人文精神并行设计;2、通过企业价值观为技术赋予方向与边界;3、以组织文化与制度机制促进两者共生。 正如管理大师彼得德…

作者头像 李华
网站建设 2026/2/3 14:02:10

PyTorch-CUDA-v2.7镜像如何应对OOM内存溢出问题

PyTorch-CUDA-v2.7镜像如何应对OOM内存溢出问题 在深度学习项目推进过程中,你是否曾遇到这样的场景:训练脚本刚跑起来,显存使用瞬间飙升,紧接着抛出一条刺眼的错误——CUDA out of memory?尤其是在使用大模型或高分辨率…

作者头像 李华