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 验证 选项。

适用于

TxTransferCompleteIndication

TxSendPauseIndication

TxReleaseFrameIndication

OID_WDI_GET_ADAPTER_CAPABILITIES

MINIPORT_HALT回调函数

MINIPORT_SHUTDOWN回调函数

NdisMRegisterWdiMiniportDriver

NdisMDeregisterWdiMiniportDriver

另请参阅

WDI IHV 驱动程序接口

常规连接操作指南

OID_DOT11_RESET_REQUEST

NDIS_STATUS_DOT11_ASSOCIATION_START