Query on maximum number of outstanding I/O supported by HBA

Hi All,
The default value for maximum number of outstanding I/O operations (MaxNumberOfIO) supported by the HBA is 1000 as defined by Storport. We want to increase this value to more than 1000. MSDN says for doing so Dma64BitAddresses attribute of PORT_CONFIGURATION_INFORMATION has to have one of the three values given below.

* SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
* SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED
* SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

I wanted to know what are the implications of setting the Dma64BitAddresses attribute to one of these values given above. Currently we set the Dma64BitAddresses to SCSI_DMA64_SYSTEM_SUPPORTED.

-Summer

On Fri, Jul 29, 2016 at 10:15 AM, wrote:

> SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
>

The values are documented on the same page.
https://msdn.microsoft.com/en-us/library/windows/hardware/ff563901(v=vs.85).aspx

ValueMeaning
SCSI_DMA64_MINIPORT_SUPPORTED

The miniport driver supports 64-bit physical addresses for I/O transfers.
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED

The miniport driver supports full 64-bit addressing. This indicates that
I/O requests may have physical addresses > 4GB. The uncached extension,
SenseInfo, and Srb Extension may exist above 4GB. Allocations are
restricted to 4GB boundary alignment in order to prevent them from crossing
a 4GB boundary.

This option is defined starting with Windows Server 2003 with SP1. This
option is enabled starting in Windows 7 with Hotfix KB2468345 or Windows 7
with SP1 with Hotfix KB2468345.
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED

The miniport driver supports full 64-bit addressing. This indicates that
I/O requests may have physical addresses > 4GB. The uncached extension,
SenseInfo, and Srb Extension may exist above 4GB. Allocations have no
boundary alignment requirement.

This option is available in starting with Windows 8.
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

The miniport driver support 64-bit addressing in a single 4GB region. This
indicates that I/O requests, uncached extension,SenseInfo, and
SrbExtension may have physical addresses > 4GB in a single 4GB region.

This option is available in starting with Windows 8.

Mark Roddy