typedef struct _DEVICE_OBJECT_POWER_EXTENSION
{
    volatile unsigned long IdleCount;
    volatile unsigned long BusyCount;
    volatile unsigned long BusyReference;
    unsigned long TotalBusyCount;
    unsigned long ConservationIdleTime;
    unsigned long PerformanceIdleTime;
    DEVICE_OBJECT *DeviceObject;
    LIST_ENTRY IdleList;
    POP_DEVICE_IDLE_TYPE IdleType;
    DEVICE_POWER_STATE IdleState;
    DEVICE_POWER_STATE CurrentState;
    LIST_ENTRY Volume;
    union
    {
        struct
        {
            unsigned long IdleTime;
            unsigned long NonIdleTime;
        } Disk;
    } Specific;
} DEVICE_OBJECT_POWER_EXTENSION, *PDEVICE_OBJECT_POWER_EXTENSION;