阅读:1389回复:0
请教storport miniport的WMI问题
我在支持Storport的Miniport驱动中增加了WMI功能。
按照Windows对WMI运行机制的定义,系统首先应该发WmiSubFunction = IRP_MN_REGINFO_EX (0x0b)的WMI命令,然后再发WmiSubFunction = IRP_MN_QUERY_ALL_DATA (0x00)的WMI命令, 但是我的驱动程序初始化后,StartIO函数收到的第一个来自Storport的WMI命令就是IRP_MN_QUERY_ALL_DATA (0x00),结果在调用ScsiPortWmiDispatchFunction()时导致系统蓝屏,而且HwScsiWmiQueryReginfo() 和HwScsiWmiQueryDataBlock() 都没有被执行,请高手指点。 错误信息如下: 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 |
|