SYSTEM_BAD_PAGE_INFORMATION - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTEXAPI_H

// private
/**
 * Describes one page returned in the flat array for SystemBadPageInformationEx (244).
 * On x64, bits 0-51 are the page number, bit 62 is Pending, and bit 63 is Poisoned.
 * SystemBadPageInformation (128) omits pending entries and clears the poisoned bit.
 * There is no count prefix in the returned buffer; divide ReturnLength by the entry size.
 * ExpQuerySystemInformation and MiGetListOfPendingBadPages use 8-byte entries on x64.
 */
typedef union _SYSTEM_BAD_PAGE_INFORMATION
{
    ULONG_PTR Value;
    struct
    {
#ifdef _WIN64
        ULONG_PTR PhysicalPageNumber : 52;
#else
        ULONG PhysicalPageNumber : 20;
#endif
        ULONG_PTR Reserved : 10;
        ULONG_PTR Pending : 1;
        ULONG_PTR Poisoned : 1;
    } DUMMYSTRUCTNAME;
} SYSTEM_BAD_PAGE_INFORMATION, *PSYSTEM_BAD_PAGE_INFORMATION;

#endif

View code on GitHub

NtDoc

No description available.