struct _DEVICE_OBJECT
{
SHORT Type;
USHORT Size;
LONG ReferenceCount;
struct _DRIVER_OBJECT* DriverObject;
struct _DEVICE_OBJECT* NextDevice;
struct _DEVICE_OBJECT* AttachedDevice;
struct _IRP* CurrentIrp;
struct _IO_TIMER* Timer;
ULONG Flags;
ULONG Characteristics;
struct _VPB* Vpb;
VOID* DeviceExtension;
ULONG DeviceType;
CHAR StackSize;
union
{
struct _LIST_ENTRY ListEntry;
struct _WAIT_CONTEXT_BLOCK Wcb;
} Queue;
ULONG AlignmentRequirement;
struct _KDEVICE_QUEUE DeviceQueue;
struct _KDPC Dpc;
ULONG ActiveThreadCount;
VOID* SecurityDescriptor;
struct _KEVENT DeviceLock;
USHORT SectorSize;
USHORT Spare1;
struct _DEVOBJ_EXTENSION* DeviceObjectExtension;
VOID* Reserved;
};