阅读:2846回复:1
请教storport miniport的WMI问题
我在storport miniport驱动中添加了WMI支持,即把PORT_CONFIGURATION_INFORMATION的WmiDataProvider参数设为了TRUE, 按照Windows对WMI运行机制的定义,首先应该发IRP_MN_REGINFO_EX 0x0b,命令,然后再发IRP_MN_QUERY_ALL_DATA 0x00命令,
但是我的驱动程序初始化后,StartIO函数收到的第一个来自Storport的WMI命令就是IRP_MN_QUERY_ALL_DATA 0x00,从而导致系统蓝屏,请高手指点。 错误信息如下: HWStartIO: Srb->Function = 0x17 HWStartIo: SRB_FUNCTION_WMI WmiOsProcessSrb: Srb->DataPath = 0x0 WmiOsProcessSrb: Srb->DataBuffer = 0x85258000 WmiOsProcessSrb: Srb->DataTransferLength = 8080 WmiOsProcessSrb: Srb->WMIFlags = 0x1 WmiOsProcessSrb: Srb->WMISubFunction = 0x0 WmiOsProcessSrb: Srb->SrbFlags = 0x140 *** Fatal System Error: 0x000000d1 (0x00000000,0x00000002,0x00000000,0xF5C3DC56) Break instruction exception - code 80000003 (first chance) A fatal system error has occurred. Debugger entered on first try; Bugcheck callbacks have not been invoked. A fatal system error has occurred. READ_ADDRESS: 00000000 CURRENT_IRQL: 2 FAULTING_IP: PMSPCDN!ScsiWmipFindGuid+1c [d:\dnsrv\drivers\storage\scsiwmi\wmilib.c @ 91] bae845ce f3a7 repe cmps dword ptr [esi],dword ptr es:[edi] DEFAULT_BUCKET_ID: DRIVER_FAULT BUGCHECK_STR: 0xD1 PROCESS_NAME: System TRAP_FRAME: f78f29bc -- (.trap 0xfffffffff78f29bc) ErrCode = 00000000 eax=00000000 ebx=00000000 ecx=00000004 edx=bafe438c esi=00000000 edi=bafe436c eip=bae845ce esp=f78f2a30 ebp=f78f2a3c iopl=0 nv up ei pl zr na pe nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246 PMSPCDN!ScsiWmipFindGuid+0x1c: bae845ce f3a7 repe cmps dword ptr [esi],dword ptr es:[edi] ds:0023:00000000=???????? es:0023:bafe436c=c6fb7542 Resetting default scope LAST_CONTROL_TRANSFER: from 8082616f to 80871648 STACK_TEXT: f78f25b8 8082616f 00000003 00000000 0000000a nt!RtlpBreakWithStatusInstruction f78f2604 80827044 00000003 00000000 bae845ce nt!KiBugCheckDebugBreak+0x19 f78f299c 8088bdd3 0000000a 00000000 00000002 nt!KeBugCheck2+0x5b2 f78f299c bae845ce 0000000a 00000000 00000002 nt!KiTrap0E+0x2a7 f78f2a3c bae84784 bafe438c 00000002 00000000 MyDriver!ScsiWmipFindGuid+0x1c [d:\dnsrv\drivers\storage\scsiwmi\wmilib.c @ 91] f78f2a68 bae84a88 8a103ed4 89a14700 8a103004 MyDriver!ScsiWmipProcessRequest+0x30 [d:\dnsrv\drivers\storage\scsiwmi\wmilib.c @ 308] f78f2a9c bae7ada3 8a103ed4 89a14700 8a103004 MyDriver!ScsiPortWmiDispatchFunction+0x4c [d:\dnsrv\drivers\storage\scsiwmi\wmilib.c @ 783] f78f2ac8 bae77322 8a103004 89b33410 c05d7320 MyDriver!WmiOsProcessSrb+0x123 [d:\work\wmi\wmi_driver_21_02\tisa\drivers\windows\stor\startio.c @ 1715] f78f2b04 bae55500 8a103004 89b33410 f78f2b3c MyDriver!HWStartIo+0x362 [d:\work\wmi\wmi_driver_21_02\tisa\drivers\windows\stor\startio.c @ 427] f78f2b14 bae56a56 8a0e2c24 89b33410 00000f88 storport!RaCallMiniportStartIo+0x1e f78f2b3c bae56af2 8a0e2b70 898e6e88 89bd26ec storport!RaidAdapterPostScatterGatherExecute+0x86 f78f2b54 80a5824f 8a0e2ab8 00000000 898e6ed4 storport!RaidpAdapterContinueScatterGather+0x2c f78f2b80 bae5848c 898e6ed4 8a0e2ab8 89bd26c8 hal!HalBuildScatterGatherList+0x1c7 f78f2bb0 bae56b73 8a0e2cf8 8a0e2ab8 89bd26c8 storport!RaidDmaBuildScatterGatherList+0x2c f78f2bec bae56bc5 8a0e2cf8 898e6e00 f78f2c14 storport!RaidAdapterScatterGatherExecute+0x49 f78f2bfc bae56ec0 8a0e2b70 898e6e88 89b33410 storport!RaidAdapterExecuteXrb+0x21 f78f2c14 bae643b1 8a0e2b70 898e6e88 f78f2c90 storport!RaidAdapterRaiseIrqlAndExecuteXrb+0x1c f78f2c4c bae64503 8a0e2ab8 00000000 00001f88 storport!RaWmiPassToMiniPort+0x1a3 f78f2c7c bae64629 8a0e2ab8 f78f2c90 8a14da08 storport!RaWmiIrpRegisterRequest+0xa3 f78f2ca0 bae62e65 8a0e2ab8 89923380 f78f2cc4 storport!RaWmiDispatchIrp+0x53 f78f2cb0 8081dce5 8a0e2ab8 89923380 89923380 storport!RaDriverSystemControlIrp+0x15 f78f2cc4 8097f376 f78f2d48 89923380 8a0f2000 nt!IofCallDriver+0x45 f78f2cf0 8097f43f 89923380 00000008 8a0e2a03 nt!WmipForwardWmiIrp+0x17e f78f2d1c 80981241 00000008 8a0e2ab8 00000000 nt!WmipSendWmiIrp+0x59 f78f2d58 809812c1 8a1b7210 00000000 f78f2d80 nt!WmipRegisterOrUpdateDS+0x75 f78f2d68 8098160e 8a1b7210 8a184660 808ae5fc nt!WmipRegisterDS+0xf f78f2d80 8087f925 00000000 00000000 8a184660 nt!WmipRegistrationWorker+0x50 f78f2dac 80948bb2 00000000 00000000 00000000 nt!ExpWorkerThread+0xeb f78f2ddc 8088d4d2 8087f83a 00000001 00000000 nt!PspSystemThreadStartup+0x2e 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 STACK_COMMAND: kb FOLLOWUP_IP: MyDriver!ScsiWmipFindGuid+1c [d:\dnsrv\drivers\storage\scsiwmi\wmilib.c @ 91] bae845ce f3a7 repe cmps dword ptr [esi],dword ptr es:[edi] FAULTING_SOURCE_CODE: No source found for 'd:\dnsrv\drivers\storage\scsiwmi\wmilib.c' SYMBOL_STACK_INDEX: 4 SYMBOL_NAME: MyDriver!ScsiWmipFindGuid+1c FOLLOWUP_NAME: MachineOwner MODULE_NAME: MyDriver IMAGE_NAME: MyDriver.SYS DEBUG_FLR_IMAGE_TIMESTAMP: 49363ca7 FAILURE_BUCKET_ID: 0xD1_MyDriver!ScsiWmipFindGuid+1c BUCKET_ID: 0xD1_MyDriver!ScsiWmipFindGuid+1c Followup: MachineOwner |
|
沙发#
发布于:2011-03-23 12:39
兄弟这个原因是因为这个WMI SRB 先进了HWBuildIo, 然后你的HWBuildIo可能把srb->WMISubFunction 里面的内容改了。
最近我跟解掉这个BUG. ggggchen@gmail.com |
|