typedef struct _DEVICE_OBJECT                                                   // 26 / 30 elements; 0x00B8 / 0x0150 Bytes
{
    INT16                       Type;                                           // 0x0000 / 0x0000; 0x0002 / 0x0002 Bytes
    UINT16                      Size;                                           // 0x0002 / 0x0002; 0x0002 / 0x0002 Bytes
    LONG32                      ReferenceCount;                                 // 0x0004 / 0x0004; 0x0004 / 0x0004 Bytes
    PDRIVER_OBJECT              DriverObject;                                   // 0x0008 / 0x0008; 0x0004 / 0x0008 Bytes
    PDEVICE_OBJECT              NextDevice;                                     // 0x000C / 0x0010; 0x0004 / 0x0008 Bytes
    PDEVICE_OBJECT              AttachedDevice;                                 // 0x0010 / 0x0018; 0x0004 / 0x0008 Bytes
    PIRP                        CurrentIrp;                                     // 0x0014 / 0x0020; 0x0004 / 0x0008 Bytes
    PIO_TIMER                   Timer;                                          // 0x0018 / 0x0028; 0x0004 / 0x0008 Bytes
    ULONG32                     Flags;                                          // 0x001C / 0x0030; 0x0004 / 0x0004 Bytes
    ULONG32                     Characteristics;                                // 0x0020 / 0x0034; 0x0004 / 0x0004 Bytes
    PVPB                        Vpb;                                            // 0x0024 / 0x0038; 0x0004 / 0x0008 Bytes
    PVOID                       DeviceExtension;                                // 0x0028 / 0x0040; 0x0004 / 0x0008 Bytes
    ULONG32                     DeviceType;                                     // 0x002C / 0x0048; 0x0004 / 0x0004 Bytes
    CHAR                        StackSize;                                      // 0x0030 / 0x004C; 0x0001 / 0x0001 Bytes
    UINT8                       _PADDING0_[3];                                  // 0x0031 / 0x004D; 0x0003 / 0x0003 Bytes
    union                                                                       // 0x0034 / 0x0050; 2 / 2 elements; 0x0028 / 0x0048 Bytes
    {
        LIST_ENTRY ListEntry;                                                   // 0x0034 / 0x0050; 0x0008 / 0x0010 Bytes
        WAIT_CONTEXT_BLOCK Wcb;                                                 // 0x0034 / 0x0050; 0x0028 / 0x0048 Bytes
    } Queue;                                                                    // 0x0034 / 0x0050; 0x0028 / 0x0048 Bytes
    ULONG32                     AlignmentRequirement;                           // 0x005C / 0x0098; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING1_[4];                                  // ------ / 0x009C; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    KDEVICE_QUEUE               DeviceQueue;                                    // 0x0060 / 0x00A0; 0x0014 / 0x0028 Bytes
    KDPC                        Dpc;                                            // 0x0074 / 0x00C8; 0x0020 / 0x0040 Bytes
    ULONG32                     ActiveThreadCount;                              // 0x0094 / 0x0108; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING2_[4];                                  // ------ / 0x010C; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PVOID                       SecurityDescriptor;                             // 0x0098 / 0x0110; 0x0004 / 0x0008 Bytes
    KEVENT                      DeviceLock;                                     // 0x009C / 0x0118; 0x0010 / 0x0018 Bytes
    UINT16                      SectorSize;                                     // 0x00AC / 0x0130; 0x0002 / 0x0002 Bytes
    UINT16                      Spare1;                                         // 0x00AE / 0x0132; 0x0002 / 0x0002 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING3_[4];                                  // ------ / 0x0134; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PDEVOBJ_EXTENSION           DeviceObjectExtension;                          // 0x00B0 / 0x0138; 0x0004 / 0x0008 Bytes
    PVOID                       Reserved;                                       // 0x00B4 / 0x0140; 0x0004 / 0x0008 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING4_[8];                                  // ------ / 0x0148; ------ / 0x0008 Bytes
#endif                                                                          // #if defined(_M_X64)
} DEVICE_OBJECT, * PDEVICE_OBJECT;

Return to OS-specific structures/unions/enums list.
Return to OS version list.