When using dynamic disks, you may receive Event ID 29, 30 and 35 errors with a status code of 0xc000009a in the Windows system event log. These errors, reported by VXIO, may lead to data or file system corruption on one or more dynamic disk volumes. It is important to understand that, while the errors are reported by a Volume Manager component, Volume Manager is rarely the source of the error.
Within the kernel space, there is only so much memory available to allocate system page table entries (PTEs). When using the /3GB switch, the space allocated for those structures is halved, so the system can run out of PTEs faster (and the problem, more often than not, is free contiguous blocks of PTEs, not the total number). host bus adapters (HBAs) use some amount of PTEs when they do large file transfers. Normally, this is not a problem, but modern HBAs can send more simultaneous commands than HBAs used to be able to send, and can transfer more data per I/O. Given this, when running with HBAs at full speed under heavy I/O load with the /3GB switch enabled, the system can run out of large enough blocks of contiguous PTEs. It is in this event, when the HBA fails to secure a block of contiguous PTEs, that the I/O fails and returns the error code 0xC000009A. Because VXIO is the source of the I/O request, it is also the source of the event log entry.
At current there are only two paths to resolution of this issue, they are:
- Remove the /3GB switch from the boot.ini file
- Reduce the rate at which I/O can be transferred