WiFiCx: NDIS never binds protocols after successful adapter creation
Problem
We are developing a WiFiCx client driver. All initialization succeeds:
WifiDeviceInitialize -> success
WifiDeviceSetDeviceCapabilities, SetPhyCapabilities, SetBandCapabilities, SetStationCapabilities -> all success
NetAdapterCreate -> success
WifiAdapterInitialize -> success
NetAdapterStart -> success
- WiFiCx sends
SET_ADAPTER_CONFIGURATION and TASK_SET_RADIO_STATE, driver handles both correctly
The adapter appears in Get-NetAdapter with correct MAC, MediaType=Native 802.11, InterfaceType=71.
However, NDIS never binds any protocols. UpperBind is empty, no Linkage key, no TCPIP interface. netsh wlan show interfaces reports no wireless interfaces.
ETW Evidence
NDIS ETW trace shows:
- Event 10600 (MiniportAdd): fires for our adapter
- Event 10601 (MiniportInit): never fires for our adapter
- Only OID seen:
OID_PNP_SET_POWER, completed by NDIS on behalf of miniport
INF
Characteristics = 0x84
BusType = 5
*IfType = 71
*MediaType = 16
*PhysicalMediaType = 9
NumberOfNetworkInterfaces = 5
UpperRange = ndis6_wifi
LowerRange = wlan
KmdfLibraryVersion = 1.33
Code Pattern
Following the documentation exactly:
NetDeviceInitConfig -> WifiDeviceInitConfig -> WdfDeviceCreate -> WifiDeviceInitialize (with WDI_VERSION_LATEST, send command callback, create adapter callback, create WFD device callback)
In EvtWifiDeviceCreateAdapter:
NetAdapterCreate -> WifiAdapterInitialize -> set link layer caps/MAC/MTU -> NetAdapterStart
In EvtWifiDeviceSendCommand:
- SET commands:
WifiRequestComplete() with bytesWritten=16
- TASK commands:
WifiRequestComplete() + WifiDeviceReceiveIndication(Device, messageId, ...)
Question
What triggers WiFiCx to signal NDIS miniport initialization complete? Our adapter is registered (10600) but MiniportInit (10601) never fires. We complete all commands from the framework. Is there a missing step?
Environment: Windows 11 25H2 Build 26200, WDK 10.0.26100.0, KMDF 1.33, WiFiCx 1.2
WiFiCx: NDIS never binds protocols after successful adapter creation
Problem
We are developing a WiFiCx client driver. All initialization succeeds:
WifiDeviceInitialize-> successWifiDeviceSetDeviceCapabilities,SetPhyCapabilities,SetBandCapabilities,SetStationCapabilities-> all successNetAdapterCreate-> successWifiAdapterInitialize-> successNetAdapterStart-> successSET_ADAPTER_CONFIGURATIONandTASK_SET_RADIO_STATE, driver handles both correctlyThe adapter appears in
Get-NetAdapterwith correct MAC, MediaType=Native 802.11, InterfaceType=71.However, NDIS never binds any protocols.
UpperBindis empty, noLinkagekey, no TCPIP interface.netsh wlan show interfacesreports no wireless interfaces.ETW Evidence
NDIS ETW trace shows:
OID_PNP_SET_POWER, completed by NDIS on behalf of miniportINF
Code Pattern
Following the documentation exactly:
NetDeviceInitConfig->WifiDeviceInitConfig->WdfDeviceCreate->WifiDeviceInitialize(withWDI_VERSION_LATEST, send command callback, create adapter callback, create WFD device callback)In
EvtWifiDeviceCreateAdapter:NetAdapterCreate->WifiAdapterInitialize-> set link layer caps/MAC/MTU ->NetAdapterStartIn
EvtWifiDeviceSendCommand:WifiRequestComplete()with bytesWritten=16WifiRequestComplete()+WifiDeviceReceiveIndication(Device, messageId, ...)Question
What triggers WiFiCx to signal NDIS miniport initialization complete? Our adapter is registered (10600) but MiniportInit (10601) never fires. We complete all commands from the framework. Is there a missing step?
Environment: Windows 11 25H2 Build 26200, WDK 10.0.26100.0, KMDF 1.33, WiFiCx 1.2