Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

WinPE may use system DMA instead of scatter-gather DMA


Summary

Applications which use IOCTL_SCSI_GET_CAPABILITIES and/or IOCTL_SCSI_PASS_THROUGH_DIRECT are dependent on the caller honoring both the MaximumTransferLength value and the MaximumPhysicalPages value returned by IOCTL_SCSI_GET_CAPABILITIES.

WinPE has legacy drivers integrated, which may cause the system to use system DMA instead of scatter-gather DMA. This can cause the MaximumPhysicalPages value in WinPE to differ from the value in a full install of Windows. For example, in WinPE, the MaximumPhysicalPages may be limited to 16 4k pages (64k). If the application code does not ensure that MaximumTransferLength value and the MaximumPhysicalPages values are honored, the application code may run successfully on the full operating system, but will encounter STATUS_INVALID_PARAMETER when run in a WinPE environment.

It is also advisable to use page-aligned buffers to make full use of the available MaximumPhysicalPages. Non-page-aligned buffers generally result in the use of an extra page.


↑ Back to the top


Keywords: kb

↑ Back to the top

Article Info
Article ID : 2287639
Revision : 1
Created on : 1/7/2017
Published on : 8/2/2010
Exists online : False
Views : 120