首页 > 其他分享 >驱动对象和设备对象数据结构

驱动对象和设备对象数据结构

时间:2024-04-04 22:31:31浏览次数:21  
标签:驱动程序 对象 一个 内核 驱动 数据结构 设备

驱动对象:

每个驱动程序都会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载时被内核中的对象管理程序所创建的。驱动对象用DRIVER_OBJECT数据结构表示,它作为驱动的一个实例被内核中的I/O管理器负责加载,并且内核对一个驱动只加载一个实例。

驱动程序需要在DriverEntry中初始化。驱动对象描述了驱动程序载入到内存什么地方,驱动程序的大小和它的主要入口点(MajorFunction数组,就是分发函数);驱动程序对象有一个DeviceObject域指向一个设备对象链表,每个设备对象代表一个设备。

驱动对象的结构定义如下(wdm.h):

设备对象:

每个驱动程序会创建一个或多个设备(物理设备或逻辑设备)对象,用DEVICE_OBJECT数据结构表示。简称为DO。一个DO可以代表很多不同的东西,例如一个实际的硬盘、或实现一个类似管道的功能等等。我们在内核程序中生成一个DO,而一个内核程序是用一个驱动对象表示的,因此,一个设备对象总是属于一个驱动对象。但一个驱动对象可以有多个设备对象,每个设备对象都会有一个指针指向下一个设备对象,因此就形成一个设备链。设备链的第一个设备是由DRIVER_OBJECT结构体中指明的。

设备对象的结构定义如下(wdm.h):

 

标签:驱动程序,对象,一个,内核,驱动,数据结构,设备
From: https://blog.csdn.net/yyyooa/article/details/137384304

相关文章

  • JAVA学习-类型信息.Class对象
         Java中的类型信息是通过Class对象来表示和获取的。Class对象是Java中的一种特殊对象,它包含了被表示的类型的信息,如名称、字段、方法、构造函数等。可以通过Class对象来获取和操作类型的相关信息。一、以下是几个常见的获取Class对象的方式:1.使用类名.class语......
  • 数据结构——从入门到飞升——两个有序链表的交集
    题目:已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有......
  • linux驱动-17-input子系统
    1input子系统介绍按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。input子系统分为input驱动层、input核心层、input事件处理层,最终给用户空间提供可访问的设备节点。驱动层:输入设备的具体驱动程序,......
  • 对象存储:现代数据管理的关键技术
    在当今数字化时代,数据的产生和积累呈现出爆炸式增长的趋势。面对海量的数据,传统的存储方式已经无法满足日益增长的需求。为了有效管理和利用这些数据,对象存储技术应运而生。对象存储分为三种类型,第一种:标准存储,较适合用于云应用,数据分享,内容分享,热点分享等等浏览频率较高的存......
  • 【c++初阶】类与对象(下)
    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨......
  • TreeSet自定义对象compareTo(Object o)方法
    java小白,最近学到TreeSet,我们都知道在存储自定义对象时,需要使用Comparable或使用Comparator存储。刚刚碰到这样一段代码。publicclassPersonimplementsComparable{intage;Stringname;Person(intage,Stringname){this.age=age;th......
  • Qt C++ | Qt 元对象系统、信号和槽及事件(第一集)
    01元对象系统一、元对象系统基本概念1、Qt的元对象系统提供的功能有:对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。2、元对象系统是Qt对原有的C++进行的一些扩展,主要是为实现信号和槽机制而引入的,信号和槽机制是Qt的核心特征。3、要使用元对象系统......
  • VMware ESXi 6.7U3t macOS Unlocker & OEM BIOS 集成 Realtek 网卡驱动和 NVMe 驱动 (
    VMwareESXi6.7U3tmacOSUnlocker&OEMBIOS集成Realtek网卡驱动和NVMe驱动(集成驱动版)UIfix此版本解决的问题:VMwareHostClient无法将现有虚拟磁盘(VMDK)附加到虚拟机请访问原文链接:https://sysin.org/blog/vmware-esxi-6-sysin/,查看最新版。原创作品,转载请保......
  • 设备驱动-16-Linux 内核LED子系统
    1LED子系统介绍led子系统相关描述可在内核源码Documentation/leds/leds-class.txt了解。led子系统是一个简单的Linux子系统,在目录/sys/class/leds下展示该子系统设备,每个设备都有自己的属性:brightness:设置LED亮度,范围0~max_brightnessmax_brightness:最大亮度......
  • 数据结构(六)——图的应用
    6.4 图的应用6.4.1最小生成树对于⼀个带权连通⽆向图G=(V,E),⽣成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有⽣成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树(Minimum-Spanning-Tree,MST)。最小生成树可能有多个,但边的权值之......