WlanAssert 规则 (ndis)
WlanAssert 规则包括一组在 WDIWIFI 驱动程序内验证的检查。
可能存在以下冲突:
TxPeerBacklogStub:在数据路径取消初始化后称为数据路径的 IHV WDI 微型端口 - 此规则仅适用于 Peer-Queuing 模式。 当微型端口已停止或重置时,WDI 将调用 IHV 驱动程序的 CloseAdapterHandler 函数,这将要求驱动程序清理其状态,之后不调用任何数据回调。 如果驱动程序碰巧调用任何数据处理程序(如 TxTransferCompleteIndication、TxSendPauseIndication 或关闭后 TxReleaseFrameIndication),或者关闭后仍有任何未完成的 Tx 帧,则将调用这些断言。
TxAbortStub:数据路径取消初始化后称为数据路径的 IHV WDI 微型端口 - 此规则仅适用于 Peer-Queuing 模式。 当微型端口已停止或重置时,WDI 将调用 IHV 驱动程序的 CloseAdapterHandler 函数,这将要求驱动程序清理其状态,之后不调用任何数据回调。 如果驱动程序碰巧调用任何数据处理程序(如 TxTransferCompleteIndication、TxSendPauseIndication 或关闭后 TxReleaseFrameIndication),或者关闭后仍有任何未完成的 Tx 帧,则将调用这些断言。
卸载 WDIWIFI 驱动程序时,对 NdisMDeregisterWdiMiniportDriver 和 NdisMRegisterWdiMiniportDriver 的调用不匹配 - 如果 IHV 驱动程序对 NdisMRegisterWdiMiniportDriver 的调用失败,但 IHV 驱动程序仍调用 NdisMDeregisterWdiMiniportDriver 处理程序,则会调用此断言。
IhvWdiVersion 对于传递的 MiniportDataHandler 修订版来说太低 - WDI 将通过调用 OID_WDI_GET_ADAPTER_CAPABILITIES 获取 IHV 驱动程序的 WDI 版本,然后调用驱动程序的 TalTxRxInitializeHandler 处理程序以获取 WdiCharacteristics,驱动程序可根据需要更新 WDI 处理程序修订。 如果驱动程序的 WDI 版本小于或等于 WDI_VERSION_1_1_0,但驱动程序的 WdiCharacteristics, Revision 设置为大于 NDIS_OBJECT_TYPE_MINIPORT_WDI_DATA_HANDLERS_REVISION_1 的版本,则会命中此断言。
MiniportDataHandler 修订版对于 IhvWdiVersion 来说太低 - WDI 将通过调用 OID_WDI_GET_ADAPTER_CAPABILITIES 获取 IHV 驱动程序的 WDI 版本,然后调用驱动程序的 TalTxRxInitializeHandler 处理程序以获取 WdiCharacteristics,驱动程序可根据需要更新 WDI 处理程序修订。 如果驱动程序的 WDI 版本大于 WDI_VERSION_1_1_0,但驱动程序的 WdiCharacteristics, Revision 设置为低于 NDIS_OBJECT_TYPE_MINIPORT_WDI_DATA_HANDLERS_REVISION_2 的版本,则会命中此断言。
冲突文本将在0xC4 bug 检查中作为参数 2 提供。
驱动程序模型:NDIS
通过以下规则找到 bug 检查 () :Bug 检查0xC4:DRIVER_VERIFIER_DETECTED_VIOLATION ( 0x00093004)
如何测试
运行时 |
---|
运行 驱动程序验证程序 并选择 NDIS/WIFI 验证 选项。 |
适用于
OID_WDI_GET_ADAPTER_CAPABILITIES
NdisMRegisterWdiMiniportDriver
NdisMDeregisterWdiMiniportDriver