IEEE 1394 asynchronous requests are completed, but they have incorrect data or status under high transfer rates in Windows 7 or in Windows Server 2008 R2

Applies to: Windows 7Windows Server 2008 R2

Symptoms


In Windows 7 or in Windows Server 2008 R2, you perform asynchronous transfers at a high rate to or from a device that is connected to an IEEE 1394 bus. However, in this case, the IEEE 1394 stack may return incorrect data for a Read or Lock request, or the IEEE 1394 stack may return an incorrect status for a Write, Read, or Lock request.


Additionally, the IEEE 1394 stack may incorrectly report a successful completion of a particular asynchronous request that actually times out internally because of an error. Later, the IEEE 1394 stack may incorrectly complete a different asynchronous request that has a STATUS_IO_TIMEOUT status.

This problem may affect any device that is connected to an IEEE 1394 bus that communicates through the asynchronous transactions. For example, this problem may occur on external hard disks or on other specialized devices.

Cause


This problem occurs because of an error in the Microsoft IEEE 1394 bus driver stack. The Microsoft IEEE 1394 bus driver stack does not make sure that the Transaction Label (This label is used to match an asynchronous request or response pair) is unique among the uncompleted asynchronous requests for a given node on the IEEE 1394 bus. However, this behavior is required by the IEEE 1394 specification.

Resolution


Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

To apply this hotfix, you must be running Windows 7 or Windows Server 2008 R2. Additionally, you must have the new 1394 bus driver installed in Windows 7, as this hotfix does not apply to the legacy 1394 bus driver on Windows 7.

For more information about new and legacy 1394 bus drivers in Windows 7, visit the following Microsoft website:

Installation instructions

To enable this hotfix, you must modify the registry.


Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
Method 1 (manual): Modify the registry
  1. Click Start, click Run, type Regedit in the Open box, and then click OK.
  2. Locate and then click the following registry subkey:

    HKEY_LOCAL_SYSTEM\System\CurrentControlSet\Services\1394ohci\parameters
  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type EnabletLabelBitmap, and then press ENTER.
  5. Right-click EnabletLabelBitmap, and then click Modify.
  6. Type 1 in the Value data box, and then click OK.
  7. Exit Registry Editor.
  8. Restart the computer.
Note To disable this hotfix, you must change the value of this registry entry to 0, or you must delete the registry entry.

Method 2 (automated): Run a Microsoft Visual Basic script (VBScript) 
You may use a VBScript similar to the following sample to automate setting this registry value for the Microsoft Windows 7 IEEE 1394 OpenHCI driver.
'-------------- begin script -------------- 
On Error Resume Next

' Check the version number of the file against our reference
Function CheckVersion(sVerString)
If osMajorVer = 6 Then
If osMinorVer = 1 Then
If spMajorVer >= 1 Then
aMinVersion = Array(6, 1, 7601, 17062)
Else
aMinVersion = Array(6, 1, 7600, 20756)
End If
Else
CheckVersion = false
Exit Function
End If
Else
CheckVersion = false
Exit Function
End If

If IsNull(sVerString) Or IsEmpty(sVerString) Then
CheckVersion = false
Exit Function
End If

' Split input on . and make sure there are 4 elements
aVersion = Split(sVerString, ".")
If UBound(aVersion) <> 3 Then
CheckVersion = false
Exit Function
End If

' Check each element against the reference version number
For i = 0 to 3
If Int(aVersion(i)) < aMinVersion(i) Then
CheckVersion = false
Exit Function
ElseIf Int(aVersion(i)) > aMinVersion(i) Then
CheckVersion = true
Exit Function
End If
Next

' If we get here then the version numbers are equal. Return true.
CheckVersion = true
Exit Function
End Function

' Get the WMI CIMv2 provider
Set oLoc = CreateObject("WbemScripting.SWbemLocator")
Set oCIMSvc = oLoc.ConnectServer("", "root\CIMV2")

' Get the WshShell object (for RegRead and RegWrite)
Set WshShell = CreateObject("WScript.Shell")

' On Vista and higher, handle UAC
Set oOSInfo = oCIMSvc.InstancesOf("Win32_OperatingSystem")
For Each os in oOSInfo
osMajorVer = Int(Left(os.Version, 1))
osMinorVer = Int(Mid(os.Version, 3, 1))
spMajorVer = os.ServicePackMajorVersion
If osMajorVer >= 6 And WScript.Arguments.length = 0 Then
' Use ShellExecute with runas verb to prompt for elevation
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & _
""" uac", "", "runas", 1
WScript.Quit(0)
End If
Exit For
Next

' Check to make sure that 1394ohci.sys is a minimum version that supports this
' flag
Const SYSTEM_FOLDER = 1
Set oFS = CreateObject("Scripting.FileSystemObject")
sFileVer = oFS.GetFileVersion(oFS.GetSpecialFolder(SYSTEM_FOLDER). _
SubFolders("drivers").Files("1394ohci.sys").Path)
If Not CheckVersion(sFileVer) Then
WScript.Echo("The version of 1394ohci.sys on your system does not support the EnabletLabelBitmap flag. " & _
"No changes to your system have been made.")
WScript.Quit(0)
End If

' Write the EnabletLabelBitmap value 1 (enabled) to the registry
sRegPath = "HKLM\SYSTEM\CurrentControlSet\Services\1394ohci\parameters\EnabletLabelBitmap"
WshShell.RegWrite sRegPath, 1, "REG_DWORD"

' Check if write was successful. If not, chances are UAC is enabled
' and this is a non-elevated command prompt
If Err.Number <> 0 Then
WScript.Echo("Error writing EnabletLabelBitmap registry value. " & _
"Make sure you are running from an elevated command prompt")
WScript.Quit(-1)
End If

WScript.Echo("Finished setting EnabletLabelBitmap flag for the 1394 OpenHCI driver. " & _
"Please reboot your system for this change to take effect")
'-------------- end script --------------

Restart requirement

You may have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace a previously released hotfix.

File information

The English (United States) version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.
Windows 7 and Windows Server 2008 R2 file information notes
Important Windows 7 hotfixes and Windows Server 2008 R2 hotfixes are included in the same packages. However, hotfixes on the Hotfix Request page are listed under both operating systems. To request the hotfix package that applies to one or both operating systems, select the hotfix that is listed under "Windows 7/Windows Server 2008 R2" on the page. Always refer to the "Applies To" section in articles to determine the actual operating system that each hotfix applies to.
  • The MANIFEST files (.manifest) and the MUM files (.mum) that are installed for each environment are listed separately in the "Additional file information for Windows Server 2008 R2 and for Windows 7" section. MUM and MANIFEST files, and the associated security catalog (.cat) files, are extremely important to maintain the state of the updated components. The security catalog files, for which the attributes are not listed, are signed with a Microsoft digital signature.
For all supported x86-based versions of Windows 7
File nameFile versionFile sizeDateTimePlatform
1394bus.sys6.1.7600.1638554,78413-Jul-200923:51x86
1394ohci.sys6.1.7600.20756164,35216-Jul-201008:44x86
Ohci1394.sys6.1.7600.1638562,46413-Jul-200923:51Not applicable
For all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File nameFile versionFile sizeDateTimePlatform
1394bus.sys6.1.7600.1638568,09614-Jul-200900:06x64
1394ohci.sys6.1.7600.20756229,37616-Jul-201009:02x64
Ohci1394.sys6.1.7600.1638572,83214-Jul-200900:06x64
For all supported IA-64-based versions of Windows Server 2008 R2
File nameFile versionFile sizeDateTimePlatform
1394bus.sys6.1.7600.16385182,78414-Jul-200900:22IA-64
1394ohci.sys6.1.7600.20756514,04816-Jul-201008:23IA-64
Ohci1394.sys6.1.7600.16385172,03214-Jul-200900:22Not applicable

Workaround


To work around this problem, refer to the "Resolution" section of KB2004130.


For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2004130 IEEE 1394 Asynchronous requests complete with incorrect data or status and/or time out under high transfer rates

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information


For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

Additional file information

Additional file information for Windows 7 and for Windows Server 2008 R2

Additional files for all supported x86-based versions of Windows 7
File namePackage_1_for_kb2261116~31bf3856ad364e35~x86~~6.1.1.0.mum
File versionNot Applicable
File size1,832
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_2_for_kb2261116~31bf3856ad364e35~x86~~6.1.1.0.mum
File versionNot Applicable
File size1,832
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_3_for_kb2261116~31bf3856ad364e35~x86~~6.1.1.0.mum
File versionNot Applicable
File size1,831
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_for_kb2261116_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum
File versionNot Applicable
File size2,199
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File nameX86_1394.inf_31bf3856ad364e35_6.1.7600.20756_none_fbb0bf4d803fe446.manifest
File versionNot Applicable
File size3,572
Date (UTC)16-Jul-2010
Time (UTC)19:13
PlatformNot Applicable
Additional files for all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File nameAmd64_1394.inf_31bf3856ad364e35_6.1.7600.20756_none_57cf5ad1389d557c.manifest
File versionNot Applicable
File size3,576
Date (UTC)16-Jul-2010
Time (UTC)19:15
PlatformNot Applicable
File namePackage_1_for_kb2261116~31bf3856ad364e35~amd64~~6.1.1.0.mum
File versionNot Applicable
File size1,842
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_2_for_kb2261116~31bf3856ad364e35~amd64~~6.1.1.0.mum
File versionNot Applicable
File size1,842
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_3_for_kb2261116~31bf3856ad364e35~amd64~~6.1.1.0.mum
File versionNot Applicable
File size1,841
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_for_kb2261116_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum
File versionNot Applicable
File size2,213
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
Additional files for all supported IA-64-based versions of Windows Server 2008 R2
File nameIa64_1394.inf_31bf3856ad364e35_6.1.7600.20756_none_fbb26343803ded42.manifest
File versionNot Applicable
File size3,574
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_1_for_kb2261116~31bf3856ad364e35~ia64~~6.1.1.0.mum
File versionNot Applicable
File size1,837
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable
File namePackage_for_kb2261116_rtm~31bf3856ad364e35~ia64~~6.1.1.0.mum
File versionNot Applicable
File size1,450
Date (UTC)16-Jul-2010
Time (UTC)19:10
PlatformNot Applicable