PAGE_INFO Struct (CHKSGFILES)

Topic Last Modified: 2006-12-01

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

Syntax

Struct PAGE_INFO 
{
        ULONG ulPgno;
        BOOL fPageIsInitialized : 1;
        BOOL fCorrectableError : 1;
        ULONGLONG checksumActual;
        ULONGLONG checksumExpected;
        ULONGLONG dbTime;
        ULONGLONG checksumPageStructure;
        ULONGLONG ulFlags;
}

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

When calling the CHKSGFILES API on a computer where the Exchange Server 2007 Administrative Tools role is installed on Microsoft Windows XP, use the 32-bit version of this API.

When calling the CHKSGFILES on a computer when Exchange Server 2007 is installed on a 64-bit version of Windows, use the 64-bit version of this API.

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