news 2026/4/25 21:05:59

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/4/23 11:47:12

PyTorch-CUDA-v2.7镜像运行YOLOv8全流程演示

PyTorch-CUDA-v2.7镜像运行YOLOv8全流程演示 在现代AI开发中,一个常见的尴尬场景是:你找到了一篇令人兴奋的目标检测论文,迫不及待地想复现结果,却卡在了环境配置上——CUDA版本不匹配、PyTorch与cuDNN冲突、驱动安装失败……这样…

作者头像 李华
网站建设 2026/4/23 11:27:07

PyTorch-CUDA-v2.7镜像是否可用于边缘设备部署

PyTorch-CUDA-v2.7 镜像是否适合边缘部署?一场关于算力、体积与架构的现实拷问 在工厂角落的摄像头里,在无人配送车的控制盒中,在无人机巡检系统的边缘计算节点上——AI 正以前所未有的速度向“末端”迁移。我们不再满足于云端训练后偶尔下发…

作者头像 李华
网站建设 2026/4/25 3:17:01

十佳降AI工具,专治知网AI率超标

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

作者头像 李华
网站建设 2026/4/23 11:26:36

AI率必须20%以下?学生实测十大降AI工具合集

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

作者头像 李华
网站建设 2026/4/23 12:49:05

Java毕设选题推荐:基于SpringBoot的高校餐饮档口管理系统的设计与实现基于SpringBoot的食堂管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华