PRB: Performance Hit in SCSI Miniport with Multiple Requests

ID: Q248720


The information in this article applies to:
  • Microsoft Windows 2000


SYMPTOMS

Windows 2000 SCSI miniport that sets the MultipleRequestPerLu member of the PORT_CONFIGURATION_INFORMATION structure to TRUE, experiences performance hit.


CAUSE

A SCSI Miniport that queues multiple requests per logical unit sets the MultipleRequestPerLu member of the PORT_CONFIGURATION_INFORMATION structure to TRUE. But this functionality has been disabled due the recent changes that were made to the SCSIPORT driver. The code to implement this functionality was affecting the drivers that did not request the multiple request functionality.


RESOLUTION

The problem of performance hit can be overcome by claming that the miniport supports Tagged Queuing. This can be done by setting the TaggedQueuing member of the PORT_CONFIGURATION_INFORMATION structure for the controller.

If the driver is simulating a SCSI interface (as many RAID adapters do) it should also set the CommandQueue bit in the Inquiry data it generates. The driver requires that the Miniport call ScsiPortNotification with NextLuRequest notification type at appropriate times. A genuine SCSI miniport should not change the Inquiry data reported by the target devices.


STATUS

Microsoft has confirmed this to be a problem in Windows 2000.


MORE INFORMATION

The Miniport developer can set the MultipleRequestPerLu member to whatever value they want it to be, but it will be ignored by the current version of SCSIPORT driver. However, this value will be taken by the new version that fixes this problem.

The SCSIPORT driver always sets the MultipleRequestPerLu and TaggedQueuing member to the value passed in the HW_INITIALIZATION_DATA structure when the miniport driver calls ScsiPortInitialize.


REFERENCES

Please refer the Windows 2000 DDK documentation for more information about calling ScsiPortNotification and the other structures mentioned in this article.

Additional query words: SCSI scsiport miniport

Keywords : kbDDK kbWinOS2000bug kbStorageDev kbDSupport kbGrpNTDDK
Version : WINDOWS:
Platform : WINDOWS
Issue type : kbprb


Last Reviewed: January 11, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.