Topic: Fireface 400 Windows 7 64-bit crashes
(This is a slightly modified version of the email that I just sent to RME support. I am posting it here to call attention to this issue. I kindly request that non-RME individuals with cargo cult "fixes" that do not solve the problem, such as changing PCI-E link state power management, changing the power scheme to "high performance", sacrificing a goat at midnight and bathing in its blood, etc., stay out of this thread, as the issue is NOT SPECIFIC to my system.)
(And, for the benefit of readers, as I have not attached my system configuration as I did in the support email--this is a MacPro1,1 running Windows 7 SP1 64-bit, with the magical fairy dust-sprinkled TI FireWire chip that's supposed to work just fine.)
This has been a long-standing issue for at LEAST two years, and honestly, it is completely unacceptable that it has still not been fixed. There have been countless threads over the years on the RME forums about it, my old roommate had a Fireface 400 and saw the same problem on multiple systems, and it is still not fixed.
At the end of this post please find the output of !analyze -v from WinDbg clearly showing a crash within the Windows FireWire subsystem.
I have found a way to reliably reproduce this bug, and while it sounds ridiculous, experience debugging Windows software has taught me to not ignore seemingly-unrelated interactions--there was once a bug in a Windows DNS server product which triggered when Windows Media Player was also in use (had something to do with multimedia timers).
I have seen the issue no fewer than three times while:
1) foobar2000 (a music player) was playing, and;
2) Windows Installer was active.
This most recent crash, Windows Update was running. During a previous crash, I was attempting to install VMware. During a previous crash, I was installing some other product that used MSI. I also experienced a crash once while working on a song in OpenMPT and installing some MSI thing in the background.
So, let us review:
1) The bugcheck happens in the FireWire subsystem;
2) The Fireface is the only thing on the FireWire bus;
3) Multiple client programs crash the machine, and;
4) The issue occurs across different systems with different FireWire controllers, leaving a single common element--the Fireface 400.
A fix to this is long overdue. I look forward to seeing it resolved.
Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Windows\Minidump\101211-42635-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available
Symbol search path is: srv*C:\Windows\mdl_debugging_symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Kernel Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7601.17640.amd64fre.win7sp1_gdr.110622-1506
Machine Name:
Kernel base = 0xfffff800`02c5f000 PsLoadedModuleList = 0xfffff800`02ea4670
Debug session time: Wed Oct 12 01:39:45.953 2011 (UTC - 7:00)
System Uptime: 0 days 1:08:24.997
Loading Kernel Symbols
...............................................................
................................................................
...............................
Loading User Symbols
Loading unloaded module list
.....
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck A, {100000010329, 2, 0, fffff80002c1a806}
Probably caused by : 1394ohci.sys ( 1394ohci!IsochTx::Release+18d )
Followup: MachineOwner
---------
2: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: 0000100000010329, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000000, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: fffff80002c1a806, address which referenced memory
Debugging Details:
------------------
READ_ADDRESS: GetPointerFromAddress: unable to read from fffff80002f0e100
0000100000010329
CURRENT_IRQL: 2
FAULTING_IP:
hal!HalPutScatterGatherList+b6
fffff800`02c1a806 8b6f2c mov ebp,dword ptr [rdi+2Ch]
CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
BUGCHECK_STR: 0xA
PROCESS_NAME: audiodg.exe
TRAP_FRAME: fffff880061fc410 -- (.trap 0xfffff880061fc410)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=0000000000000000 rbx=0000000000000000 rcx=0000000000000001
rdx=0000000000000fff rsi=0000000000000000 rdi=0000000000000000
rip=fffff80002c1a806 rsp=fffff880061fc5a0 rbp=0000000000000900
r8=fffffa800bc7b600 r9=0000000000000900 r10=0000000000000000
r11=fffff880061fc610 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl nz na pe nc
hal!HalPutScatterGatherList+0xb6:
fffff800`02c1a806 8b6f2c mov ebp,dword ptr [rdi+2Ch] ds:cce0:00000000`0000002c=????????
Resetting default scope
LAST_CONTROL_TRANSFER: from fffff80002cdb1e9 to fffff80002cdbc40
STACK_TEXT:
fffff880`061fc2c8 fffff800`02cdb1e9 : 00000000`0000000a 00001000`00010329 00000000`00000002 00000000`00000000 : nt!KeBugCheckEx
fffff880`061fc2d0 fffff800`02cd9e60 : 00000000`00000202 fffff800`02ce1fda fffff800`02e51e80 fffffa80`0931c1b0 : nt!KiBugCheckDispatch+0x69
fffff880`061fc410 fffff800`02c1a806 : fffffa80`0931c1b0 00000000`00000900 00000000`00000168 fffffa80`09e64490 : nt!KiPageFault+0x260
fffff880`061fc5a0 fffff880`00f10c65 : 00000000`00000000 00000000`00000000 fffffa80`092adcc8 fffffa80`092adc80 : hal!HalPutScatterGatherList+0xb6
fffff880`061fc600 fffff880`00f1029d : fffffa80`092adc60 00000000`00000000 fffffa80`092adcc8 00000000`00000005 : Wdf01000!FxDmaScatterGatherTransaction::ReleaseResources+0x39
fffff880`061fc630 fffff880`00f109fc : fffffa80`092adc60 00000000`00000000 fffffa80`092adc60 fffffa80`0931b200 : Wdf01000!FxDmaTransactionBase::Dispose+0xd1
fffff880`061fc680 fffff880`00f6dbb5 : fffffa80`092adc60 00000000`00000000 00000000`00000005 a87b86ac`72dabe50 : Wdf01000!FxDmaScatterGatherTransaction::Dispose+0x1c
fffff880`061fc6b0 fffff880`00f6d5c8 : fffffa80`092adc60 00000000`00000000 00000000`00000000 00000000`00000000 : Wdf01000!FxObject::DisposeChildrenWorker+0x215
fffff880`061fc730 fffff880`00f6d789 : fffffa80`092adc60 00000000`00000000 00000000`00000000 fffff800`02ce591a : Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0xbc
fffff880`061fc7a0 fffff880`00f6db89 : fffffa80`0931b260 fffff880`00f3fe00 fffffa80`092adc60 fffffa80`0931b260 : Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xf5
fffff880`061fc810 fffff880`00f6d883 : fffffa80`0931b260 00000000`00000000 00000000`00000000 fffffa80`0931b201 : Wdf01000!FxObject::DisposeChildrenWorker+0x1e9
fffff880`061fc890 fffff880`00f6d159 : fffffa80`0931b260 0000057f`f4e7d100 0000057f`f4e7d100 00000000`00000000 : Wdf01000!FxObject::DeleteWorkerAndUnlock+0xdf
fffff880`061fc8f0 fffff880`00f68085 : 0000057f`f6ce4d98 0000057f`f4e7d100 00000000`00000000 fffffa80`0a8e7e70 : Wdf01000!FxObject::DeleteObject+0x1a9
fffff880`061fc950 fffff880`0fd31645 : fffffa80`0931b260 fffffa80`0931b630 0000057f`f6ce4d98 0000057f`f6ce4d98 : Wdf01000!imp_WdfObjectDelete+0x101
fffff880`061fc9a0 fffff880`0fd29a5d : 00000000`00000000 0000057f`f4e7d188 fffffa80`0a994d90 fffffa80`0bfbf310 : 1394ohci!IsochTx::Release+0x18d
fffff880`061fca10 fffff880`0fd290a9 : 0000057f`f4e7d188 0000057f`f566b618 00000000`00000028 00000000`0022021d : 1394ohci!Isoch::HandleIsochFreeResources+0xe9
fffff880`061fca60 fffff880`00f54047 : fffffa80`0b182e70 fffffa80`0a8e7e70 fffffa80`0a8e7e70 fffff880`00f3eaab : 1394ohci!Isoch::WdfEvtIoInternalDeviceControl+0x161
fffff880`061fcad0 fffff880`00f5399f : fffffa80`0a9949e0 fffffa80`0b182e70 fffffa80`0a9949e0 fffffa80`0b182f00 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x56f
fffff880`061fcb50 fffff880`00f531ab : fffffa80`0a9949e0 00000000`00000000 00000000`00000000 00000000`00000000 : Wdf01000!FxIoQueue::DispatchEvents+0x4df
fffff880`061fcbc0 fffff880`00f51f1e : 00000000`00000000 fffffa80`0a9d48d0 fffffa80`0a9949e0 fffffa80`0b182f98 : Wdf01000!FxIoQueue::QueueRequestFromForward+0x1f7
fffff880`061fcc20 fffff880`00f52555 : 00000000`8517d300 00000000`00000000 fffffa80`0a9d48d0 fffff880`0fd456b8 : Wdf01000!FxIoQueue::ForwardRequestWorker+0x17a
fffff880`061fcc90 fffff880`00f2fcd6 : 00000000`0b297ba0 fffffa80`0a8e7e70 00000000`00000000 fffff880`0fd258c4 : Wdf01000!FxIoQueue::ForwardRequest+0x185
fffff880`061fcd00 fffff880`0fd258c4 : fffffa80`0a9949e0 0000057f`f4e7d188 fffffa80`0b182e70 fffffa80`0a9d4c80 : Wdf01000!imp_WdfRequestForwardToIoQueue+0x12e
fffff880`061fcd50 fffff880`0fd25605 : 0000057f`f4e7d188 0000057f`f562b728 00000000`00000028 fffffa80`0a9d4c80 : 1394ohci!Dispatch::DispatchIrbRequest+0xa8
fffff880`061fcda0 fffff880`00f54047 : fffffa80`0b182e70 fffffa80`0a8e7e70 fffffa80`0a8e7e70 fffff880`00f79f00 : 1394ohci!Dispatch::WdfEvtIoInternalDeviceControl+0x131
fffff880`061fce10 fffff880`00f5399f : fffffa80`0b182e70 fffffa80`0b182e70 fffffa80`0a9d48d0 fffffa80`0a9d48d0 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x56f
fffff880`061fce90 fffff880`00f52f98 : 00000000`00000000 00000000`00000000 00000000`00000000 fffffa80`0b182fc2 : Wdf01000!FxIoQueue::DispatchEvents+0x4df
fffff880`061fcf00 fffff880`00f58558 : fffffa80`0a187400 fffffa80`0b182e70 fffffa80`0a187390 fffffa80`0b182e70 : Wdf01000!FxIoQueue::QueueRequest+0x2bc
fffff880`061fcf70 fffff880`00f42245 : fffffa80`0b182e70 00000000`00000000 00000000`00000000 0000057f`f69edb68 : Wdf01000!FxPkgIo::Dispatch+0x37c
fffff880`061fcff0 fffff880`00f2e6d0 : 00000000`00000000 00000000`00000000 0000057f`f69edb68 fffff880`061fd0a0 : Wdf01000!FxDevice::Dispatch+0xa9
fffff880`061fd020 fffff880`0fd23178 : fffffa80`0a8e7fc0 fffffa80`09612490 fffffa80`0af53df0 fffffa80`0af5bfc0 : Wdf01000!imp_WdfRequestSend+0x37c
fffff880`061fd070 fffff880`0fd233af : fffffa80`0bfbf310 0000057f`f69edb68 0000057f`f69edb68 0000057f`f50a63a8 : 1394ohci!ChildDevice::DispatchIrbRequest+0x60
fffff880`061fd0c0 fffff880`0fd22289 : 0000057f`f69edb68 0000057f`f50a63a8 00000000`00000028 fffffa80`0af5bfc0 : 1394ohci!ChildDevice::HandleIrbRequest+0x1db
fffff880`061fd100 fffff880`00f54047 : fffffa80`09612490 fffffa80`0a8e7e70 fffffa80`0a8e7e70 fffff800`02ccf200 : 1394ohci!ChildDevice::WdfEvtIoInternalDeviceControl+0x141
fffff880`061fd170 fffff880`00f5399f : 00000000`00000000 fffffa80`09612490 fffffa80`0af59c50 fffffa80`0af59c50 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x56f
fffff880`061fd1f0 fffff880`00f52f98 : 00000000`00000000 00000000`00000000 00000000`00000000 fffffa80`096125e2 : Wdf01000!FxIoQueue::DispatchEvents+0x4df
fffff880`061fd260 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : Wdf01000!FxIoQueue::QueueRequest+0x2bc
STACK_COMMAND: kb
FOLLOWUP_IP:
1394ohci!IsochTx::Release+18d
fffff880`0fd31645 488b0dc45a0100 mov rcx,qword ptr [1394ohci!WPP_GLOBAL_Control (fffff880`0fd47110)]
SYMBOL_STACK_INDEX: e
SYMBOL_NAME: 1394ohci!IsochTx::Release+18d
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: 1394ohci
IMAGE_NAME: 1394ohci.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4ce7a6a8
FAILURE_BUCKET_ID: X64_0xA_1394ohci!IsochTx::Release+18d
BUCKET_ID: X64_0xA_1394ohci!IsochTx::Release+18d
Followup: MachineOwner
---------