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;
/*当前IRP结构*/
struct _IRP *CurrentIrp;
PIO_TIMER Timer;
/*设备对象的特性标志*/
ULONG Flags;
ULONG Characteristics;
_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;