Windows驱动开发-_DRIVER_OBJECT结构体

2021-03-19 02:23

阅读:534

标签:col   内核   func   结构   第一个   unicode   device   src   pre   

每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载的时候,被内核中的对象管理程序所创建的,内核对一个驱动只加载一个实例,是由内核中的I/O管理器负责加载的,驱动程序需要在DriverEntry中初始化该驱动对象。

_DRIVER_OBJECT结构体源码

typedef struct _DRIVER_OBJECT {
    CSHORT Type;
    CSHORT Size;
    //每个驱动程序有一个或多个设备对象,每个设备对象都有一个指针指向下一个设备对象,最后一个设备对象指向空。此处是第一个设备对象。可以遍历所有的。
   //设备对象由程序员自己创建,而非操作系统,驱动卸载的时候,遍历每个设备对象,将其删除。 PDEVICE_OBJECT DeviceObject;
   ULONG Flags;
PVOID DriverStart; ULONG DriverSize; PVOID DriverSection; PDRIVER_EXTENSION DriverExtension; UNICODE_STRING DriverName; PUNICODE_STRING HardwareDatabase; PFAST_IO_DISPATCH FastIoDispatch; PDRIVER_INITIALIZE DriverInit; PDRIVER_STARTIO DriverStartIo; PDRIVER_UNLOAD DriverUnload; PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1]; } DRIVER_OBJECT; typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT;

字段注释:

 PDEVICE_OBJECT DeviceObject;

每个驱动程序有一个或多个设备对象,每个设备对象都有一个指针指向下一个设备对象,最后一个设备对象指向空。此处是第一个设备对象。可以遍历所有的。设备对象由程序员自己创建,而非操作系统,驱动卸载的时候,遍历每个设备对象,将其删除。

技术图片

 

Windows驱动开发-_DRIVER_OBJECT结构体

标签:col   内核   func   结构   第一个   unicode   device   src   pre   

原文地址:https://www.cnblogs.com/a-s-m/p/12342608.html


评论


亲,登录后才可以留言!