none
Value of NDIS minor version in LWF filter driver RRS feed

  • Question

  • Hi,

    I am having a problem in  the windows hardware certification test of an LWF filter driver, where the problem statement is as follows :-

    Validate NDIS stack minimum version is >= miniport NDIS version

    Querying IOCTL_NDIS_POWER_INFO

    Adapter::NdisIOControl

     - Device:             NDISTest 6.30 - CL - Default w/TCPIP

    - Ioctl:              0x170078

    - In Buffer Length:   0 - Out Buffer Length:  860

    ...done

    Miniport NDIS version: 6.30

    Miniport stack minimum NDIS version: 6.0

    88888 The miniport stack minimum NDIS major verion is less than the miniport NDIS version.

    Please ensure that all filters/protocols bound to the miniport are at least equivalent to the miniport's NDIS version.

    Validate NDIS stack minimum version is >= miniport NDIS version

    Querying IOCTL_NDIS_POWER_INFO

    Adapter::NdisIOControl

     - Device:             NDISTest 6.30 - CL - Default w/TCPIP

    - Ioctl:              0x170078

    - In Buffer Length:   0 - Out Buffer Length:  860

    ...done

    Miniport NDIS version: 6.30

    Miniport stack minimum NDIS version: 6.0

    88888 The miniport stack minimum NDIS major verion is less than the miniport NDIS version.

    Please ensure that all filters/protocols bound to the miniport are at least equivalent to the miniport's NDIS version.

    it is required that filters under test are NDIS 6.30 in Windows 8.

    I tried changing the parameter #define FILTER_MINOR_NDIS_VERSION 30  in filter.h header file but this does not update most of the parameters in registry of the filter driver. please provide a solution where to update the value of the  FILTER_MINOR_NDIS_VERSION so that it gets updated in registry.

    Thanks,

    Priyata


    priyata

    Wednesday, February 12, 2014 10:25 AM

Answers

  • Changing FILTER_MINOR_NDIS_VERSION is the right idea.  The registry values don't actually matter - I don't suggest looking at those.  If you have a kernel debugger, use "!ndiskd.filterdriver" to list all the filter drivers on the system.  Then run "!ndiskd.filterdriver" on each one to see what their version actually is.  You're looking for any driver whose version is less than 6.30 -- it might not necessarily be your own driver.

    kd> !ndiskd.filterdriver ffffcf8b1ddb4d50
    
    
    FILTER DRIVER
    
        Microsoft Load Balancing/Failover Provider
        Ndis handle        ffffcf8b1ddb4d50
        Driver context     NULL
        Ndis API version   v6.30
        Driver version     v1.0

    Also check the protocol drivers that are installed too.  Perform the same steps with "!ndiskd.protocol".  Again, you're looking for a protocol that is less than 6.30.

    Friday, February 14, 2014 6:49 AM

All replies

  • Changing FILTER_MINOR_NDIS_VERSION is the right idea.  The registry values don't actually matter - I don't suggest looking at those.  If you have a kernel debugger, use "!ndiskd.filterdriver" to list all the filter drivers on the system.  Then run "!ndiskd.filterdriver" on each one to see what their version actually is.  You're looking for any driver whose version is less than 6.30 -- it might not necessarily be your own driver.

    kd> !ndiskd.filterdriver ffffcf8b1ddb4d50
    
    
    FILTER DRIVER
    
        Microsoft Load Balancing/Failover Provider
        Ndis handle        ffffcf8b1ddb4d50
        Driver context     NULL
        Ndis API version   v6.30
        Driver version     v1.0

    Also check the protocol drivers that are installed too.  Perform the same steps with "!ndiskd.protocol".  Again, you're looking for a protocol that is less than 6.30.

    Friday, February 14, 2014 6:49 AM
  • Hi,

    Thanks for the reply. I really needed it. The system in which the testing is being done is windows 8 pro N. And while using local kernel debugger i am getting the following error

    Local kernel debugging requires Windows XP, Administrative 
    privileges, and is not supported by WOW64. 
    Only a single local kernel debugging session can run at a time. 
    Local kernel debugging is disabled by default in Windows Vista, you must run 'bcdedit -debug on' and reboot to enable it.”"

    i used the bcdedit command and rebooted the system in debugger enabled mode. Still facing this issue. Kindly help me in fixing this one so that i may proceed with the NDIS problem.

    Thanks,

    Priyata


    priyata

    Friday, February 14, 2014 7:30 AM
  • Hi,

    I got the ndis version of the filter driver. But i found out that its 6.0 which should be 6.30 ideally. Chnages in sources file are

    C_DEFINES=$(C_DEFINES) -DNDIS630=1

    but i think it is not getting updated. Please provide a solution if any.

    FILTER DRIVER

        TCPPEP for INMARSAT

        Ndis handle        848897a8
        Driver context     84a69c80
        Ndis API version   v6.0
        Driver version     v1.0
        Driver object      84a69c80
        Driver image       tcppep.sys

        Filter type        MODIFYING_FILTER
        Run type           MANDATORY_FILTER
        Class              scheduler
        References     


    priyata

    Thursday, February 27, 2014 7:49 AM
  • Question
    You cannot vote on your own post
    0

    Hi,

    I got the ndis version of the filter driver. But i found out that its 6.0 which should be 6.30 ideally. Chnages in sources file are

    C_DEFINES=$(C_DEFINES) -DNDIS630=1

    but i think it is not getting updated. Please provide a solution if any.

    FILTER DRIVER

        TCPPEP for INMARSAT

        Ndis handle        848897a8
        Driver context     84a69c80
        Ndis API version   v6.0
        Driver version     v1.0
        Driver object      84a69c80
        Driver image       tcppep.sys

        Filter type        MODIFYING_FILTER
        Run type           MANDATORY_FILTER
        Class              scheduler
        References     



    priyata

    Thursday, February 27, 2014 7:50 AM
  • Check what you're putting in NDIS_FILTER_DRIVER_CHARACTERISTICS.MinorNdisVersion when you call NdisFRegisterFilterDriver.
    Thursday, February 27, 2014 10:10 PM
  • Hi Jeffrey,

    C_DEFINES=$(C_DEFINES) -DNDIS630=1  is defined in sources(compiler) file which updates the value of NDIS_FILTER_MAJOR_VERSION as 6 and NDIS_FILTER_MINOR_VERSION as 30

    In filter.h the values of the macros

    #define FILTER_MAJOR_NDIS_VERSION NDIS_FILTER_MAJOR_VERSION // which is 6

    #define FILTER_MAJOR_NDIS_VERSION NDIS_FILTER_MAJOR_VERSION // which is 30

    and i suppose the same values goes in the structure of NDIS_FILTER_DRIVER_CHARACTERISTICS.

    But, after installing the driver into the system through services, the ethernet adapter vanishes away and there are almost no parameters present in registry edit of that particular filter driver.

    Please guide what is missing.


    priyata

    Friday, February 28, 2014 5:21 AM