typedef struct _POP_HIBER_CONTEXT
{
    unsigned char WriteToFile;
    unsigned char ReserveLoaderMemory;
    unsigned char ReserveFreeMemory;
    unsigned char Reset;
    unsigned char HiberFlags;
    unsigned char WroteHiberFile;
    unsigned char MapFrozen;
    RTL_BITMAP MemoryMap;
    RTL_BITMAP DiscardedMemoryPages;
    LIST_ENTRY ClonedRanges;
    unsigned long ClonedRangeCount;
    LIST_ENTRY *NextCloneRange;
    unsigned __int64 NextPreserve;
    MDL *LoaderMdl;
    MDL *AllocatedMdl;
    unsigned __int64 PagesOut;
    void *IoPages;
    unsigned long IoPagesCount;
    void *CurrentMcb;
    DUMP_STACK_CONTEXT *DumpStack;
    KPROCESSOR_STATE *WakeState;
    unsigned long PreferredIoWriteSize;
    unsigned long IoProgress;
    unsigned __int64 HiberVa;
    LARGE_INTEGER HiberPte;
    long Status;
    PO_MEMORY_IMAGE *MemoryImage;
    void *CompressionWorkspace;
    unsigned char *CompressedWriteBuffer;
    unsigned long CompressedWriteBufferSize;
    unsigned long MaxCompressedOutputSize;
    unsigned long *PerformanceStats;
    void *CompressionBlock;
    void *DmaIO;
    void *TemporaryHeap;
    MDL *BootLoaderLogMdl;
    MDL *FirmwareRuntimeInformationMdl;
    void *ResumeContext;
    unsigned long ResumeContextPages;
} POP_HIBER_CONTEXT, *PPOP_HIBER_CONTEXT;