我尝试使用 Windows-driver-samples-master 了解 Windows WDI 驱动程序示例 github中的 etwork\wlan\WDI。
我通过microsoft教程和示例代码一步步编写了我的代码。
教程中的MiniportInitializeEx操作
MiniportWdiOpenAdapter 之后,Microsoft 组件发送 以下任务/属性/调用 IHV 微型端口。
a.调用 MiniportWdiTalTxRxInitialize 来初始化数据路径和交换处理程序。
b.调用 OID_WDI_GET_ADAPTER_CAPABILITIES 获取适配器的功能。
C。调用 OID_WDI_SET_ADAPTER_CONFIGURATION 来配置适配器。
d.如果尚未处于预期状态,请调用 OID_WDI_TASK_SET_RADIO_STATE 设置初始无线电状态。
e.调用 MiniportWdiTalTxRxStart 设置数据路径。
F。调用 OID_WDI_TASK_CREATE_PORT 创建初始端口。如果中间操作失败,Microsoft 组件将撤消之前的操作,并使微型端口启动失败。
我在步骤c之后失败了,不知道。这是我的调试功能日志(==>:条目,<== : Exit)
[DriverEntry:12] ==>>
[WdiInitialize:726] ==>>
[WdiInitialize:801] <<==
[DriverEntry:25] <<==
[AllocateAdapterHandler:161] ==>>
[AllocateAdapterHandler:200] <<==
[OpenAdapterHandler:225] ==>>
[OpenAdapterHandler:232] <<==
[TalTxRxInitializeHandler:631] ==>>
[TalTxRxInitializeHandler:695] <<==
[OidRequestHandler:48] ==>>
[DbgPrintOidName:84] OID_WDI_GET_ADAPTER_CAPABILITIES
[OidRequestHandler:51] PortNumber:0
[OidRequestHandler:52] InputBufferLength: 16
[WdiOidGetAdapterCapabilities:471] ==>>
[WdiOidGetAdapterCapabilities:505] <<==
[OidRequestHandler:89] BytesWritten: 203
[OidRequestHandler:92] <<==
[OidRequestHandler:48] ==>>
[DbgPrintOidName:84] OID_WDI_SET_ADAPTER_CONFIGURATION
[OidRequestHandler:51] PortNumber:0
[OidRequestHandler:52] InputBufferLength: 47
[OidRequestHandler:89] BytesWritten: 16
[OidRequestHandler:92] <<==
[TalTxRxDeinitializeHandler:708] ==>>
[TalTxRxDeinitializeHandler:713] <<==
[CloseAdapterHandler:246] ==>>
[CloseAdapterHandler:252] <<==
[FreeAdapterHandler:211] ==>>
[FreeAdapterHandler:212] <<==
[UnloadHandler:27] ==>>
[UnloadHandler:33] <<==
我们可以看到Microsoft组件在OID_WDI_SET_ADAPTER_CONFIGURATION之后撤消了之前的操作。
我不知道该步骤失败了。有谁可以指点一下吗
DatapathAttributes 是关键,尽管它是可选设置。
pAdapterCapsParams->Optional.DatapathAttributes_IsPresent = TRUE;
嗨 Levoir,我现在面临着完全相同的问题,但是 Microsoft 组件在 OID_WDI_GET_ADAPTER_CAPABILITIES 而不是 OID_WDI_SET_ADAPTER_CONFIGURATION 之后撤消了之前的操作。
您可以与我分享 OID_WDI_GET_ADAPTER_CAPABILITIES 配置吗? 这对我有很大帮助,非常感谢。