MOTU Traveler bsod


  1. Posts : 5,747
    7600.20510 x86
       #1

    MOTU Traveler bsod


    My system runs perfectly and the only problem I ever have is for my MOTU Traveler firewire interface.

    Occasionally, I get 0xD1 bsod from it. See attached. It works very well in all the software I use it for, but sometimes it just randomly crashes the system doing basic tasks.

    I am using the latest driver they offer. Same one for 7/Vista.

    What I want to know is, would I be "in the right" to tell MOTU to fix their driver while giving them this .dmp file or is there something I could possibly do on my end before "accusing" them of faulty driver?

    (For some reason, my symbols never work well for this MOTU-specific bsod.) Thanks.

    Code:
    Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    
    Loading Dump File [D:\Windows\Minidump\111009-26375-01.dmp]
    Mini Kernel Dump File: Only registers and stack trace are available
    
    Symbol search path is: SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols
    Executable search path is: 
    Unable to load image ntoskrnl.exe, Win32 error 0n2
    *** WARNING: Unable to verify timestamp for ntoskrnl.exe
    *** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe
    Windows 7 Kernel Version 7600 MP (2 procs) Free x86 compatible
    Product: WinNt, suite: TerminalServer SingleUserTS
    Machine Name:
    Kernel base = 0x8303e000 PsLoadedModuleList = 0x8317d570
    Debug session time: Tue Nov 10 15:16:57.162 2009 (GMT-5)
    System Uptime: 1 days 6:33:03.818
    Unable to load image ntoskrnl.exe, Win32 error 0n2
    *** WARNING: Unable to verify timestamp for ntoskrnl.exe
    *** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe
    Loading Kernel Symbols
    ...............................................................
    ................................................................
    .....................................
    Loading User Symbols
    Loading unloaded module list
    ................
    Unable to load image motufwa.sys, Win32 error 0n2
    *** WARNING: Unable to verify timestamp for motufwa.sys
    *** ERROR: Module load completed but symbols could not be loaded for motufwa.sys
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    Use !analyze -v to get detailed debugging information.
    
    BugCheck 100000D1, {c90e90f8, 2, 1, 909e61cd}
    
    ***** Kernel symbols are WRONG. Please fix symbols to do analysis.
    
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    Probably caused by : motufwa.sys ( motufwa+2d1cd )
    
    Followup: MachineOwner
    ---------
    
    0: kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
    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 kernel debugger is available get stack backtrace.
    Arguments:
    Arg1: c90e90f8, memory referenced
    Arg2: 00000002, IRQL
    Arg3: 00000001, value 0 = read operation, 1 = write operation
    Arg4: 909e61cd, address which referenced memory
    
    Debugging Details:
    ------------------
    
    ***** Kernel symbols are WRONG. Please fix symbols to do analysis.
    
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    
    ADDITIONAL_DEBUG_TEXT:  
    Use '!findthebuild' command to search for the target build information.
    If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols.
    
    MODULE_NAME: motufwa
    
    FAULTING_MODULE: 8303e000 nt
    
    DEBUG_FLR_IMAGE_TIMESTAMP:  4a4e6d4d
    
    WRITE_ADDRESS: unable to get nt!MmSpecialPoolStart
    unable to get nt!MmSpecialPoolEnd
    unable to get nt!MmPoolCodeStart
    unable to get nt!MmPoolCodeEnd
     c90e90f8 
    
    CURRENT_IRQL:  0
    
    FAULTING_IP: 
    motufwa+2d1cd
    909e61cd 8954062c        mov     dword ptr [esi+eax+2Ch],edx
    
    CUSTOMER_CRASH_COUNT:  1
    
    DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT
    
    BUGCHECK_STR:  0xD1
    
    LAST_CONTROL_TRANSFER:  from c1e84000 to 909e61cd
    
    STACK_TEXT:  
    WARNING: Stack unwind information not available. Following frames may be wrong.
    9eaf1bdc c1e84000 909ee18f 00000019 0000006a motufwa+0x2d1cd
    9eaf1cdc 909e6169 b3a9b7c0 909e6182 000000b9 0xc1e84000
    9eaf1ce4 909e6182 000000b9 909e6a1b 87613800 motufwa+0x2d169
    9eaf1cec 909e6a1b 87613800 000000b9 b3a9b7c4 motufwa+0x2d182
    9eaf1cf0 87613800 000000b9 b3a9b7c4 b3a9b7cc motufwa+0x2da1b
    9eaf1cf4 00000000 b3a9b7c4 b3a9b7cc 9eaf1d50 0x87613800
    
    
    STACK_COMMAND:  kb
    
    FOLLOWUP_IP: 
    motufwa+2d1cd
    909e61cd 8954062c        mov     dword ptr [esi+eax+2Ch],edx
    
    SYMBOL_STACK_INDEX:  0
    
    SYMBOL_NAME:  motufwa+2d1cd
    
    FOLLOWUP_NAME:  MachineOwner
    
    IMAGE_NAME:  motufwa.sys
    
    BUCKET_ID:  WRONG_SYMBOLS
    
    Followup: MachineOwner
    ---------
    
    0: kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
    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 kernel debugger is available get stack backtrace.
    Arguments:
    Arg1: c90e90f8, memory referenced
    Arg2: 00000002, IRQL
    Arg3: 00000001, value 0 = read operation, 1 = write operation
    Arg4: 909e61cd, address which referenced memory
    
    Debugging Details:
    ------------------
    
    ***** Kernel symbols are WRONG. Please fix symbols to do analysis.
    
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    
    ADDITIONAL_DEBUG_TEXT:  
    Use '!findthebuild' command to search for the target build information.
    If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols.
    
    MODULE_NAME: motufwa
    
    FAULTING_MODULE: 8303e000 nt
    
    DEBUG_FLR_IMAGE_TIMESTAMP:  4a4e6d4d
    
    WRITE_ADDRESS:  c90e90f8 
    
    CURRENT_IRQL:  0
    
    FAULTING_IP: 
    motufwa+2d1cd
    909e61cd 8954062c        mov     dword ptr [esi+eax+2Ch],edx
    
    CUSTOMER_CRASH_COUNT:  1
    
    DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT
    
    BUGCHECK_STR:  0xD1
    
    LAST_CONTROL_TRANSFER:  from c1e84000 to 909e61cd
    
    STACK_TEXT:  
    WARNING: Stack unwind information not available. Following frames may be wrong.
    9eaf1bdc c1e84000 909ee18f 00000019 0000006a motufwa+0x2d1cd
    9eaf1cdc 909e6169 b3a9b7c0 909e6182 000000b9 0xc1e84000
    9eaf1ce4 909e6182 000000b9 909e6a1b 87613800 motufwa+0x2d169
    9eaf1cec 909e6a1b 87613800 000000b9 b3a9b7c4 motufwa+0x2d182
    9eaf1cf0 87613800 000000b9 b3a9b7c4 b3a9b7cc motufwa+0x2da1b
    9eaf1cf4 00000000 b3a9b7c4 b3a9b7cc 9eaf1d50 0x87613800
    
    
    STACK_COMMAND:  kb
    
    FOLLOWUP_IP: 
    motufwa+2d1cd
    909e61cd 8954062c        mov     dword ptr [esi+eax+2Ch],edx
    
    SYMBOL_STACK_INDEX:  0
    
    SYMBOL_NAME:  motufwa+2d1cd
    
    FOLLOWUP_NAME:  MachineOwner
    
    IMAGE_NAME:  motufwa.sys
    
    BUCKET_ID:  WRONG_SYMBOLS
    
    Followup: MachineOwner
    ---------
    
    0: kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
    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 kernel debugger is available get stack backtrace.
    Arguments:
    Arg1: c90e90f8, memory referenced
    Arg2: 00000002, IRQL
    Arg3: 00000001, value 0 = read operation, 1 = write operation
    Arg4: 909e61cd, address which referenced memory
    
    Debugging Details:
    ------------------
    
    ***** Kernel symbols are WRONG. Please fix symbols to do analysis.
    
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!KPRCB                                      ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    *************************************************************************
    ***                                                                   ***
    ***                                                                   ***
    ***    Your debugger is not using the correct symbols                 ***
    ***                                                                   ***
    ***    In order for this command to work properly, your symbol path   ***
    ***    must point to .pdb files that have full type information.      ***
    ***                                                                   ***
    ***    Certain .pdb files (such as the public OS symbols) do not      ***
    ***    contain the required information.  Contact the group that      ***
    ***    provided you with these symbols if you need this command to    ***
    ***    work.                                                          ***
    ***                                                                   ***
    ***    Type referenced: nt!_KPRCB                                     ***
    ***                                                                   ***
    *************************************************************************
    
    ADDITIONAL_DEBUG_TEXT:  
    Use '!findthebuild' command to search for the target build information.
    If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols.
    
    MODULE_NAME: motufwa
    
    FAULTING_MODULE: 8303e000 nt
    
    DEBUG_FLR_IMAGE_TIMESTAMP:  4a4e6d4d
    
    WRITE_ADDRESS:  c90e90f8 
    
    CURRENT_IRQL:  0
    
    FAULTING_IP: 
    motufwa+2d1cd
    909e61cd 8954062c        mov     dword ptr [esi+eax+2Ch],edx
    
    CUSTOMER_CRASH_COUNT:  1
    
    DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT
    
    BUGCHECK_STR:  0xD1
    
    LAST_CONTROL_TRANSFER:  from c1e84000 to 909e61cd
    
    STACK_TEXT:  
    WARNING: Stack unwind information not available. Following frames may be wrong.
    9eaf1bdc c1e84000 909ee18f 00000019 0000006a motufwa+0x2d1cd
    9eaf1cdc 909e6169 b3a9b7c0 909e6182 000000b9 0xc1e84000
    9eaf1ce4 909e6182 000000b9 909e6a1b 87613800 motufwa+0x2d169
    9eaf1cec 909e6a1b 87613800 000000b9 b3a9b7c4 motufwa+0x2d182
    9eaf1cf0 87613800 000000b9 b3a9b7c4 b3a9b7cc motufwa+0x2da1b
    9eaf1cf4 00000000 b3a9b7c4 b3a9b7cc 9eaf1d50 0x87613800
    
    
    STACK_COMMAND:  kb
    
    FOLLOWUP_IP: 
    motufwa+2d1cd
    909e61cd 8954062c        mov     dword ptr [esi+eax+2Ch],edx
    
    SYMBOL_STACK_INDEX:  0
    
    SYMBOL_NAME:  motufwa+2d1cd
    
    FOLLOWUP_NAME:  MachineOwner
    
    IMAGE_NAME:  motufwa.sys
    
    BUCKET_ID:  WRONG_SYMBOLS
    
    Followup: MachineOwner
    ---------
    Possibly, I'd like to show them this thread too.
      My Computer


  2. Posts : 1,377
    Win7x64
       #2

    Short: It is entirely legitimate to ask MOTU to explain why their driver appears to be crashing your machine.

    Medium: If you zip up your ntoskrnl.exe, upload it somewhere, and PM me with the link, I might be able to provide more debug spew :)



    =====================================
    Long:

    Whenever symbols are being problematic, it's a good idea to enable "noisy" (verbose) symbol loading, and thus hopefully get more info:

    ...
    *** WARNING: Unable to verify timestamp for ntoskrnl.exe
    *** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe
    0: kd> !sym noisy
    noisy mode - symbol prompts on
    0: kd> .reload nt
    SYMSRV: c:\symcachepub\ntoskrnl.exe\4A8CB33C400000\ntoskrnl.exe not found
    SYMSRV:
    http://msdl.microsoft.com/download/symbols/ntoskrnl.exe/4A8CB33C400000/ntoskrnl.exe not found
    <...omitted for clarity...>
    DBGHELP: ntoskrnl.exe missing debug info. Searching for pdb anyway
    DBGHELP: Can't use symbol server for ntoskrnl.pdb - no header information available
    DBGHELP: ntoskrnl.pdb - file not found
    *** WARNING: Unable to verify timestamp for ntoskrnl.exe
    *** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe
    DBGHELP: nt - no symbols loaded


    The bit in red is highly significant. When symbols for a particular executable are required, in this case NTOSKRNL.EXE, the debugger attempts to scour the dump for what's called the "image header" section of that file - a sort of ID card - in order to make sure it's pulling down the correct symbols for that version of the executable.

    As with any large executable file, NTOSKRNL.EXE (internally called just 'nt' by the debugger) is comprised of many separate "pages" (4KB chunks) when it's read into memory. In this case the pages backing the image header weren't resident at the time of the crash, and that's a problem from the debugger's point of view because the image header isn't written to the minidump - only RAM-resident pages can end up in a "memory dump".

    There's a trick: since you know that the version of NTOSKRNL.EXE is the one in your \Windows\System32 directory, you can tell the debugger to look there for the entire file - including the image header - and hence deduce what symbols it needs. The way to do that is by using the "File | Image path" menu option, or the ".exepath" command, and then perform another ".reload nt" to get the symbols situation re-examined.
    Last edited by H2SO4; 10 Nov 2009 at 19:53.
      My Computer


  3. Posts : 1,377
    Win7x64
       #3

    And now....

    0: kd> .exepath v:\kernels\32-bit
    Executable image search path is: v:\kernels\32-bit
    Expanded Executable image search path is: v:\kernels\32-bit
    0: kd> .reload nt
    0: kd> kv
    ChildEBP RetAddr Args to Child
    WARNING: Stack unwind information not available. Following frames may be wrong.
    9eaf1c98 8309272f b3679d48 b3679e08 00000000 motufwa+0x2d1cd
    9eaf1d10 909d3600 b3a9b7cc 00000000 9eaf1d50 nt!KeWaitForSingleObject+0x393
    9eaf1d50 83225d16 b3a9b7c4 a3d3169c 00000000 motufwa+0x1a600
    9eaf1d90 830c7159 909d3690 b3a9b7c4 00000000 nt!PspSystemThreadStartup+0x9e
    00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19


    Ah, much better - we've got nt symbols now. The stack is still slightly stuffed because we don't have motufwa.sys symbols, but it's close to reality (there's no way KeWaitForSingleObject is calling back into the driver).

    Let's look at the crashing instruction and the code immediately around it:

    0: kd> uf .
    motufwa+0x2d1cd:
    909e61cd 8954062c mov dword ptr [esi+eax+2Ch],edx
    909e61d1 5e pop esi
    909e61d2 b801000000 mov eax,1
    909e61d7 81c104020000 add ecx,204h
    909e61dd 8701 xchg eax,dword ptr [ecx]
    909e61df c20800 ret 8

    0: kd> r
    eax=c90e8000 ebx=06dc3288 ecx=87613800 edx=000001a8 esi=000010cc edi=bdcb7b28
    eip=909e61cd esp=9eaf1be0 ebp=0147a000 iopl=0 nv up ei pl nz na pe nc
    motufwa+0x2d1cd:
    909e61cd 8954062c mov dword ptr [esi+eax+2Ch],edx ds:0023:c90e90f8=????????


    The immediate cause of the crash is an attempt to write the contents of the EDX register (0x1a8 - possibly a handle) into the memory address pointed at by the sum of ESI, EAX, and 0x2C. EAX probably corresponds to the start of an array in pool memory allocated by the motufwa driver(0xc90e8000), ESI would be some multiple of the size of an individual array element (0x10cc), and 0x2C is the offset into the struct where the EDI value is to be placed.

    The problem is this:
    0: kd> !irql
    Debugger saved IRQL for processor 0x0 -- 2 (DISPATCH_LEVEL)


    The processor's IRQL at the point where the driver attempts to write to [esi+eax+2Ch] is 2, the so-called "dispatch" level. There are two fundamental rules which are drummed into driver developers when they're learning their trade:

    1) Should you raise the IRQL to 2 or above, or find yourself executing code at IRQL>=2, you must not stop or pause.

    2) At IRQL>=2, you must only work with memory which is resident (in RAM), as opposed to being paged out to disk.

    The second rule is actually a side-effect of the first. If a thread incurs a page fault by "touching" a non-resident page, it is temporarily parked aside until the memory is faulted back into RAM. That temporary parking constitutes a stoppage by the thread, so by accessing non-resident memory the code has indirectly fallen foul of rule#1.

    The OS's own "dispatcher" component which decides which thread to run next runs at IRQL=2, hence the name "dispatch" level. A driver which raises IRQL to 2 or above can no longer be pre-empted by the OS dispatcher. If it was to stop or pause, the processor would just sit there doing nothing because the OS cannot stop in and schedule a different thread to run.

    By touching non-resident memory ([esi+eax+2Ch]) at "dispatch" IRQL, the motufwa.sys driver brought about a situation whereby it wants to stop - until the page is faulted back in - but the OS cannot give over the processor to another thread because the OS dispatcher is itself blocked by motufwa's actions.

    The most probable cause is a bug in motufwa.sys. The developers apparently didn't anticipate needing to write to this memory at raised IRQL, and yet that's exactly what their driver attempted to do at runtime.

    Hope this helps :)

    (Depersonalised, and with your approval, it would form the start of a good "When good drivers go bad" BSOD walkthrough in this section of the forum!)
      My Computer


  4. Posts : 5,747
    7600.20510 x86
    Thread Starter
       #4

    Hey. Thank you very much! I created a thread at motunation.com.

    Hopefully engineers there could have a look and this would probably help a lot with a new release, once they make one public. They don't update often so hopefully it has decent time to be looked at.

    About the "When good drivers go bad" - sure. You could use any information at all from here. All perfectly fine by me.
      My Computer


  5. Posts : 1,377
    Win7x64
       #5

    torrentg said:
    Hey. Thank you very much! I created a thread at motunation.com.
    No problem at all :)

    torrentg said:
    Hopefully engineers there could have a look and this would probably help a lot with a new release, once they make one public. They don't update often so hopefully it has decent time to be looked at.
    If it comes down to actual debugging, they might want a "kernel" dump, as opposed to a minidump, so it might be an idea to stash one of those somewhere in case it's requested.

    torrentg said:
    About the "When good drivers go bad" - sure. You could use any information at all from here. All perfectly fine by me.
    OK. It's actually an excellent real life example of one of the most common types of software BSODs.
      My Computer


  6. Posts : 5,747
    7600.20510 x86
    Thread Starter
       #6

    I did what you're saying in post #2 out of simply wanting to learn about it further. Yeah, I see more information now using those suggestions described. Very cool.
      My Computer


  7. Posts : 1,377
    Win7x64
       #7

    torrentg said:
    I did what you're saying in post #2 out of simply wanting to learn about it further. Yeah, I see more information now using those suggestions described. Very cool.
    Yes, it's a useful trick, and I needed your ntoskrnl so that I could do the same thing over here (I'm on a "frankenmachine" which barely holds together )
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 10:40.
Find Us