none
HCK WFPLogo test FwpmProviders.MaintainIdentifying fails frequently (but not always) RRS feed

  • Question

  • I am trying to understand exactly what WFPLogo is looking for to pass the FwpmProviders.MaintainIdentifying requirement.

    Using netsh wfp show state I can clearly see that my provider is indeed registered.

    And yet WFPLogo repeatedly fails with "0 Acceptable Providers found."

    Does that mean that it failed to find my provider or that my provider is "unacceptable" (whatever that means)?

    How can one tell?    What constitutes acceptable?

    thanks.


    Dave Cattley

    Wednesday, January 15, 2014 10:27 PM

Answers

  • This test uses what you put in the WFPLogo.Info file.

    The provider.displayData.name must equal the string value of the WFPLogo.Info's CompanyName.

    The provider.displayData.description must contain the string value of the WFPLogo.Info's ProductName.

    Looking at the sample info file provided for running against Windows Firewall, you'll see the following entries:

       CompanyName = "Microsoft Corporation";
       ProductName = "Windows Firewall";

    This will find the following providers:

      <item>
       <providerKey>{4b153735-1049-4480-aab4-d1b9bdc03710}</providerKey>
       <displayData>
        <name>Microsoft Corporation</name>
        <description>Microsoft Windows Firewall Provider</description>
       </displayData>
       <flags numItems="1">
        <item>FWPM_PROVIDER_FLAG_PERSISTENT</item>
       </flags>
       <providerData/>
       <serviceName>mpssvc</serviceName>
      </item>

      <item>
       <providerKey>{decc16ca-3f33-4346-be1e-8fb4ae0f3d62}</providerKey>
       <displayData>
        <name>Microsoft Corporation</name>
        <description>Microsoft Windows Firewall Provider</description>
       </displayData>
       <flags numItems="1">
        <item>FWPM_PROVIDER_FLAG_PERSISTENT</item>
       </flags>
       <providerData/>
       <serviceName>mpssvc</serviceName>
      </item>

      <item>
       <providerKey>{1bebc969-61a5-4732-a177-847a0817862a}</providerKey>
       <displayData>
        <name>Microsoft Corporation</name>
        <description>Microsoft Windows Firewall IPsec Provider</description>
       </displayData>
       <flags numItems="1">
        <item>FWPM_PROVIDER_FLAG_PERSISTENT</item>
       </flags>
       <providerData/>
       <serviceName>MPSSVC</serviceName>
      </item>

    Filter.Driver.WindowsFilteringPlatform.ArchitecturalDesign.FwpmProviders.MaintainIdentifying
    
    
    WFP-based products must create and maintain at least 1 identifying FWPM_PROVIDER provider object
    
     
    
    
    Target Feature
     
    Filter.Driver.WindowsFilteringPlatform
     
    
    Applies to
     
    Windows 7 Client x86, x64
    
    Windows 8 Client x86, x64
    
    Windows 8.1 Client x86, x64
     
    
    Description
    
    An "identifying provider object" must reference the name & product of the company as shown in the example below.  FWPM_PROVIDER01. All vendors must create and maintain at least 1 provider.2. The provider.displayData.Name must contain the name of the company3. The provider.displayData.Description must contain the name of the productAll objects created & "owned" by the vendor must reference only their provider(s)const PWSTR pCompanyName = L"Microsoft Corporation";const PWSTR pProductName = L"Windows Firewall";FWPM_PROVIDER0 myProvider; myProvider.displayData.name = pCompanyName;myProvider.displayData.description = pProductName;Design Notes:The definition of the FWPM_PROVIDER object can be found in the following URL: http://go.microsoft.com/fwlink/?LinkID=116844&clcid=0x409 
    
    Additional Information
    

    Hope this helps,


    Dusty Harper [MSFT]
    Microsoft Corporation
    ------------------------------------------------------------
    This posting is provided "AS IS", with NO warranties and confers NO rights
    ------------------------------------------------------------

    Wednesday, January 15, 2014 10:41 PM
    Moderator

All replies

  • This test uses what you put in the WFPLogo.Info file.

    The provider.displayData.name must equal the string value of the WFPLogo.Info's CompanyName.

    The provider.displayData.description must contain the string value of the WFPLogo.Info's ProductName.

    Looking at the sample info file provided for running against Windows Firewall, you'll see the following entries:

       CompanyName = "Microsoft Corporation";
       ProductName = "Windows Firewall";

    This will find the following providers:

      <item>
       <providerKey>{4b153735-1049-4480-aab4-d1b9bdc03710}</providerKey>
       <displayData>
        <name>Microsoft Corporation</name>
        <description>Microsoft Windows Firewall Provider</description>
       </displayData>
       <flags numItems="1">
        <item>FWPM_PROVIDER_FLAG_PERSISTENT</item>
       </flags>
       <providerData/>
       <serviceName>mpssvc</serviceName>
      </item>

      <item>
       <providerKey>{decc16ca-3f33-4346-be1e-8fb4ae0f3d62}</providerKey>
       <displayData>
        <name>Microsoft Corporation</name>
        <description>Microsoft Windows Firewall Provider</description>
       </displayData>
       <flags numItems="1">
        <item>FWPM_PROVIDER_FLAG_PERSISTENT</item>
       </flags>
       <providerData/>
       <serviceName>mpssvc</serviceName>
      </item>

      <item>
       <providerKey>{1bebc969-61a5-4732-a177-847a0817862a}</providerKey>
       <displayData>
        <name>Microsoft Corporation</name>
        <description>Microsoft Windows Firewall IPsec Provider</description>
       </displayData>
       <flags numItems="1">
        <item>FWPM_PROVIDER_FLAG_PERSISTENT</item>
       </flags>
       <providerData/>
       <serviceName>MPSSVC</serviceName>
      </item>

    Filter.Driver.WindowsFilteringPlatform.ArchitecturalDesign.FwpmProviders.MaintainIdentifying
    
    
    WFP-based products must create and maintain at least 1 identifying FWPM_PROVIDER provider object
    
     
    
    
    Target Feature
     
    Filter.Driver.WindowsFilteringPlatform
     
    
    Applies to
     
    Windows 7 Client x86, x64
    
    Windows 8 Client x86, x64
    
    Windows 8.1 Client x86, x64
     
    
    Description
    
    An "identifying provider object" must reference the name & product of the company as shown in the example below.  FWPM_PROVIDER01. All vendors must create and maintain at least 1 provider.2. The provider.displayData.Name must contain the name of the company3. The provider.displayData.Description must contain the name of the productAll objects created & "owned" by the vendor must reference only their provider(s)const PWSTR pCompanyName = L"Microsoft Corporation";const PWSTR pProductName = L"Windows Firewall";FWPM_PROVIDER0 myProvider; myProvider.displayData.name = pCompanyName;myProvider.displayData.description = pProductName;Design Notes:The definition of the FWPM_PROVIDER object can be found in the following URL: http://go.microsoft.com/fwlink/?LinkID=116844&clcid=0x409 
    
    Additional Information
    

    Hope this helps,


    Dusty Harper [MSFT]
    Microsoft Corporation
    ------------------------------------------------------------
    This posting is provided "AS IS", with NO warranties and confers NO rights
    ------------------------------------------------------------

    Wednesday, January 15, 2014 10:41 PM
    Moderator
  • Yes.  Immensely.  I deserve an RTFM :)


    Dave Cattley

    Wednesday, January 15, 2014 11:40 PM
  • Hi Dusty,

    I am trying to pass the WHCK logo tests for my driver and I have the same problem with "WindowsFilteringPlatform_Tests". 

    The logo test results display the following output:

    [Has an identifying Provider: TRUE]
    [Associates Provider with all objects: TRUE]

    The test result is:
    FwpmProviders.MaintainIdentifying: 0 Acceptable Providers found.

    I did make sure that the CompanyName and ProductName strings from the WFPLogo.info matches the 

    provider.displaydata.name and provider.displaydata.description. However, the tests still fails with the above error.

    I am out of ideas. Any pointers are much appreciated.

    Thanks,

    Sorin


    • Edited by winsor.wfp Tuesday, December 9, 2014 1:52 PM
    Tuesday, December 9, 2014 1:33 PM
  • I have figured the problem. The code was correct, but was not being executed. So the solution proposed here works. Thanks!
    Wednesday, December 31, 2014 10:37 AM
  • Hi..I am also getting this issue. What do you mean by code was not getting executed. Was this code not running on driver load. What changes did you do to make it execute.
    Tuesday, July 28, 2015 8:55 PM