none
BSOD 0xD1 while updating storport miniport driver on windows 2012 R2 OS. RRS feed

  • Question

  • Hi All,

    I am getting BSOD 0xD1 during updating our storport miniport driver on windows 2012 R2 (Datacenter Preview).

    Our miniport driver supports extended SRB's. In StartIo routine we are validating extended SRB's. If the request is not a storage request block request, then we are completing the request with error status SRB_STATUS_BAD_FUNCTION. The dump points to this part.

    !analyze -v output is as follows:

    *******************************************************************************

    *                                                                             *
    *                        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: 0000000000000000, memory referenced
    Arg2: 0000000000000002, IRQL
    Arg3: 0000000000000008, value 0 = read operation, 1 = write operation
    Arg4: 0000000000000000, address which referenced memory

    Debugging Details:
    ------------------


    READ_ADDRESS:  0000000000000000 Paged pool

    CURRENT_IRQL:  2

    FAULTING_IP: 
    +0
    00000000`00000000 ??              ???

    PROCESS_NAME:  System

    DEFAULT_BUCKET_ID:  WIN8_DRIVER_FAULT

    BUGCHECK_STR:  AV

    TAG_NOT_DEFINED_c000000f:  FFFFD00020C7FFB0

    TRAP_FRAME:  ffffd00020c7fa40 -- (.trap 0xffffd00020c7fa40)
    NOTE: The trap frame does not contain all registers.
    Some register values may be zeroed or incorrect.
    rax=000000000000fffe rbx=0000000000000000 rcx=ffffe0000fb12118
    rdx=0000000000000000 rsi=0000000000000000 rdi=0000000000000000
    rip=0000000000000000 rsp=ffffd00020c7fbd8 rbp=ffffd00020c7fce0
     r8=0000000000000000  r9=0000000000000000 r10=0000000000000000
    r11=ffffd00020c7fe60 r12=0000000000000000 r13=0000000000000000
    r14=0000000000000000 r15=0000000000000000
    iopl=0         nv up ei pl zr na po nc
    00000000`00000000 ??              ???
    Resetting default scope

    LAST_CONTROL_TRANSFER:  from fffff801ac1d49e9 to fffff801ac1c8da0

    FAILED_INSTRUCTION_ADDRESS: 
    +0
    00000000`00000000 ??              ???

    STACK_TEXT:  
    ffffd000`20c7fbd8 fffff801`ac11d0c8 : ffffd000`20c7fce0 ffffd000`20c4e180 ffffd000`20c7fce0 ffffd000`21304470 : 0x0
    ffffd000`20c7fbe0 fffff801`ac11c361 : ffffd000`20c7fe70 ffffd000`00000001 ffffe000`0fa181f0 ffffd000`00000002 : nt!KiExecuteAllDpcs+0x1b8
    ffffd000`20c7fd30 fffff801`ac1cbed5 : 00000000`00000000 ffffd000`20c4e180 00000000`00000000 ffffe000`0fb12118 : nt!KiRetireDpcList+0xe1
    ffffd000`20c7ffb0 fffff801`ac1cbcd9 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KxRetireDpcList+0x5
    ffffd000`238bcf60 fffff801`ac1cddfa : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiDispatchInterruptContinue
    ffffd000`238bcf90 fffff801`ac11df93 : ffffd000`20c4e180 00000000`00000001 ffffe000`0fb12118 fffff801`ac09eec5 : nt!KiDpcInterrupt+0xca
    ffffd000`238bd120 fffff800`008fa560 : 00000000`00000000 00000000`00000000 ffffd000`24820010 00000000`00000000 : nt!KeInsertQueueDpc+0x1e3
    ffffd000`238bd1a0 fffff800`021e2f38 : ffffd000`24820000 ffffe000`0f234010 ffffe000`0f8165b0 00000000`00000000 : storport!StorPortNotification+0x120
    ffffd000`238bd2b0 fffff800`008fbd55 : fffffa80`0c904428 01cef4cf`d43b2907 ffffd000`238bd380 ffffe000`0fb121a0 : XXX!xxxmpiStartIo+0x48 
    ffffd000`238bd330 fffff800`00902256 : ffffe000`0f8165b0 00000000`00000000 ffffe000`0fb121a0 ffffe000`0fb121a0 : storport!RaidAdapterPostScatterGatherExecute+0x2a5
    ffffd000`238bd400 fffff800`0093d0f1 : ffffe000`0fb12050 fffff800`00000002 ffffe000`0fb121a0 00000000`00000000 : storport!RaidPnPPassToMiniPort+0x346
    ffffd000`238bd490 fffff800`0093d25c : ffffe000`0fb121a0 ffffe000`0fb121a0 ffffcf80`00b2cdc0 00000000`00000018 : storport!RaidAdapterReleaseResources+0x39
    ffffd000`238bd4d0 fffff800`009162b0 : ffffcf80`00b2cdc0 ffffd000`238bd570 00000000`00000000 fffff801`ac2a4ac0 : storport!RaidAdapterRemoveDeviceIrp+0x54
    ffffd000`238bd500 fffff800`008fe27d : ffffe000`0f820900 fffff800`002bb997 ffffe000`0fb12050 ffffe000`0fb12050 : storport!RaidAdapterPnpIrp+0x145cc
    ffffd000`238bd5a0 fffff800`002b67be : ffffe000`0fb12050 ffffd000`238bd610 ffffcf80`00b2cdc0 fffff800`008fe1f0 : storport!RaDriverPnpIrp+0x8d
    ffffd000`238bd5e0 fffff801`ac6e78c1 : ffffcf80`00b2cdc0 00000000`00000002 ffffe000`0fafd540 ffffe000`0142d580 : VerifierExt!xdv_IRP_MJ_PNP_wrapper+0xfe
    ffffd000`238bd640 fffff801`ac705490 : ffffe000`0fb12050 ffffe000`0142d580 ffffe000`0142d580 ffffe000`00c57530 : nt!IovCallDriver+0x3cd
    ffffd000`238bd690 fffff801`ac6e78c1 : ffffe000`0142d6d0 ffffcf80`00b2cdc0 ffffe000`0142d580 00000000`00000002 : nt!ViFilterDispatchPnp+0x170
    ffffd000`238bd6d0 fffff801`ac422856 : ffffe000`0142d580 00000000`00000000 ffffd000`238bd7d0 ffffe000`00c53f40 : nt!IovCallDriver+0x3cd
    ffffd000`238bd720 fffff801`ac41084b : 00000000`00000002 ffffd000`238bd7e9 ffffe000`0f22f680 ffffe000`0f230060 : nt!IopSynchronousCall+0xfe
    ffffd000`238bd790 fffff801`ac0b600f : ffffc000`0015eca0 00000000`0000000a ffffe000`0f22f680 00000000`0000000a : nt!IopRemoveDevice+0xd7
    ffffd000`238bd850 fffff801`ac412ac1 : ffffe000`0f230060 ffffe000`0f22f680 ffffc000`00383db0 fffff801`ac41243a : nt!PnpRemoveLockedDeviceNode+0x1a7
    ffffd000`238bd8b0 fffff801`ac412a36 : 00000000`00000000 ffffc000`00383db0 ffffe000`0f22f680 00000000`3f051397 : nt!PnpDeleteLockedDeviceNode+0x4d
    ffffd000`238bd8f0 fffff801`ac411c2b : ffffe000`0f230060 ffffd000`00000002 00000000`00000000 00000000`00000001 : nt!PnpDeleteLockedDeviceNodes+0x9a
    ffffd000`238bd970 fffff801`ac417165 : 00000000`00000000 00000000`00000001 ffffc000`00000006 00000000`ffffffff : nt!PnpProcessQueryRemoveAndEject+0x51b
    ffffd000`238bdad0 fffff801`ac41747c : ffffc000`0015eca0 00000000`00000000 00000000`00000000 0007f4cf`8b09c300 : nt!PnpProcessTargetDeviceEvent+0x9d
    ffffd000`238bdb10 fffff801`ac0b8efd : ffffe000`0f8498c0 ffffc000`000fbab0 ffffe000`0f610a30 ffffe000`0f610a30 : nt!PnpDeviceEventWorker+0x2f4
    ffffd000`238bdb70 fffff801`ac159968 : 00000000`00000100 ffffe000`0f8498c0 00000000`00000080 ffffe000`0f8498c0 : nt!ExpWorkerThread+0x129
    ffffd000`238bdc00 fffff801`ac1cf3c6 : ffffd000`20c4e180 ffffe000`0f8498c0 ffffe000`0f62e080 00000000`00000000 : nt!PspSystemThreadStartup+0x58
    ffffd000`238bdc60 00000000`00000000 : ffffd000`238be000 ffffd000`238b8000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x16

    Note:

     Normal loading of latest driver is working fine. BSOD happens only when updating the older version driver.


    Please let me know your valuable inputs for further analysis.


    -Sai

    Thursday, December 12, 2013 4:39 PM

All replies

  • During Live Debugging, I noticed that storport driver issuing SRB_FUNCTION_PNP(0x25) to StartIO routine, but not to Build IO routine. And also the context of StartIo routine is not updated properly by storport driver.

    I also observed that, if i put the breakpoints at starting point of BuildIo and StartIO routines, storport never issues SRB_FUNCTION_PNP (0x25) and hence no BSOD.

    Is there any MS update for Storport driver of windows 2012 R2 Datacenter Preview OS ?

    -Sai

     

    Friday, December 13, 2013 10:04 AM