dmio: Harddisk9 read error at block 445136247: status 0xC000009A
dmio: Disk Harddisk9 block 445136247 (mountpoint F:): Uncorrectable read error
dmio: Harddisk2 write error at block 411779656: status 0xC000009A
- 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.
- 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.
- 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.
Method 1: Modify the RegistryWarning 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:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Storage_Driver_Name\Parameters\Device\NumberOfRequests
- 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).
Method 2: Modify the Boot.ini FileRemove 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:
Article ID: 329075 - Last Review: Jul 20, 2008 - Revision: 1