none
How to Test NDIS virtual miniport driver in HCK RRS feed

  • Question

  • Hi,

    We have developed a Virtual Miniport and we wanted to get it certified by Microsoft.

    I have done all the installations required for HCK testing as mentioned in https://msdn.microsoft.com/en-us/library/windows/hardware/jj125146%28v=vs.85%29.aspx.

    I have tested the virtual miniport driver (Although the tests that got selected were for the Physical Miniport driver) in the HCK Studio and all the 1c_xxx tests run perfectly well. But all the 2c_xxx tests and 2 machine tests are failing. The log file shows that the Test card is not connected to the support card.Since out Target is a virtual miniport driver, I cannot connect it to a support card.

    Here is a portion log file that I got for the test 2c_mini6sendrecvreply:

    ------------------------------------------------------------------------------------------------------------------------------

    <Error File="" Line="0" ErrCode="0x15b38" ErrType="NT_STATUS" ErrorText="Error 0x00015b38" UserText="Test card did not receive any packets sent from the Support card" CA="72067645" LA="72077794">
        <rti id="3500763211" />
        <ctx id="1249532295" />
      </Error>
      <Error File="" Line="0" ErrCode="0x15b38" ErrType="NT_STATUS" ErrorText="Error 0x00015b38" UserText="Test card did not send any reply net buffer lists" CA="72083208" LA="72083665">
        <rti id="3500763211" />
        <ctx id="1249532295" />
      </Error>
      <Error File="" Line="0" ErrCode="0x15b38" ErrType="NT_STATUS" ErrorText="Error 0x00015b38" UserText="Support card did not receive any replies sent from the Test card" CA="72087507" LA="72087953">
        <rti id="3500763211" />
        <ctx id="1249532295" />
      </Error>
      <Error File="" Line="0" ErrCode="0x15b38" ErrType="NT_STATUS" ErrorText="Error 0x00015b38" UserText="Support card did not receive any packets sent from the Test card" CA="79737590" LA="79738129">
        <rti id="3500763211" />
        <ctx id="1249532295" />
      </Error>
      <Error File="" Line="0" ErrCode="0x15b38" ErrType="NT_STATUS" ErrorText="Error 0x00015b38" UserText="Support card did not send any reply net buffer lists" CA="79740765" LA="79741213">
        <rti id="3500763211" />
        <ctx id="1249532295" />
      </Error>
      <Error File="" Line="0" ErrCode="0x15b38" ErrType="NT_STATUS" ErrorText="Error 0x00015b38" UserText="Test card did not receive any replies sent from the Support card" CA="79743739" LA="79744177">
        <rti id="3500763211" />
        <ctx id="1249532295" />
      </Error>
      <EndTest Title="Starting Test-&gt;Supp-&gt;Test" TUID="" Result="Fail" Repro="2c_mini6sendrecvreply" CA="79746571" LA="79746882">
        <rti id="3500763211" />
        <ctx id="1249532295" />
      </EndTest>
      <CTX ID="2465496414" Current="Clear Events" Parent="2c_mini6sendrecvreply" />
      <StartTest Title="Clear Events" TUID="" CA="79747377" LA="79747641">
        <rti id="3500763211" />
        <ctx id="2465496414" />

    -------------------------------------------------------------------------------------------------------------------------------

    As seen in the log file, this test requires a connection between test card and the support card. Test and support cards have to be on different machines (Client and Support) in HCK Studio Environment. But Our Test card is a 'Virtual' card and it cannot be connected to another Support card on a different machine using a cable.

    That is why there are no packets exchange between test and support cards.


    However, if I run NDtest.bat on a Client machine with 2 instances of our Virtual miniport driver as Test and Support Cards, all the WHQL tests pass.

    My questions now are:

    1. Is there any specific way to test 'Virtual drivers' in HCK ( I dont see them in the windows_hck_product_martix ).  Is there any workaround or a special Configuration?.

    2. Is there any Errata ID that can be used in the above mentioned scenario?

    3. Can I submit the logs from the Client machine for certification? If so, How?

    Thanks,

    Usha

    Tuesday, April 5, 2016 9:33 AM

All replies

  • Hello Usha,

    You can certify your device as an endpoint device.

    See here

    Add in the Install section of the driver .inf file the string below:

    *NdisDeviceType    = 1   ; NDIS_DEVICE_TYPE_ENDPOINT 

    Reinstall the driver and make a new project in WHLK.

    In your inf file it should be like:



    ;******************************************************************************
    ; Install Sections
    ;------------------------------------------------------------------------------
    [_Install.ntamd64]
    Characteristics = 0x84   
    BusType         = 15 
    DriverVer       = 
    *IfType            = 0x6 ; IF_TYPE_ETHERNET_CSMACD
    *MediaType         = 0x0 ; NdisMedium802_3
    *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3
    *NdisDeviceType    = 1   ; NDIS_DEVICE_TYPE_ENDPOINT 

    CopyFiles=_CopyFiles_sys
    AddReg=_Common_AddReg

    ;******************************************************************************

    Regards

    CM

    Wednesday, April 20, 2016 12:01 PM