This article was previously published under Q329075
Important This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows registry
When you use dynamic disks, you may receive the following Dmio event log entries, which may lead to data corruption, database corruption, or file system corruption on one or more dynamic disk volumes, or may cause application failures:
The Status code is always 0xC000009A - STATUS_INSUFFICIENT_RESOURCES, and the block numbers vary.
Although Ftdisk.sys is used for basic disks, Windows 2000 does not report similar events under the same circumstances, so lack of PTE resources may also cause volume corruption or data corruption on basic disks.
This problem occurs because of a combination of conditions or factors, which include:
The computer uses the /3GB setting in the Boot.ini file. This setting substantially reduces the total number of Page Table Entries (PTEs) that are available to the kernel.
The computer uses a storage adapter that can handle many simultaneous requests (up to 0xFF - 255 decimal).
The storage adapter driver must map a buffer for each request that the SCSI miniport dispatches. When the SCSI miniport dispatches a high number of large requests, the system runs out of PTEs.
The storage stack on Windows 2000 does not guarantee forward progress under memory pressure.
The failures occur after the following sequence:
An application sends the adapter a very large I/O request.
The class driver splits up this request based on the maximum transfers the adapter can handle.
For each piece of the request that the class driver sends to the port driver, the class driver sends an I/O request packet (IRP) by using the original MDL that represents the whole buffer.
The port driver maps the whole buffer for each of these pieces.
Because the adapter can handle many requests and also maps redundant copies of these large buffers, the system eventually runs out of PTE resources.
To resolve this problem, use one of the following methods:
Method 1: Modify the Registry
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk. Reduce the concurrent I/O requests that are permitted by the mass storage controller. To do this, follow these steps:
Start Registry Editor.
Locate and then click the following registry entry, where Storage_Driver_Name is the name of the miniport driver, such as AIC78xx:
Modify the REG_DWORD value for the NumberOfRequests entry. To do this, reduce the number to between 16 and 255 decimal. This number represents the maximum number of outstanding requests on a bus. Use this adjustment sparingly because the per-request storage allocations consume non-paged memory.
Note None of the drivers that are included with Windows 2000 use that key, and if the key is not present, the number of simultaneous requests defaults to 0x10 (16 decimal).
For more information about modifying this registry key, click the following article number to view the article in the Microsoft Knowledge Base:
240314 INFO: Restriction on the Number of Concurrent I/O Requests Setting
Method 2: Modify the Boot.ini File
Remove the /3GB switch from the Boot.ini file, and then restart the computer.
Method 3: Use the /USERVA Switch in the Boot.ini File (Windows 2003 only)
For more information about how to use the /USERVA switch in the Boot.ini file, click the following article number to view the article in the Microsoft Knowledge Base:
316739 How to Use the /USERVA Switch in the Boot.ini File to Tune /3GB Configurations
The following Windows 2003 fix may also impact PTE usage and help eliminate the errors:
831899 You receive a "stop 0x000000DA" error message on a blue screen after you enable PTE tracking on a Windows Server 2003-based node
For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
247904 How to Configure the Paged Address Pool and System Page Table Entry Memory Areas
274750 HOW TO: Configure Memory for More Than 2 GB in SQL Server
Microsoft Windows 2000 Server SP1, Microsoft Windows 2000 Service Pack 3, Microsoft Windows 2000 Server SP2, Microsoft Windows 2000 Advanced Server SP1, Microsoft Windows 2000 Advanced Server SP2, Microsoft Windows 2000 Advanced Server SP3