Microsoft KB Archive/932755

= An updated Storport storage driver is available for Windows Server 2003 =

Article ID: 932755

Article Last Modified on 11/5/2007

-

APPLIES TO


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

-



INTRODUCTION
This article describes an updated Microsoft Storport storage driver for host bus adapter (HBA) storage devices. This storage driver is available for Microsoft Windows Server 2003.

This updated driver includes fixes for the problems that are mentioned in the &quot;Fix list&quot; section.

Note If you are using the Hewlett Packard (HP) ProLiant Smart Array 5x or 6x Controller drivers (hpcisss.sys or hpcisss2.sys), we recommend that you install the updated drivers from HP before you install this Storport update.

For more information about how to obtain the updated drivers from HP, visit the following HP Web pages.

HP ProLiant Smart Array 5x and 6x Controller

http://h18004.www1.hp.com/support/files/storage/us/download/27006.html

HP ProLiant Smart Array SAS/SATA Controller Driver for Windows Server 2003

http://h18023.www1.hp.com/support/files/server/us/download/27543.html

HP ProLiant Smart Array SAS/SATA Controller Driver for Windows Server 2003 x64 Edition

http://h18023.www1.hp.com/support/files/server/us/download/27544.html

The updated drivers resolve an issue where you may receive a Stop error message after you install this Storport update.

Microsoft provides third-party contact information to help you find technical support. This contact information may change without notice. Microsoft does not guarantee the accuracy of this third-party contact information.



Windows Server 2003, 32-bit x86 editions
The following file is available for download from the Microsoft Download Center:

Download the KB932755.exe package now.

Release Date: March 27, 2007

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.

Windows Server 2003, 64-bit x64 editions
The following file is available for download from the Microsoft Download Center:

Download the KB932755.exe package now.

Release Date: March 27, 2007

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.

Windows Server 2003, 64-bit editions for Itanium-based systems
The following file is available for download from the Microsoft Download Center:

Download the KB932755.exe package now.

Release Date: March 27, 2007

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.

Windows XP, 64-bit x64 edition
The following file is available for download from the Microsoft Download Center:

Download the KB932755.exe package now.

Release Date: March 27, 2007

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.

Prerequisites

 * A 32-bit version of Windows Server 2003 with Service Pack 1 (SP1) or with Service Pack 2 (SP2)
 * An Itanium-based version of Windows Server 2003 with SP1 or with SP2
 * An x64-based version of Windows Server 2003

Restart requirement
You must restart the computer after you apply this update.

Update replacement information
This update replaces the update that is mentioned in Microsoft Knowledge Base article 912944.

File information
The English version of this update has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Fix and update list
Version 5.2.3790.4021 of the Storport storage driver includes fixes for the following issues. Updates that are included in this version of the Storport storage driver are also listed. ====

Update to modify port drivers so that an IOCTL request that is sent to the port LUN is forwarded to the adapter under certain circumstances ====

This update modifies the port drivers so that an IOCTL_STORAGE_BREAK_RESERVATION request that is sent to the port LUN (the PDO) is forwarded to the adapter (the FDO) under certain circumstances. The request is forwarded if the caller has Write access to the adapter object. Therefore, if the caller is an administrator, the request is forwarded. If the caller does not have sufficient rights, the request is not forwarded.

This update modifies the port drivers so that an IOCTL_STORAGE_BREAK_RESERVATION request that is sent to the port LUN (which is the physical device object (PDO)) is forwarded to the adapter (which is the filter device object (FDO))

====

You cannot establish a network connection after you install Windows ====

In this issue, the network adapter driver may stop responding when you start the computer for the first time after you install Windows. ====

A valid IRP is not restored to the &quot;OriginalRequest&quot; field in the failure code path if the Storport driver fails ====

In this issue, a valid IRP may not be restored to the OriginalRequest field in the failure code path. This issue occurs if the Storport driver fails. ====

The Storport driver stops responding if you start a device two times ====

In this issue, the plug-and-play driver tries to start a device two times on a computer that uses the Storport driver for the storage device. When this issue occurs, the Storport driver stops responding. ====

The Storport driver stops responding if you run multiple concurrent Storioctls sessions ====

In this issue, a computer uses the Storport driver for its storage controller, and the Storport driver may stop responding. This driver stops responding if you run more than one Storioctls session at the same time. ====

You receive a Stop 0x7E error message when you start the computer ====

In this issue, you enable the Storport verifier for the Storport driver and then you receive a Stop 0x0000007E error message. You receive this error message when you start the computer. You experience this issue on a computer that has a redundant array of independent disks (RAID) controller that uses the Arc.sys driver. ====

The Storport driver may stop responding when you try to disable an iSCSI session ====

In this issue, you may receive a Stop error, or the Storport driver may stop responding, when you try to disable an iSCSI session. Also, you may experience this behavior if you log on to an iSCSI target, and then you log off the iSCSI target, and then you log on to the iSCSI target again.

Note This issue is not specific to iSCSI adapters. You may experience this behavior with other adapters.

====

The Storport verifier incorrectly reuses SCSIport verifier Stop error codes ====

In this issue, the Storport verifier component uses some Stop error codes that conflict with SCSIport verifier codes. Therefore, you may have difficulty troubleshooting a problem that causes the Storport verifier to generate a Stop error code. ====

The Storport verifier may perform unnecessary verifier checks ====

In this issue, the Storport verifier performs a check to determine whether a miniport driver calls the StorPortGetBusData function that is outside the miniport driver's HwStorFindAdapter function call. ====

You may receive a Stop 0xD1 error when you start the computer after you enable Storport verifier ====

In this issue, you may receive the following Stop error message when you enable Storport verifier and then restart the computer:


 * Stop 0x000000D1

DRIVER_IRQL_NOT_LESS_OR_EQUAL

You experience this issue when the Storport verifier tries to access the Storport scatter/gather list (SGList) for an I/O request that does not have a SGList. The Storport verifier does not check for a NULL pointer. ====

The Storport driver does not support fast resume ====

In this issue, the Storport driver does not correctly turn on some adapter devices to support the fast resume feature. These adapter devices are on the resume path. ====

You may receive a Stop 0xC4 error when you start the computer after you enable Storport verifier ====

In this issue, you may receive the following Stop error message when you start the computer:


 * Stop 0x000000C4

DRIVER_VERIFIER_DETECTED_VIOLATION

You experience this issue if the following conditions are true:
 * The computer has a disk controller that uses the Adaptec Adp94 driver.
 * The Storport verifier is enabled.

A checked build of the Storport driver may unnecessarily generate an exception error
In this issue, when you test the Storport driver by using a checked build, you may experience an unnecessary exception. Therefore, you may have more difficulty testing the driver. ====

Certain host bus adapters (HBAs) may process some Windows Management Instrumentation (WMI) commands incorrectly ====

In this issue, you may experience a symptom in which some Emulex HBAs may process some WMI commands incorrectly. This issue occurs because of a problem in the Windows Management Instrumentation (WMI) layer of the Storport driver. This problem occurs because of an incorrect buffer length in the WMI layer. ====

The Storport driver (StorPort.sys) generates the &quot;DumpData&quot; fields incorrectly ====

In this issue, Storport.sys does not count some values when Storport.sys builds DumpData fields. Also, Storport.sys does not write some log file information to the log file. Therefore, you may not have a complete generation of the event log data if you experience a problem with a miniport driver or a port driver. ====

You may receive a Stop 0x8E error message on a computer that is running the Storport driver ====

In this issue, the Storport driver may cause the computer to stop responding, and you may receive a Stop 0x0000008E error message. This problem occurs because the Storport driver incorrectly tries to access a SCSI_REQUEST_BLOCK (SRB) from an I/O request packet (IRP) that does not contain an SRB. ====

Storport miniport drivers generate unnecessary debug information ====

In this issue, you may be unable to trace problems efficiently when you test a checked build of the Storport driver. This issue occurs because the Storport miniports use level 0 to generate Storport debug information. ====

You may receive a Stop error message when you disconnect an iSCSI device ====

In this issue, the Storport driver may generate a Stop error when you disconnect an iSCSI device. This problem occurs because the Storport driver does not verify the status from the lock routing. Therefore, the Storport driver may release a lock even if the Storport driver has not previously acquired the lock. ====

A Stop error may occur if a miniport driver tries to access an adapter after the adapter has shut down ====

In this issue, you may receive a Stop error message when you shut down a computer. You may experience this problem if the following conditions are true:
 * The Storport miniport driver requests a callback from the storage adapter.
 * The storage adapter has already shut down. That is, the adapter power state is D3.

If the miniport driver requests a callback, the callback could be generated during the system shutdown operation. At this point, the adapter power is D3. When the timer function tries to access the hardware register, a Stop error occurs because the adapter is already shut down. Although it is best to correct the behavior for each miniport driver, this update works around the problem by adding a verification routine that causes the Storport driver to ignore any timer callbacks if the following conditions are true:
 * The timer callback occurs during the system shutdown operation.
 * The adapter power state is D3.

====

You may receive a Stop 0x9F error on a computer that is running the Storport driver ====

In this issue, you may receive an error message that resembles the following:


 * Stop 0x0000009F (00000003,,  ,  )

DRIVER_POWER_STATE_FAILURE

This problem may occur if the following conditions are true:
 * The computer is running the Storport driver.
 * The computer has a storage controller that uses the Adaptec Adpu320.sys driver.
 * Windows tries to resume operation from a power-saving state.

====

Update to modify the memory buffer for the bus count in the Storport driver ====

This update modifies the size of the bus array from a fixed size to the number that is reported by the miniport driver. ====

Update to modify the behavior of the BUSY status and the Task Set Full status in the Storport driver ====

If a target returns a SCSI status of BUSY or Task Set Full, the port driver retries the command immediately. Storport retries the command an unlimited number of times. Therefore, if the busy status continues, the system could eventually experience problems.

This update configures the following behavior:
 * It limits the number of retries. The default is 20.
 * If the target returns a status of BUSY, the Storport driver performs a time-based pause before the Storport driver retries the command.
 * If the target returns a status of Task Set Full, the Storport driver performs an I/O completion-based pause before the Storport driver retries the command.

You can configure the following registry key values:

Value - BusyRetryCount

Type - DWORD

Data - 20 Decimal (default)

Range - number of retries

Value - BusyPauseTime

Type - DWORD

Data - 250 Decimal (default)

Range - number of milliseconds

Value - QueueFullWaitIoPercentage

Type - DWORD

Data - 25 Decimal (default)

Range - 1 to 100 percentage of time ====

You may experience a Stop error after you install the Storport storage driver update that is mentioned in Microsoft Knowledge Base article 912944 ====

In this issue, you may receive a Stop error after you apply the update that is mentioned in Microsoft Knowledge Base article 912944 and restart the computer. You experience this problem if the miniport driver on the computer uses SCSI address 0xFF/0xFF/0xFF to index the array.

This problem occurs because a hotfix that is included in the 912944 Storport rollup package uses the SCSI address 0xFF/0xFF/0xFF for SRB_FUNCTION_POWER requests and for SRB_FUNCTION_PNP requests. This use of the SCSI address 0xFF/0xFF/0xFF conflicts with the affected miniport driver requests.

This update changes the Storport driver to use the SCSI address 0/0/0 instead of 0xFF/0xFF/0xFF for SRB_FUNCTION_POWER requests and for SRB_FUNCTION_PNP requests. ====

An incorrect PREfast warning message is generated ====

In this issue, PREfast may generate a warning message for a buffer that is passed to the miniport driver. The issue occurs when you use PREfast to examine a Storport miniport driver.

This problem occurs because the PREfast tool incorrectly detects the buffer as being allocated to the miniport driver instead of being passed to the miniport driver. The PREfast tool generates the warning message because it determines that the Storport driver is writing to a reserved area of the buffer. ====

The Storport driver does not block Input/Output Controls (IOCTLs) that are sent to the Functional Device Object (FDO) of a claimed device ====

In this issue, you may be able to send commands to a disk by using an account that does not have the appropriate security rights. In this scenario, the Storport driver incorrectly forwards the command to the device.

This update is designed to help make sure that the pass-through command is failed at the adapter device object and that the command is not forwarded to the LUN object. ====

Update to add Storport support for the IOCTL_ACPI_EVAL_METHOD method ====

The Storport driver is updated to add support for the IOCTL_ACPI_EVAL_METHOD method. ====

The Storport driver logs an incorrect description for Event ID 25 ====

In this issue, the Storport driver logs the following event in the System log if the driver detects outdated firmware: Event Source: LSI_SCSI

Event ID: 25

Event Type: Error

Date:

Time:

User: Not available

Computer:

Description: The driver has detected a device with old or out-of-date firmware. The device will not be used.

This event description is incorrect. The event description should state that the device will be in a decreased performance mode. ====

In this issue, the PREfast tool generates an incorrect warning message for the Storport driver ====

The PREfast tool generates the following incorrect warning message for the Storport driver:

Potential overflow using expression '& Descriptor.SerialNumber'

====

The Storport driver may generate a Stop 0x0A error if a HBA uses multiple MSI messages ====

In this issue, you may receive a Stop error message that resembles the following:


 * Stop 0x0000000A (00000025,,  ,  )

IRQL_NOT_LESS_OR_EQUAL

You may experience this issue on a computer that has an HBA that uses multiple message signaled interrupt (MSI) messages. In this scenario, the Storport driver stops responding because it performs an incorrect loop calculation. ====

The Storport driver together with a QLogic miniport driver that supports multiple MSI messages may generate a Stop error ====

In this issue, the Storport driver may stop responding. This issue occurs when you use the Storport driver together with a QLogic miniport driver that supports message signaled interrupt (MSI) messages. The issue occurs because the Storport driver uses an incorrect IRQL for multiple MSI message synchronization. ====

Windows may stop responding on a computer that uses the Storport driver ====

In this issue, a race condition may occur in the Storport driver. In this situation, the Storport driver pauses the queue. However, the Storport driver does not later resume the queue. Therefore, I/O operations to the disk device stop responding and Windows stops responding. ====

The Storport driver may turn off the drive adapter before the child devices turn off ====

In this issue, the Storport driver may experience a power synchronization problem. When this issue occurs, the Storport driver turns off the drive adapter before all the child devices have turned off successfully. Therefore, the computer may stop responding. ====

Update to add new Storport functions to the Diskdump.sys driver ====

New functions have been added to the Storport driver. This update adds these functions to the Diskdump driver. These new functions let Storport miniport drivers enable hibernation or enable the Crashdump feature. ====

A Windows Server 2003 SP1-based computer may take longer than expected to start ====

In this issue, you install the hotfix that is mentioned in Microsoft Knowledge Base article 916048 on a computer that is running Windows Server 2003 SP1-based computer. After you do this, you experience the following symptoms:
 * When you shut down Windows or when you restart Windows, Windows takes longer than expected to start.
 * When you shut down a Windows Server 2003 SP1-based cluster node, the cluster node to which the shared resources fail over takes longer than expected to bring the resources online.



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

