Error 0xc00e0027 when you send or receive a Microsoft Message Queuing message (810507)



The information in this article applies to:

  • Microsoft Message Queuing 2.0

Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry

SYMPTOMS

When you attempt to send or receive a Microsoft Message Queuing message, you may receive a 0xc00e0027 error. You may also receive the following error messages:
MQ_ERROR_INSUFFICIENT_RESOURCES
There are insufficient resources to perform the operation.
Event ID: 2085 Date: 2003/01/07 Time: 20:36:14 User: N/A Computer: Computername Description: Unable to create message file C:\WINNT\System32\msmq\STORAGE\l0000009.mq. There is insufficient disk space or memory.

CAUSE

This error may occur if the MQAC.SYS driver cannot allocate kernel memory. However, there are many potential causes for this error.

RESOLUTION

Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

To resolve this error, follow these steps:
  1. In Windows Registry, click Start, and then click Run.
  2. Type regedt32, and then click OK.
  3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.
  4. In the right pane, double-click PagedPoolSize.
  5. Make sure that Hex is selected under Radix.

    In the Data box, enter FFFFFFFF, and then click OK.
  6. Close Registry Editor, and then restart your computer.
When you change the PagedPoolSize value, the operating system makes the maximum paged pool memory available.

STATUS

This behavior is by design.

MORE INFORMATION

To identify this error, follow these steps:
  1. Obtain and install a hotfix for Message Queuing that was released after Windows 2000 Service Pack 3 (SP3).

    This step is required because additional logging was added to the MQAC.SYS driver after Windows 2000 SP3 was released.

    For an example of a hotfix released after Windows 2000 SP3, visit the following Microsoft Knowledge Base article:
    329994 MSMQ: Inherited Permissions on Queue Object May Be Ignored
  2. Create a file with a .reg extension that contains the following information:
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Debug]
    "LoggingTypes"=dword:c0000000 
    "ACLogging"=dword:00000008
    
  3. Import the file to the registry.
  4. Open a command prompt.

    To restart Message Queuing, type the following commands:

    net stop msmq /y

    -and-

    net start msmq
  5. A file named Msmq.log that contains logging information is created in the %windir$\debug directory. Review the log after the failure occurs.
If there is a kernel memory problem, then log entries similar to the following will exist:
     0x584> Wed Nov 06 19:18:39 2002: DRIVER Error: mm/200, HR: 0x8183
     0x5fc> Wed Nov 06 19:18:39 2002: DRIVER Error: mm/201, HR: 0x8080
     0x584> Wed Nov 06 19:18:39 2002: DRIVER Error: queue/120, HR: 0xc000009a
Another related error that may appear in the log is:
     Wed Feb 05 17:49:21 2003: QM Error: session/120, HR: 0xc000009a
The total paged pool usage is represented by the number of paged pool pages. In this example, it is represented as 0x8183. By default, the Message Queuing paged pool threshold is calculated at 80 percent of the total paged pool usage. In this example, it is calculated as 0x8180. In this example, the paged pool usage exceeds the Message Queuing paged pool threshold so Message Queuing will report 0xc00e009a and 0xc00e0027 errors. This causes allocation failure with an error code of 0xc000009a (STATUS_INSUFFICIENT_RESOURCES) to occur.

The paged pool size is less than expected. The threshold, which is based on paged pool size, is calculated at startup. There are two known causes of low paged pool size:
  • The /3GB switch exists in the boot.ini, which enables 3-gigabyte address support for applications. This reduces the paged pool size. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

    297812 How to use the 4GT RAM Tuning feature

  • Terminal Server requires a large number of system pages, which can reduce the paged pool size. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

    247904 How to configure the Paged Address Pool and System Page Table Entry memory areas


Modification Type:MajorLast Reviewed:4/20/2005
Keywords:kberrmsg kbprb KB810507 kbAudDeveloper