Microsoft KB Archive/927104

= Storport does not initialize the SrbStatus value to SRB_STATUS_PENDING in Windows Server 2003 =

Article ID: 927104

Article Last Modified on 10/11/2007

-

APPLIES TO


 * Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
 * Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
 * Microsoft Windows Server 2003, Datacenter x64 Edition
 * Microsoft Windows Server 2003, Enterprise x64 Edition
 * Microsoft Windows Server 2003, Standard x64 Edition
 * Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
 * Microsoft Windows Server 2003, Enterprise Edition
 * Microsoft Windows Server 2003, Standard Edition (32-bit x86)
 * Microsoft Windows Server 2003, Web Edition
 * Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
 * Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
 * Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
 * Microsoft Windows Server 2003 R2 Standard x64 Edition
 * Microsoft Windows Server 2003 R2 Enterprise x64 Edition
 * Microsoft Windows Server 2003 R2 Datacenter x64 Edition
 * Microsoft Windows XP Professional x64 Edition

-



SYMPTOMS
When you use the Microsoft Storport storage driver (Storport.sys) in Microsoft Windows Server 2003, you may notice that Storport does not initialize the SrbStatus value to SRB_STATUS_PENDING. Instead, Storport initializes the SrbStatus value to SRB_STATUS_SUCCESS. This behavior occurs despite of the Windows Server 2003 DDK documentation.



RESOLUTION
We recommend that miniport developers initialize the SrbStatus value to SRB_STATUS_PENDING in the miniport driver.

Note If you are completing the SCSI Request Block (SRB), set the SrbStatus value to the appropriate completion value.

We do not recommend that the miniport initialize the SrbStatus value to SRB_STATUS_BUSY because this action causes Storport to queue this busy request to a Deferred Procedure Call (DPC). This behavior unnecessarily consumes system resources and potentially compromises the system. Miniport drivers should only set the SrbStatus value to SRB_STATUS_BUSY if the miniport cannot accept more commands.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.

Keywords: kbtshoot kbbug kbprb kbexpertiseadvanced KB927104

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.