typedef struct _DEVICE_OBJECT { short Type; unsigned short Size; long ReferenceCount; DRIVER_OBJECT *DriverObject; DEVICE_OBJECT *NextDevice; DEVICE_OBJECT *AttachedDevice; IRP *CurrentIrp; IO_TIMER *Timer; unsigned long Flags; unsigned long Characteristics; VPB *Vpb; void *DeviceExtension; unsigned long DeviceType; char StackSize; union { LIST_ENTRY ListEntry; WAIT_CONTEXT_BLOCK Wcb; } Queue; unsigned long AlignmentRequirement; KDEVICE_QUEUE DeviceQueue; KDPC Dpc; unsigned long ActiveThreadCount; void *SecurityDescriptor; KEVENT DeviceLock; unsigned short SectorSize; unsigned short Spare1; DEVOBJ_EXTENSION *DeviceObjectExtension; void *Reserved; } DEVICE_OBJECT, *PDEVICE_OBJECT;