none
Miniport native wifi driver unable to bind to filter drivers RRS feed

  • Question

  • I am developing an NDIS KMDF Miniport driver for a USB wifi adapter.

    The miniport initialization callback succeeds.

    The miniport restart handler is called and an event NdisDevicePnPEventPowerProfileChanged is received.

    However, ndisAttachFilterDriver fails to bind the driver with filter drivers like Native wifi filter driver.

    The return code is c0010006 which decodes as NDIS_STATUS_ADAPTER_NOT_FOUND.

    The adapter is powered up and i can send requests to the USB device.

    Clueless on why the filter drivers are unable to bind.

    Friday, June 26, 2015 10:14 PM

Answers

  • First off, you don't ship with Windows, so get rid of the LayoutFile directive. Second, the DelReg sections will never be called for a miniport, so they're just cluttering up your INF file. I don't see any obvious errors in the INF.

    You should turn on tracing to see what NDIS thinks is going on. Look here and check out the links on the page.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    • Marked as answer by kk_2112 Saturday, August 1, 2015 9:07 PM
    Thursday, July 2, 2015 7:03 PM
    Moderator

All replies

  • Which OS? Also, please attach the output from !ndiskd.miniports, !ndiskd.filters, !ndiskd.protocols

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Friday, June 26, 2015 11:24 PM
    Moderator
  • Windows 7 64-bit



    kd> !ndiskd.miniport fffffa8010f001a0
    MINIPORT
        PureLiFi Li-Fi-X
        Ndis handle        fffffa8010f001a0
        Ndis API version   v6.20
        Adapter context    fffffa801123fa40
        Miniport driver    fffffa801122c020 - purelifi_lifix  v1.0
        Network interface  fffffa800d445870

        Media type         802.11
        Physical medium    Native802.11
        Device instance    USB\VID_221A&PID_0100\04A3D2EEF9
        Device object      fffffa8010f00050    More information
        MAC address        19-19-19-19-19-19

    AUTOMATIC DIAGNOSTICS
        This miniport will operate in a slow path until 1 more protocol(s) bind, or
        until a 90-second timeout expires.
        What does this mean?

    STATE

        Miniport           Running
        Device PnP         Started
        Datapath           Normal
        Interface          Up
        Media              Connected
        Power              D0
        References         8
        Total resets       0
        Pending OID        None
        Flags              NOT_BUS_MASTER, DEFAULT_PORT_ACTIVATED,
                           SUPPORTS_MEDIA_SENSE, DOES_NOT_DO_LOOPBACK,
                           MEDIA_CONNECTED
        PnP flags          PM_SUPPORTED, DEVICE_POWER_ENABLED, RECEIVED_START,
                           HARDWARE_DEVICE, NDIS_WDM_DRIVER
    BINDINGS

        Protocol list      Driver              Open               Context           
        No protocols have an open binding

        Filter list        Driver              Module             Context           
        No filters are attached


    • Edited by kk_2112 Monday, June 29, 2015 6:34 PM
    Monday, June 29, 2015 6:28 PM
  • The adapter also shows with other adapters in device manager and "change adapter 
    settings".

    Are there any settings in the inf file that specify the bindings?Can Ndi keys 
    play a role here?I have the Ndi keys in the inf file,but cannot locate them in 
    the registry.

    However,the ndis traces show the failure to bind with native wifi filter:


    00001440 mp  4 256 3
    0 06\29\2015-10:58:40:59
    ==>ndisCheckMiniportFilters: Miniport FFFFFA801288D1A0
    00001441 mp  4 256 3
    0 06\29\2015-10:58:40:59
    ==>ndisAttachFilterToMiniport: FilterDriver FFFFFA8011854010, Miniport 
    FFFFFA801288D1A0, Native WiFi Filter Driver
    00001442 mp  4 256 3
    0 06\29\2015-10:58:40:59
    <==ndisAttachFilterToMiniport: FilterDriver FFFFFA8011854010, Miniport 
    FFFFFA801288D1A0, Status c0010006
    00001443 mp  4 92 1
    0 06\29\2015-10:58:40:59
    ndisPnPDispatch: Miniport FFFFFA801288D1A0, MinorFunction: 8
    00001444 mp  4 92 1
    0 06\29\2015-10:58:40:59
    ndisPnPDispatch: Miniport FFFFFA801288D1A0, MinorFunction 0x8
    00001445 mp  4 256 3
    0 06\29\2015-10:58:40:59
    Monday, June 29, 2015 6:37 PM
  • Yes, the bindings are specified by the NDI keys, specifically LowerRange and UpperRange. They are added to the registry in HKLM\System\CCS\Control\Class\<Class GUID>\<Instance>\Ndi\Interfaces. The class GUID for miniports comes from your INF file, and should be {4d36e972-e325-11ce-bfc1-08002be10318}

    Post your INF file

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Monday, June 29, 2015 10:17 PM
    Moderator
  • This is my inf file:

    ;
    ; ztexusb.inf
    ;

    [Version]
    Signature="$WINDOWS NT$"
    Class=Net
    ClassGuid={4d36e972-e325-11ce-bfc1-08002be10318}
    Provider=%ManufacturerName%
    CatalogFile=usbztex.cat
    ;DriverVer= 19/05/2015,1.00


    [ControlFlags]
    ExcludeFromSelect = *

    ;*****************************************
    ; Install Section
    ;*****************************************

    [Manufacturer]
    %ManufacturerName%=PureLiFi,NT$ARCH$.6.1, NT$ARCH$.6.0

    [PureLiFi.NT$ARCH$.6.1]
    %usbztex.DeviceDesc%=usbztex_OS61.ndi, USB\VID_221A&PID_0100

    [PureLiFi.NT$ARCH$.6.0]
    %usbztex.DeviceDesc%=usbztex_OS60.ndi, USB\VID_221A&PID_0100


    ;
    ; Generic section that applies to most devices
    [usbztex_OS61.ndi.NT$ARCH$]
    Include=netvwifibus.inf
    Needs=VWiFiBus.CopyFiles
    Characteristics = 0x84
    BusType         = 15
    AddReg          = usbztex_os.reg usbztex.reg
    DelReg          = usbztex.DelReg
    CopyFiles       = usbztex.copyfiles
    *IfType         = 71        ; IF_TYPE_IEEE80211
    *MediaType      = 16        ; NdisMedium802_3
    *PhysicalMediaType = 9      ; NdisPhysicalMediumNative802_11

    [usbztex_OS61.ndi.NT$ARCH$.Services]
    Include=netvwifibus.inf
    Needs=VWiFiBus.Services
    AddService = purelifi_lifix,2, purelifi_lifix.Service


    ; Generic section that applies to most devices
    [usbztex_OS60.ndi.NT$ARCH$]
    Include=netvwifibus.inf
    Needs=VWiFiBus.Services
    Characteristics = 0x84
    BusType         = 15
    AddReg          = usbztex_os.reg usbztex.reg
    DelReg          = usbztex.DelReg
    CopyFiles       = usbztex.copyfiles
    *IfType         = 71        ; IF_TYPE_IEEE80211
    *MediaType      = 16        ; NdisMedium802_3
    *PhysicalMediaType = 9      ; NdisPhysicalMediumNative802_11


    [usbztex_OS60.ndi.NT$ARCH$.Services]
    Include=netvwifibus.inf
    Needs=VWiFiBus.Services
    AddService = purelifi_lifix,2, purelifi_lifix.Service

    [usbztex_OS61.ndi.NT$ARCH$.Services]
    Include=netvwifibus.inf
    Needs=VWiFiBus.Services
    AddService = purelifi_lifix,2, purelifi_lifix.Service


    [usbztex_OS60.ndi.NT$ARCH$.HW]
    Include=netvwifibus.inf
    Needs=VWiFiBus.PnPFilterRegistration

    [usbztex_OS61.ndi.NT$ARCH$.HW]
    Include=netvwifibus.inf
    Needs=VWiFiBus.PnPFilterRegistration



    [usbztex_os.reg]
    HKR, Ndi,                           Service,    0, "purelifi_lifix"
    HKR, Ndi\Interfaces,                UpperRange, 0, "ndis5"
    HKR, Ndi\Interfaces,                LowerRange, 0, "wlan,ethernet,vwifi"

    [usbztex.reg]
    HKR, Ndi\params\*ReceiveBuffers,    ParamDesc,  0, "%ReceiveBuffers%"
    HKR, Ndi\params\*ReceiveBuffers,    default,    0, "256"
    HKR, Ndi\params\*ReceiveBuffers,    min,        0, "1"
    HKR, Ndi\params\*ReceiveBuffers,    max,        0, "00000512"
    HKR, Ndi\params\*ReceiveBuffers,    step,       0, "1"
    HKR, Ndi\params\*ReceiveBuffers,    Base,       0, "10"
    HKR, Ndi\params\*ReceiveBuffers,    type,       0, "int"
    HKR, Ndi\params\*TransmitBuffers,   ParamDesc,  0, "%TransmitBuffers%"
    HKR, Ndi\params\*TransmitBuffers,   default,    0, "512"
    HKR, Ndi\params\*TransmitBuffers,   min,        0, "1"
    HKR, Ndi\params\*TransmitBuffers,   max,        0, "00000512"
    HKR, Ndi\params\*TransmitBuffers,   step,       0, "1"
    HKR, Ndi\params\*TransmitBuffers,   Base,       0, "10"
    HKR, Ndi\params\*TransmitBuffers,   type,       0, "int"
    HKR, Ndi\params\NetworkAddress,     ParamDesc,  0,  %NetworkAddress%
    HKR, Ndi\params\NetworkAddress,     default,    0,  ""
    HKR, Ndi\params\NetworkAddress,     LimitText,  0,  "12"
    HKR, Ndi\params\NetworkAddress,     UpperCase,  0,  "1"
    HKR, Ndi\params\NetworkAddress,     optional,   0,  "1"
    HKR, Ndi\params\NetworkAddress,     type,       0,  "edit"

    [usbztex.DelReg]
    HKR,,NetBand
    HKR,,ssid
    HKR,,ssid2
    HKR,,ssid3
    HKR,,scanTimeValid
    HKR,,shortPreamble
    HKR,,prefBssid1
    HKR,,prefBssid2
    HKR,,prefBssid3
    HKR,,prefBssid4
    HKR,Ndi\Params\tpc
    HKR,,tpc
    HKR,Ndi\Params\authTypeUseOnly
    HKR,,authTypeUseOnly
    HKR,,AdHocBand
    HKR,,AwakeTimePerf
    HKR,,beaconInterval
    HKR,,bkScanEnable
    HKR,,bssType
    HKR,,ccode
    HKR,,clist
    HKR,,defaultKey
    HKR,,EncryptionAlg
    HKR,,FragThreshold
    HKR,,HwTxRetries
    HKR,,privacyInvoked
    HKR,,QoS
    HKR,,rateCtrlEnable
    HKR,,RTSThreshold
    HKR,,scanType
    HKR,,SwTxRetryScale
    HKR,,SmeEnable
    HKR,,aifs
    HKR,,cwmin
    HKR,Ndi\params,MapRegisters,0x2000
    HKR,,MapRegisters
    HKR,Ndi\params,radioEnable,0x2000
    HKR,Ndi\params,sleepMode,0x2000
    HKR,,sleepMode
    HKR,,transmitRateMax



    ; --------------  driver install sections
    [purelifi_lifix.Service]
    DisplayName    = %purelifi.SVCDESC%
    ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
    StartType      = 1               ; SERVICE_DEMAND_START
    ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
    ServiceBinary  = %12%\usbztex.sys
    LoadOrderGroup = NDIS

    [usbztex.copyfiles]
    usbztex.sys,,,2

    [SourceDisksNames]
    1 = %DiskName%,usbztex.sys,,

    [SourceDisksFiles]
    usbztex.sys  = 1,,

    [DestinationDirs]
    ;DefaultDestDir = 12
    DefaultDestDir=10,System32\drivers              
    ClassInstall32_CopyFiles=11
    ;CoInstaller_CopyFiles = 11



    [Strings]
    SPSVCINST_ASSOCSERVICE= 0x00000002
    ManufacturerName="PureLiFi"
    ClassName="Li-Fi-X Network Adapter"
    DiskName = "Installation Disk"
    purelifi.SVCDESC = "PureLiFi Li-Fi-X Adapter"
    REG_MULTI_SZ = 0x00010000
    usbztex.DeviceDesc = "PureLiFi Li-Fi-X"
    NetworkAddress = "Network Address"
    TransmitBuffers = "Transmit Buffers"
    ReceiveBuffers = "Receive Buffers"
    rssiThrHigh = "RSSI Threshold"
    rssiThrHighNormal = "Normal"
    rssiThrHighMin = "Min"

    Thursday, July 2, 2015 8:45 AM
  • the Ndi keys are not getting created fro the driver.

    I do not understand the reason,the inf file seems ok but may be it is not.

    Please give me clues on creation of Ndi keys

    Thursday, July 2, 2015 12:55 PM
  • hi brian

    Thanks for your tip on the "Ndi" keys.

    I changed the driver inf file, but now the problem is that 3 out of 5 filter drivers are able to bind ,

    2 filters are still failing ( Native wifi filter and WFP Light weight filter;posting the new inf:

    ;This INF file intended 
    ; /****************************************************************************
    ; ****************************************************************************/

    [version]
    Signature = "$Windows NT$"
    Class = Net
    ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
    Provider = %PURELIFI%
    LayoutFiles = layout.inf
    CatalogFile = purelifi.cat
    ;DriverVer = 04/20/2011,2.0.0.62


    [Manufacturer]
    %PURELIFI% = purelifi, NTamd64.6.1

    [ControlFlags]
    ExcludeFromSelect = *


    [purelifi.NTamd64.6.1]
    ;DisplayName Section Hardware ID
    ;----------- ------- --------------------------
    %PURELIFI.DeviceDesc% = purelifi.ndi, USB\VID_221A&PID_0100



    [purelifi.ndi.NTamd64]
    Include=netvwifibus.inf
    Needs=VWiFiBus.CopyFiles
    Characteristics = 0x84
    BusType = 15
    AddReg = purelifi.reg
    DelReg = purelifi.DelReg
    CopyFiles = purelifi.CopyFiles
    *IfType = 71 ; IF_TYPE_IEEE80211
    *MediaType = 16 ; NdisMediumNative802_11
    *PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11

    [purelifi.ndi.NTamd64.Services]
    Include=netvwifibus.inf
    Needs=VWiFiBus.CopyFiles
    AddService = purelifi_lifix, 2, purelifi.Service, purelifi.EventLog

    [purelifi.ndi.NTamd64.HW]
    Include=netvwifibus.inf
    Needs=VWiFiBus.PnPFilterRegistration
    AddReg = purelifi_os61.vwifi.reg


    [purelifi.reg]
    HKR, Ndi, Service, 0, "purelifi_lifix"
    HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
    HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet,vwifi"
    HKR, Ndi\params\*ReceiveBuffers, ParamDesc, 0, "%ReceiveBuffers%"
    HKR, Ndi\params\*ReceiveBuffers, default, 0, "256"
    HKR, Ndi\params\*ReceiveBuffers, min, 0, "1"
    HKR, Ndi\params\*ReceiveBuffers, max, 0, "00000512"
    HKR, Ndi\params\*ReceiveBuffers, step, 0, "1"
    HKR, Ndi\params\*ReceiveBuffers, Base, 0, "10"
    HKR, Ndi\params\*ReceiveBuffers, type, 0, "int"
    HKR, Ndi\params\*TransmitBuffers, ParamDesc, 0, "%TransmitBuffers%"
    HKR, Ndi\params\*TransmitBuffers, default, 0, "256"
    HKR, Ndi\params\*TransmitBuffers, min, 0, "1"
    HKR, Ndi\params\*TransmitBuffers, max, 0, "00000512"
    HKR, Ndi\params\*TransmitBuffers, step, 0, "1"
    HKR, Ndi\params\*TransmitBuffers, Base, 0, "10"
    HKR, Ndi\params\*TransmitBuffers, type, 0, "int"
    HKR, Ndi\params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
    HKR, Ndi\params\NetworkAddress, default, 0, ""
    HKR, Ndi\params\NetworkAddress, LimitText, 0, "12"
    HKR, Ndi\params\NetworkAddress, UpperCase, 0, "1"
    HKR, Ndi\params\NetworkAddress, optional, 0, "1"
    HKR, Ndi\params\NetworkAddress, type, 0, "edit"
    HKR, Ndi\params\shortPreamble, ParamDesc, 0, %shortPreamble%
    HKR, Ndi\params\shortPreamble, Base, 0, "10"
    HKR, Ndi\params\shortPreamble, default, 0, "1"
    HKR, Ndi\params\shortPreamble, type, 0, "enum"
    HKR, Ndi\params\shortPreamble\enum, "1", 0, %shortPreambleEnable%
    HKR, Ndi\params\shortPreamble\enum, "0", 0, %shortPreambleDisable%
    HKR, Ndi\params\scanTimeValid, ParamDesc, 0, %scanTimeValid%
    HKR, Ndi\params\scanTimeValid, default, 0, "60"
    HKR, Ndi\params\scanTimeValid, min, 0, "20"
    HKR, Ndi\params\scanTimeValid, max, 0, "120"
    HKR, Ndi\params\scanTimeValid, step, 0, "5"
    HKR, Ndi\params\scanTimeValid, base, 0, "10"
    HKR, Ndi\params\scanTimeValid, type, 0, "int"

    ;/* Enable these if VLAN or 802.1p is to be enabled */
    ;HKR, Ndi\Params\*PriorityVLANTag, ParamDesc, , %PriorityVLAN%
    ;HKR, Ndi\Params\*PriorityVLANTag, default, , "3"
    ;HKR, Ndi\Params\*PriorityVLANTag, type, , "enum"
    ;HKR, Ndi\Params\*PriorityVLANTag\enum, 0, , %PriorityVLANDisabled%
    ;HKR, Ndi\Params\*PriorityVLANTag\enum, 1, , %PriorityEnabled%
    ;HKR, Ndi\Params\*PriorityVLANTag\enum, 2, , %VLANEnabled%
    ;HKR, Ndi\Params\*PriorityVLANTag\enum, 3, , %PriorityVLANEnabled%

    HKR, , forceNormalSlotMrvl, 0x00002, "1"
    HKR, , htAdhocEnable, 0x00002, "0"

    [purelifi.DelReg]
    HKR,,NetBand
    HKR,,ssid
    HKR,,ssid2
    HKR,,ssid3
    HKR,,prefBssid1
    HKR,,prefBssid2
    HKR,,prefBssid3
    HKR,,prefBssid4
    HKR,Ndi\Params\tpc
    HKR,,tpc
    HKR,Ndi\Params\authTypeUseOnly
    HKR,,authTypeUseOnly
    HKR,,AdHocBand
    HKR,,AwakeTimePerf
    HKR,,beaconInterval
    HKR,,bkScanEnable
    HKR,,bssType
    HKR,,ccode
    HKR,,clist
    HKR,,defaultKey
    HKR,,EncryptionAlg
    HKR,,FragThreshold
    HKR,,HwTxRetries
    HKR,,privacyInvoked
    HKR,,QoS
    HKR,,rateCtrlEnable
    HKR,,RTSThreshold
    HKR,,scanType
    HKR,,SwTxRetryScale
    HKR,,SmeEnable
    HKR,,aifs
    HKR,,cwmin
    HKR,Ndi\params,MapRegisters,0x2000
    HKR,,MapRegisters
    HKR,Ndi\params,radioEnable,0x2000
    HKR,Ndi\params,sleepMode,0x2000
    HKR,,sleepMode
    HKR,,transmitRateMax
    HKR, Ndi\params\*TransmitBuffers
    HKR,,*TransmitBuffers
    HKR,,rxChainMask
    HKR,,txChainMaskLegacy
    HKR,,rxChainMaskLegacy
    HKR,,rxChainDetect
    HKR,,rxChainDetectRef
    HKR,,rxChainDetectThreshA
    HKR,,rxChainDetectThreshG
    HKR,,rxChainDetectDeltaA
    HKR,,rxChainDetectDeltaG
    HKR,,wpsButtonGpio
    HKR,,wpsBtnSupport



    [purelifi.Service]
    DisplayName = %purelifi.Service.DispName%
    ServiceType = 1 ; SERVICE_KERNEL_DRIVER
    StartType = 3 ;SERVICE_DEMAND_START
    ErrorControl = 1 ;SERVICE_ERROR_NORMAL
    ServiceBinary = %12%\usbztex.sys
    LoadOrderGroup = NDIS

    [purelifi.EventLog]
    AddReg = purelifi.AddEventLog.reg

    [purelifi.AddEventLog.reg]
    HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
    HKR, , TypesSupported, 0x00010001, 7


    [purelifi.CopyFiles]
    usbztex.sys,,,2

    [SourceDisksNames]
    1 = %DiskDescription%,usbztex.sys,,

    [SourceDisksFiles]
    usbztex.sys = 1,,

    [DestinationDirs]
    purelifi.CopyFiles = 12
    DefaultDestDirs = 11

    ;-------------- WDF Coinstaller installation
    [DestinationDirs]
    CoInstaller_CopyFiles = 11

    [usbztex.Dev.NT.CoInstallers]
    AddReg=CoInstaller_AddReg
    CopyFiles=CoInstaller_CopyFiles

    [CoInstaller_CopyFiles]
    wdfcoinstaller01005.dll

    [SourceDisksFiles]
    wdfcoinstaller01005.dll=1 ; make sure the number matches with SourceDisksNames

    [CoInstaller_AddReg]
    HKR,,CoInstallers32,0x00010000, "wdfcoinstaller01005.dll,WdfCoInstaller"

    [usbztex.Dev.NT.Wdf]
    KmdfService = usbztex, usbztex_wdfsect

    [usbztex_wdfsect]
    KmdfLibraryVersion = 1.5

    ;; Adds the VWiFi PNP filter
    [purelifi_os61.vwifi.reg]
    HKR,,"UpperFilters",0x00010000,"vwifibus"

    [Strings]
    Msft = "Microsoft"
    PURELIFI = "PureLiFi"
    PURELIFI.DeviceDesc= "purelifi LiFix"
    purelifi.Service.DispName = "purelifi lifix"
    DiskDescription = "Driver Disk 1"
    TransmitBuffers = "Transmit Buffers"
    ReceiveBuffers = "Receive Buffers"
    NetworkAddress = "Network Address"
    scanTimeValid = "Scan Valid Interval"
    shortPreamble = "802.11b Preamble"
    shortPreambleEnable = "Long and Short"
    shortPreambleDisable = "Long only"
    rssiThrHigh = "RSSI Threshold"
    rssiThrHighNormal = "Normal"
    rssiThrHighMin = "Min"
    ;radioEnable = "Radio On/Off"
    ;radioEnableOn = "On"
    ;radioEnableOff = "Off"
    scanTime = "Roam Time (sec)"
    roamRssiA = "Roam Time Threshold (db)"
    WirelessMode = "Wireless Mode Selection"
    adhocchannel = "Adhoc channel Selection"
    bkScanEnable = "BackgroundScan On/Off"
    bkScanEnableOn = "On"
    bkScanEnableOff = "Off"
    radioEnable = "Radio On/Off"
    radioEnableOn = "On"
    radioEnableOff = "Off"
    roamRssi11A = "roamRssiA"
    roamRssi11B = "roamRssiB"
    roamRssi11BOnly = "roamRssiBOnly"
    roamRateA = "roamRateA"
    roamRateA6M = " 6Mbps"
    roamRateA9M = " 9Mbps"
    roamRateA12M = "12Mbps"
    roamRateA18M = "18Mbps"
    roamRateA24M = "24Mbps"
    roamRateA36M = "36Mbps"
    roamRateA48M = "48Mbps"
    roamRateA54M = "54Mbps"
    roamRateBOnly = "roamRateBOnly"
    roamRateBOnly1M = " 1Mbps"
    roamRateBOnly2M = " 2Mbps"
    roamRateBOnly5M = " 5Mbps"
    roamRateBOnly11M = "11Mbps"
    roamRateB = "roamRateB"
    roamRateB1M = " 1Mbps"
    roamRateB2M = " 2Mbps"
    roamRateB5M = " 5Mbps"
    roamRateB6M = " 6Mbps"
    roamRateB9M = " 9Mbps"
    roamRateB11M = "11Mbps"
    pcieAspm = "pcieAspm"
    pcieAspmOff = "L0s Off, L1 Off"
    pcieAspmL0sOn = "L0s On, L1 Off"
    pcieAspmL1On = "L0s Off, L1 On"
    pcieAspmL0sandL1On = "L0s On, L1 On"
    wModeSelect = "Wireless Mode"
    wModeSelect11bonly = "11b only"
    wModeSelect11nbg = "11n(2.4GHz) and g and b"
    wModeSelect11na = "11n(5GHz) and a"
    wModeSelect11abgn = "11abgn"
    wModeLegacy11a = "11a only"
    wModeLegacy11bonly = "11b only"
    wModeLegacy11bg = "11g and 11b"
    wModeLegacy11abg = "11abg"
    antennaSwitch = "AntennaSwitch"
    antennaSwitchAuto = "Auto"
    antennaSwitchA = "Antenna A"
    antennaSwitchB = "Antenna B"
    Auto = "Auto"
    5GOnly = "5Ghz Only"
    2GOnly = "2Ghz Only"
    11DModeSwitch = "11d Mode Switch"
    Enable = "Enable"
    Disable = "Disable"
    PowerSaveMode = "Power Save Mode"
    Off = "Off"
    Maximum = "Maximum"
    Normal = "Normal"
    802_11d = "802.11d"

    Thursday, July 2, 2015 5:00 PM
  • First off, you don't ship with Windows, so get rid of the LayoutFile directive. Second, the DelReg sections will never be called for a miniport, so they're just cluttering up your INF file. I don't see any obvious errors in the INF.

    You should turn on tracing to see what NDIS thinks is going on. Look here and check out the links on the page.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    • Marked as answer by kk_2112 Saturday, August 1, 2015 9:07 PM
    Thursday, July 2, 2015 7:03 PM
    Moderator
  • Thanks,

    your tips are really helpful.

    Now the situation is more complex as 2 out of 5 filters are failing to bind.

    The problem was that "FilterList" was not getting populated in the Ndi keys.

    I turned on tracing and saw that binding failing for Native wifi filter and WFP LWF drivers.

    It is suceeding for QoS scheduler, virtual PC filter driver and Virtual wifi filter driver.

    The Native wifi filter opens a registry key from NdisAdapters called "InterfaceGuid" and fails after that.

    These failing drivers return a code of c0000001 and c000000d.

    Is it possible that registry is in a mess? How can i clean the registry?

    I can now see the virtual miniport wifi adapter as up in the adapters;so now i have 2 adapters for one physical NIC, so i think virtual wifi is up.


    Thursday, July 2, 2015 8:56 PM
  • Despite Microsoft's claims to the contrary, the registry can get in an inconsistent state. You should be able to delete the HKLM\System\CCS\Control\Class\<Class GUID>\<Instance> tree from within RegEdit, and then re-install.

    It appears that some required value isn't being set properly in the registry. I'd go back and review the docs and ensure that you're putting all the correct values in the registry.

    I'd also turn on tracing for Microsoft-Windows-QoS-Pacer and hopefully it will complain about what is missing.

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Thursday, July 2, 2015 9:47 PM
    Moderator
  • here is the failure log of attempt to bind to nwifi driver:

    3]0004.0100::07/02/2015-16:36:01.890 [mp]==>ndisAttachFilterToMiniport: FilterDriver FFFFFA8011B20010, Miniport FFFFFA800CAA51A0, Native WiFi Filter Driver

    [3]0004.0100::07/02/2015-16:36:01.890 [mp]==>ndisCreateFilterAdapterRegistry, FilterServiceName FFFFFA8011B20098 Miniport FFFFFA800CAA51A0

    [3]0004.0100::07/02/2015-16:36:01.890 [mp]<==ndisCreateFilterAdapterRegistry, FilterServiceName FFFFFA8011B20098 Miniport FFFFFA800CAA51A0 Status 0

    [3]0004.0100::07/02/2015-16:36:01.890 [mp]==>ndisCloseMiniportBindingsForPause, Miniport FFFFFA800CAA51A0

    [3]0004.0100::07/02/2015-16:36:01.890 [mp]<==ndisCloseMiniportBindingsForPause, Miniport FFFFFA800CAA51A0

    [3]0004.0100::07/02/2015-16:36:01.890 [mp]==>ndisPauseFilterStack: Filter 0000000000000000

    [3]0004.0100::07/02/2015-16:36:01.890 [mp]<==ndisPauseFilterStack: Filter 0000000000000000

    [3]0004.0100::07/02/2015-16:36:01.890 [mp]==>ndisPauseMiniport: Miniport FFFFFA800CAA51A0

    [1]0004.0100::07/02/2015-16:36:01.890 [mp]Miniport Pause: Reason NDIS_PAUSE_ATTACH_FILTER, Miniport FFFFFA800CAA51A0, purelifi LiFix
    [3]0004.0100::07/02/2015-16:36:01.907 [mp]==>NdisMPauseComplete: Miniport FFFFFA800CAA51A0

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==NdisMPauseComplete: Miniport FFFFFA800CAA51A0

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==ndisPauseMiniport: Miniport FFFFFA800CAA51A0

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]==>ndisQueueFilterOnDriver: Filter FFFFFA80104EF010, FilterDriver FFFFFA8011B20010

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==ndisQueueFilterOnDriver: Filter FFFFFA80104EF010, FilterDriver FFFFFA8011B20010, rc 1

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]==>NdisOpenConfigurationEx: ConfigObject FFFFF880037A0820

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]==>ndisAllocateConfigurationString: ServiceName FFFFFA8011B20098, AdapterInstanceName FFFFF880037A07B0 AdapterStr FFFFF88001937638

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==ndisAllocateConfigurationString: ServiceName FFFFFA8011B20098, AdapterInstanceName FFFFF880037A07B0 AdapterStr FFFFF88001937638

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]==>NdisOpenProtocolConfiguration: nativewifip\Parameters\NdisAdapters\{76884e3b-9bd6-41fe-97b5-4972c30d3e4a}

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==NdisOpenProtocolConfiguration

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==NdisOpenConfigurationEx: ConfigObject FFFFF880037A0820, Status 0

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]==>NdisReadConfiguration: Keyword: InterfaceGuid

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==NdisReadConfiguration

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]==>NdisCloseConfiguration: ConfigurationHandle FFFFFA800CBCD440

    [3]0004.0100::07/02/2015-16:36:01.907 [mp]<==NdisCloseConfiguration: ConfigurationHandle FFFFFA800CBCD440


    [2]0004.0100::07/02/2015-16:36:01.907 [mp]Filter Attach: Miniport FFFFFA800CAA51A0, Filter FFFFFA80104EF010, Native WiFi Filter Driver v6.20, purelifi LiFix, Status c0000001

    Friday, July 3, 2015 8:33 AM