Microsoft KB Archive/927104

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 17:34, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Base


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 "Applies to" section.

Keywords: kbtshoot kbbug kbprb kbexpertiseadvanced KB927104