PAGE_INFO Struct (CHKSGFILES)

The PAGE_INFO structure holds information for an Exchange database page, and is used with the ErrCheckDbPages() function.

Important

Storage Groups are not available in Exchange Server 2010. For backwards compatibility with pre-Exchange 2010 databases and storage groups, the CHKSGFILES API includes the capability to specify storage groups. When running CHKSGFILES against Exchange 2010 databases, parameters that specify a storage group identifier should be set to an empty string.

Struct PAGE_INFO 
{
        ULONGulPgno;
        BOOLfPageIsInitialized : 1;
        BOOLfCorrectableError : 1;
        ULONGLONGchecksumActual;
        ULONGLONGchecksumExpected;
        ULONGLONGdbTime;
        ULONGLONGchecksumPageStructure;
        ULONGLONGulFlags;
}

Members

  • ulPgNo
    Unsigned Long. Logical page number of the database page to be checked. This value must be set before calling ErrCheckDbPages(). If the application is reading the file based on file offsets, and must therefore map those file offsets to logical page numbers, you will find the PgnoFromFileOffset() method useful to determine the value for this field. ErrCheckDbPages() does not modify this value.

  • fPageIsInitialized
    Boolean. Indicates, when TRUE, that the database page contains data. When FALSE, the page contains only zeros. ErrCheckDbPages() sets this value.

  • fCorrectableError
    Boolean. Indicates, when TRUE, that there was a checksum mismatch detected in the database page, but that it is a correctable error. ErrCheckDbPages() sets this value.

  • checksumActual
    Unsigned 64-bit integer. Indicates the checksum value stored in the database for this logical page. ErrCheckDbPages() sets this value.

  • checksumExpected
    Unsigned 64-bit integer. This is the expected checksum value that is calculated for the database page; it is set by ErrCheckDbPages(). If this value is different from that stored on the database page (that is, the value returned in checksumActual), ErrCheckDbPages() will indicate that an error was found on this database page.

  • dbTime
    Unsigned 64-bit integer. ErrCheckDbPages() sets this member to the timestamp on the database page.

  • checksumPageStructure
    Unsigned 64-bt integer. ErrCheckDbPages() sets this member to the calculated checksum value of the contents of the page excluding data which is unnecessary when determining the logical page equivalence. For example, it is unnecessary to consider the data values in unused database page space. This member is only valid if the checksumActual and checksumExpected values are equal to each other.

  • ulFlags
    Unsigned 64-bit integer. Reserved for future use. The value of this field must be set to zero before calling ErrCheckDbPages().

Remarks

When calling the ErrCheckDbPages() function, the rgPageInfo[] parameter is an array of PAGE_INFO structures. There must be one PAGE_INFO structure for each database page to be checked.

The application must set the ulPgno member to the proper value, and must also set the ulFlags member to zero before calling ErrCheckDbPages().

Requirements

Exchange Server 2010 only includes a 64-bit version of CHKSGFILES.

The account that the application is running under must have read access permissions to the database and log files that are to be checked.