RdpDr.sys Bug Check 0X7E{0xC0000005}

公司测试组反馈一个BSOD,上下文如下
WARNING: Frame IP not in any known module. Following frames may be wrong.
a99fd26c f6bdcd93 8591ec78 8591ec78 8591ec78 0×0
a99fd284 f6bdd187 8591ec78 8591ec78 859ca8e0 rdpdr!RxLowIoCompletionTail+0×33
a99fd298 f6bc0d2a 8591ec78 a99fd2c8 f6bc10a9 rdpdr!RxLowIoCompletion+0x3f
a99fd2a4 f6bc10a9 8591ec78 00000000 00000016 rdpdr!DrDevice::CompleteRxContext+0x2a
a99fd2c8 f6bb834d a99fd30c 00000000 00000016 rdpdr!DrDevice::CompleteBusyExchange+0x4d
a99fd2f8 f6bc1991 e1370000 856222d8 a99fd370 rdpdr!DrDrive::OnQueryFileInfoCompletion+0x2a5
a99fd31c f6bbe6f9 e1370000 0000002a a99fd370 rdpdr!DrDevice::OnDeviceIoCompletion+0xa9
a99fd33c f6bbe8b6 e1370000 0000002a a99fd370 rdpdr!DrExchangeManager::OnDeviceIoCompletion+0×55
a99fd350 f6bbf543 e1370000 0000002a a99fd370 rdpdr!DrExchangeManager::HandlePacket+0×26
a99fd37c f6bbee66 00000000 858481c3 85848150 rdpdr!DrSession::ReadCompletion+0xc5
a99fd394 804f26c0 00000000 85848150 85945c80 rdpdr!DrSession::ReadCompletionRoutine+0×38
a99fd3c4 f7723864 85498628 00000000 e11cc008 nt!IopfCompleteRequest+0xa2
a99fd400 f772446b 85498628 00000005 00000000 termdd!IcaChannelInputInternal+0x1f4
a99fd428 a968b94e 85aa2fbc 00000005 00000000 termdd!IcaChannelInput+0×41
a99fd45c a9685b25 e11cc008 00590e06 00000032 RDPWD!WDW_OnDataReceived+0×180
a99fd484 a9685949 e11cc82c e11ce12c a99fd400 RDPWD!SM_MCSSendDataCallback+0x12d
a99fd4ec a9685770 00000045 a99fd524 0000004c RDPWD!HandleAllSendDataPDUs+0×155
a99fd508 a9684632 00000045 a99fd524 806e7900 RDPWD!RecognizeMCSFrame+0×32
a99fd530 f7727625 e11cc008 00000000 85590e38 RDPWD!MCSIcaRawInput+0x32c
a99fd550 f79ec1e5 85535504 00000000 85590dec termdd!IcaRawInput+0×53
a99fdd90 f772622f 85590ca0 00000000 855acda8 TDTCP!TdInputThread+0x36f
a99fddac 805d0f72 85665950 00000000 00000000 termdd!_IcaDriverThread+0×51
a99fdddc 805470ee f77261de 85463180 00000000 nt!PspSystemThreadStartup+0×34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0×16
触发行为:
3389连接到测试机器上,拷贝文件到测试机,测试机器直接蓝屏
原因:
MS的rdpdr本身就有一个BUG,不能处理以异步方式查询文件信息的IRP。如果上层传来一个异步查询信息的IRP,就会导致这个BSOD。这个BUG
直到VISTA才修补。
解决方法:
在自己初始化IRP的地方设置Irp->Flags = IRP_SYNCHRONOUS_API;把IRP标志为同步IRP即可


3 Responses to “RdpDr.sys Bug Check 0X7E{0xC0000005}”

  1. 玄风残翼 说道:

    我是来顶你的。

    [回复]

  2. pk8995 说道:

    我X,我也碰到这事了。
    必须用同步的才行,原来是个BUG……

    [回复]

  3. kkmylove 说道:

    留个名 顶

    [回复]

Post a Comment