On Windows Server 2003 and Windows Server 2008 32-bit (x86) systems with 4 GB (4 Gigabytes) or more of physical memory, or any physical memory located at addresses above 4 GB, the Page Address Extension (PAE) kernel is loaded, and System Map Registers are used to map physical memory addresses of buffers that are used for Direct Memory Access (DMA) transfers. In such scenarios, only a limited number of System Map Registers are available to be used for mapping physical memory buffers used for DMA transfers.
If the buffer for a USB transfer spans more than 16 (sixteen) 4-KB pages, the buffer may fail to be mapped into the DMA scatter-gather lists to be submitted to the USB host controller by the USB host controller driver. This may occur as a result of how the USB host controller port driver (Usbport) allocates system Map Registers from the system master DMA adapter for the purpose of mapping DMA transfers to be processed by the USB host controller. Usbport initially requests 16 system Map Registers for mapping the USB transfer buffers to the host controller, each of which can map a single 4-KB (4 kilobyte, or 4096 byte) page. If additional system Map Registers are required in order to map larger transfer buffers, Usbport requests additional system Map Registers from the system master DMA adapter.
Requests from Usbport for additional system Map Registers are issued while Usbport is mapping the USB transfer request submitted by the USB client driver to physical memory addresses that can be accessed by the USB host controller. If the number of Map Registers requested exceeds the number currently available in the system, a system worker thread runs to allocate additional system Map Registers. This worker thread may not be triggered to run under certain circumstances, thus the available system Map Registers will not be increased, and the request from Usbport for additional Map Registers will not be completed.
This problem is more likely to occur if there are no other USB transfers active on the USB host controller involved at the time the large transfer is submitted.