Topic Last Modified: 2005-11-18

The Microsoft® Exchange Server Analyzer Tool reads the following registry entries to determine the value for the PageHeapFlags entry:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\STORE.EXE

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MAD.EXE

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\INETINFO.EXE

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EMSMTA.EXE

If the Exchange Server Analyzer finds the value for PageHeapFlags to be present and configured with any value other than 0 or null, a warning is displayed.

The PageHeapFlags option is used in tandem with the GlobalFlag registry value described in GlobalFlag has been set. The PageHeapFlags option lets you select standard heap verification, which writes fill patterns at the end of each heap allocation and examines the patterns when the allocations are freed, or full-page heap verification. This puts an inaccessible page at the end of each allocation so that the program stops immediately if it accesses memory beyond the allocation. Because full-page heap verification uses a full page of memory for each allocation, its widespread use can cause system memory shortages.

In this case, the Exchange Server Analyzer is specifically looking to see if any PageHeapFlags value has been enabled for a variety of Exchange components:

Unless you are actively engaged in debugging or tracing a problem with the help of Microsoft Product Support Services, it is recommended that the PageHeapFlags value be set to 0 at all times, or deleted completely, which has the same effect.

The PageHeapFlags registry value is not present by default and must be manually added if debugging of the STORE.EXE process (or any other process) is required. You can use the Gflags tool included with the Microsoft Windows Server™ 2003 support tools, which is on the Windows Server 2003 CD in the \Support folder. Alternatively, you can manually set the value to 0, or delete completely the PageHeapFlags value by using a registry editor. Both procedures are described in this article.

Important:
This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore the registry if a problem occurs. For information about how to restore the registry, view the "Restore the Registry" Help topic in Regedit.exe or Regedt32.exe.

To correct this error using GFlags

  1. Click Start | Run, and in the Open field execute GFlags. The Global Flags user interface will appear.

  2. In the Image File Name field, enter STORE.EXE.

  3. Click Image File Options.

  4. Clear all the check boxes, and then click Apply.

  5. Repeat steps 2 through 4 for each of the above listed Exchange processes.

  6. Click OK to exit the GFlags tool and restart the affected services for the change to take effect.

  7. When using the GFlags tool to clear this value, it does not delete or change the value for the PageHeapFlags. Instead, it sets the GlobalFlag value to 0, which overrides and disables the behavior configured with the PageHeapFlags entry.

To correct this error using a registry editor

  1. Open a registry editor, such as Regedit.exe or Regedt32.exe.

  2. Navigate to: HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\STORE.EXE

  3. Delete the value named PageHeapFlags.

  4. Repeat steps 2 and 3 for each of the listed Exchange processes.

  5. Exit the registry editor and restart the affected services for the change to take effect.

Before you edit the registry, and for information about how to edit the registry, see the Microsoft Knowledge Base article 256986, "Description of the Microsoft Windows Registry" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=256986).