Windows驱动开发-Device结构体

Posted a-s-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows驱动开发-Device结构体相关的知识,希望对你有一定的参考价值。

每个驱动程序会创建一个或多个设备对象,每个设备对象都会有一个指针指向下一个设备对象

Device结构体源码

typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT {
    CSHORT Type;
    USHORT Size;
    LONG ReferenceCount;
    struct _DRIVER_OBJECT *DriverObject;
    struct _DEVICE_OBJECT *NextDevice;
    struct _DEVICE_OBJECT *AttachedDevice;
    struct _IRP *CurrentIrp;
    PIO_TIMER Timer;
    ULONG Flags;                                // See above:  DO_...
    ULONG Characteristics;                      // See ntioapi:  FILE_...
    __volatile PVPB Vpb;
    PVOID DeviceExtension;
    DEVICE_TYPE DeviceType;
    CCHAR StackSize;
    union {
        LIST_ENTRY ListEntry;
        WAIT_CONTEXT_BLOCK Wcb;
    } Queue;
    ULONG AlignmentRequirement;
    KDEVICE_QUEUE DeviceQueue;
    KDPC Dpc;
    ULONG ActiveThreadCount;
    PSECURITY_DESCRIPTOR SecurityDescriptor;
    KEVENT DeviceLock;
    USHORT SectorSize;
    USHORT Spare1;
    struct _DEVOBJ_EXTENSION  *DeviceObjectExtension;
    PVOID  Reserved;

} DEVICE_OBJECT;

typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT; 

字段说明:

struct _DRIVER_OBJECT *DriverObject;

指向驱动程序中的驱动对象,同属于一个驱动对象的设备对象指向的是同一个驱动对象。

 技术图片

 

以上是关于Windows驱动开发-Device结构体的主要内容,如果未能解决你的问题,请参考以下文章

浅析struct device结构体

怎样写linux下的USB设备驱动程序

怎样写linux下的USB设备驱动程序

怎样写linux下的USB设备驱动程序

i.MX6ULL驱动开发 | 32 - 手动编写一个虚拟网卡设备

i.MX6ULL驱动开发 | 32 - 手动编写一个虚拟网卡设备