Skip to content

WiFiCx: NDIS never binds protocols after successful adapter creation (MiniportInit never fires) #28

@cosmichut

Description

@cosmichut

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions