To re-enable the
1394A performance improvements on TI 1394A host
controllers, install this hotfix, and then
modify the registry as appropriate for your situation.
Windows XP 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 this specific problem.
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, submit a request to 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, the computer must run one of the following:
- Windows XP Service Pack 2
- Windows XP Service Pack 3
Restart requirement
You have to restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace any other previously released
hotfixes.
Methods to enable this hotfix
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
To enable this hotfix, use one of the following methods.
Method 1: Modify the registry
- Click Start, click Run,
type regedit, and then click OK.
- Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CCS\Enum\PCI\VEN_xxxx&DEV_yyyy\instance id\Device Parameters
Note The xxxx placeholder represents the vendor ID. The vendor ID for TI is 104C. The yyyy placeholder represents the device ID for the host controller that is installed in the computer. - On the Edit menu, point to
New, and then click DWORD Value.
- Type DiagnosticMode, and then press
ENTER.
- Right-click DiagnosticMode, click Modify. The Edit DWORD Value box opens.
- In the Base box, click Hexadecimal, type
10 in the Value data box, and
then click OK.
- Exit Registry Editor.
- Restart the computer.
Method 2: Run a Microsoft Visual Basic script (VBScript)
You
can use the following VBScript to
automate setting this registry value on all Texas Instruments 1394A host
controllers that
are on the
system.
To run this VBScript, put the following code in a file that has the name of
<FileName>.vbs, and then run the file at a command-prompt.
'-------------- begin script --------------
On Error Resume Next
' Check the version number of the file against our reference
Function CheckVersion(sVerString)
' TODO: Plug in actual ver #'s
If osMajorVer = 5 Then
If spMajorVer = 2 Then
aMinVersion = Array(5, 1, 2600, 3473)
ElseIf spMajorVer = 3 Then
aMinVersion = Array(5, 1, 2600, 5706)
Else
CheckVersion = false
Exit Function
End If
ElseIf osMajorVer = 6 Then
aMinVersion = Array(6, 0, 6001, 22303)
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))
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 ohci1394.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("ohci1394.sys").Path)
If Not CheckVersion(sFileVer) Then
WScript.Echo("The version of ohci1394.sys on your system does not " & _
"support the 1394A override flag. No changes to your system have " & _
"been made.")
WScript.Quit(0)
End If
' Locate all 1394 controllers
WScript.Echo("Attempting to set 1394A override flag on all TI 1394 OHCI " & _
"host controllers")
i1394Count = 0
Set col1394Controllers = oCIMSvc.ExecQuery("SELECT * FROM Win32_1394Controller")
For Each o1394Controller in col1394Controllers
' Check if this is a TI controller
If Instr(o1394Controller.PNPDeviceID, "VEN_104C") <> 0 Then
' Initialize diagnostic flags
dwDiagMode = 0
' Try and read in any diag flags already set. Ignore errors (most
' likely due to no DiagnosticMode value existing)
sRegPath = "HKLM\SYSTEM\CurrentControlSet\Enum\" + _
o1394Controller.PNPDeviceID + "\Device Parameters\DiagnosticMode"
dwDiagMode = WshShell.RegRead(sRegPath)
Err.Clear
' OR in the bit in question (0x10)
dwDiagMode = dwDiagMode Or &H10
WshShell.RegWrite sRegPath, dwDiagMode, "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 DiagnosticMode registry value. " & _
"Make sure you are running from an elevated command prompt")
WScript.Quit(-1)
End If
i1394Count = i1394Count + 1
Exit For
End If
Next
WScript.Echo("Finished setting 1394A override flag for " & i1394Count & _
" TI host controllers. Please reboot your system for this change to" & _
" take effect")
'-------------- end script --------------
File information
The English
version of this hotfix 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.
Windows XP SP2, x86-based versions
Collapse this tableExpand this table
File name | File version | File
size | Date | Time | Platform |
---|
Ohci1394.sys | 5.1.2600.3473 | 61,440 | 05-Nov-2008 | 09:57 | x86 |
Windows XP SP3, x86-based versions
Collapse this tableExpand this table
File name | File version | File
size | Date | Time | Platform |
---|
Ohci1394.sys | 5.1.2600.5706 | 61,824 | 05-Nov-2008 | 10:06 | x86 |
Windows Vista and Windows Server 2008 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.
Important Windows Vista
and Windows Server 2008 hotfixes are included in the same packages. However,
only one of these products may be listed on the �Hotfix Request� page. To
request the hotfix package that applies to both Windows Vista and Windows
Server 2008, just select the product that is listed on the page.
Prerequisites
To apply this hotfix, the computer must run one of the following:
- Windows Vista Service Pack 1
- Windows Server 2008
Restart requirement
You have to restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace any other previously released
hotfixes.
Methods to enable this hotfix
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
To enable this hotfix, use one of the following methods.
Method 1: Modify the registry
- Click Start, type regedit in the Start Search box, and then press ENTER.
- Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CCS\Enum\PCI\VEN_xxxx&DEV_yyyy\instance id\Device Parameters
Note The xxxx placeholder represents the vendor ID. The vendor ID for TI is 104C. The yyyy placeholder represents the device ID for the host controller that is installed in the computer. - On the Edit menu, point to
New, and then click DWORD Value.
- Type DiagnosticMode, and then press
ENTER.
- Right-click DiagnosticMode, click Modify. The Edit DWORD Value box opens.
- In the Base box, click Hexadecimal, type
10 in the Value data box, and
then click OK.
- Exit Registry Editor.
- Restart the computer.
Method 2: Run a Microsoft Visual Basic script (VBScript)
You
can use the following VBScript to
automate setting this registry value on all Texas Instruments 1394A host
controllers that
are on the
system.
'-------------- begin script --------------
On Error Resume Next
' Check the version number of the file against our reference
Function CheckVersion(sVerString)
' TODO: Plug in actual ver #'s
If osMajorVer = 5 Then
If spMajorVer = 2 Then
aMinVersion = Array(5, 1, 2600, 3473)
ElseIf spMajorVer = 3 Then
aMinVersion = Array(5, 1, 2600, 5706)
Else
CheckVersion = false
Exit Function
End If
ElseIf osMajorVer = 6 Then
aMinVersion = Array(6, 0, 6001, 22303)
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))
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 ohci1394.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("ohci1394.sys").Path)
If Not CheckVersion(sFileVer) Then
WScript.Echo("The version of ohci1394.sys on your system does not " & _
"support the 1394A override flag. No changes to your system have " & _
"been made.")
WScript.Quit(0)
End If
' Locate all 1394 controllers
WScript.Echo("Attempting to set 1394A override flag on all TI 1394 OHCI " & _
"host controllers")
i1394Count = 0
Set col1394Controllers = oCIMSvc.ExecQuery("SELECT * FROM Win32_1394Controller")
For Each o1394Controller in col1394Controllers
' Check if this is a TI controller
If Instr(o1394Controller.PNPDeviceID, "VEN_104C") <> 0 Then
' Initialize diagnostic flags
dwDiagMode = 0
' Try and read in any diag flags already set. Ignore errors (most
' likely due to no DiagnosticMode value existing)
sRegPath = "HKLM\SYSTEM\CurrentControlSet\Enum\" + _
o1394Controller.PNPDeviceID + "\Device Parameters\DiagnosticMode"
dwDiagMode = WshShell.RegRead(sRegPath)
Err.Clear
' OR in the bit in question (0x10)
dwDiagMode = dwDiagMode Or &H10
WshShell.RegWrite sRegPath, dwDiagMode, "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 DiagnosticMode registry value. " & _
"Make sure you are running from an elevated command prompt")
WScript.Quit(-1)
End If
i1394Count = i1394Count + 1
Exit For
End If
Next
WScript.Echo("Finished setting 1394A override flag for " & i1394Count & _
" TI host controllers. Please reboot your system for this change to" & _
" take effect")
'-------------- end script --------------
File information
The English
version of this hotfix 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.
Windows Vista and Windows Server 2008 file information notes
The MANIFEST files (.manifest) and MUM files (.mum) installed
for each environment are
listed
separately . MUM and MANIFEST files, and the associated security
catalog (.cat) files, are critical to maintaining the state of the updated
component. The security catalog files (attributes not listed) are signed with a
Microsoft digital signature.
For all supported 32-bit versions of Windows Server 2008 and of Windows Vista
Collapse this tableExpand this table
File name | File version | File
size | Date | Time | Platform |
---|
1394bus.sys | 6.0.6001.22303 | 53,376 | 06-Nov-2008 | 10:57 | Not
Applicable |
Ohci1394.sys | 6.0.6001.22303 | 62,208 | 06-Nov-2008 | 10:57 | Not
Applicable |
For all supported 64-bit versions of Windows Server 2008 and of Windows Vista
Collapse this tableExpand this table
File name | File version | File
size | Date | Time | Platform |
---|
1394bus.sys | 6.0.6001.22303 | 65,280 | 06-Nov-2008 | 12:13 | x64 |
Ohci1394.sys | 6.0.6001.22303 | 72,448 | 06-Nov-2008 | 12:13 | x64 |
For all supported Itanium-based versions of Windows Server 2008 and of Windows Vista
Collapse this tableExpand this table
File name | File version | File
size | Date | Time | Platform |
---|
1394bus.sys | 6.0.6001.22303 | 175,616 | 06-Nov-2008 | 12:01 | Not
Applicable |
Ohci1394.sys | 6.0.6001.22303 | 172,032 | 06-Nov-2008 | 12:01 | Not
Applicable |