FilterLoad() returns 0x8007007f when driver compiled on 10.0.22621.0

I run into strange problem and like to hear expert opinion…

I have old driver which was compiled on WDK 10.0.17763.0 and works fine.
I revised the solution and currently try to compile it on one of the nearest 10.0.22621.0.
Driver build is OK.
But it is not working due FilterLoad() returns: FilterLoad returned 0x8007007f: The specified procedure could not be found.

I went through Inet and found description of the same problem on Stackoverflow: https://stackoverflow.com/questions/77310871/windows-minifilter-driver-error-faced-fltmc-load-failed-with-error-0x8007007/78082877#78082877

which was not answered.

Probably OSR experts may comment the rute of this problem and advice something (except returning on the old WDK)?

Regards & Thanks,
MG.

Did you try running depends on your driver?

Are you trying to load this on a older system? ExAllocatePool2 was introduced in a recent Windows 10 release, but is not available on older Win 10 systems.

My final solution - I setup WDK 10.0.17763.0 and driver (+ 2 others) start working.
Because VS2022 agrees to support by default only the nearest WDK, I created special .props and activated IgnoreStandardIncludePath and IgnoreImportLibrary.

But I see the other future problem. :slight_smile:
Using VS2022 is tool to support ARM.
Does somebody know, WDK 10.0.17763.0 is applicable for ARM?

For guys who probably would have the same problem, I public my Wdk10_0_17763.props file. Simply add it in the end of your .vcxproj and use appropriate macroses for Includes and Libs:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Label="UserMacros">
    <WDK10_0_17763_RELPATH>$(WindowsSdkDir)</WDK10_0_17763_RELPATH>
    <WDK10_0_17763_INC_PATH>$(WDK10_0_17763_RELPATH)Include\$(TargetPlatformVersion_RS5)\</WDK10_0_17763_INC_PATH>
    <WDK10_0_17763_LIB_PATH>$(WDK10_0_17763_RELPATH)Lib\$(TargetPlatformVersion_RS5)\</WDK10_0_17763_LIB_PATH>
    <WDK10_0_17763_INC>$(WDK10_0_17763_INC_PATH)km;$(WDK10_0_17763_INC_PATH)km\crt;$(WDK10_0_17763_INC_PATH)shared;$(WDK10_0_17763_INC_PATH)um;</WDK10_0_17763_INC>
    <WDK10_0_17763_LIB>$(WDK10_0_17763_LIB_PATH)km\$(Platform);$(WDK10_0_17763_LIB_PATH)um\$(Platform)</WDK10_0_17763_LIB>
  </PropertyGroup>
</Project>

We use wdk 22621 without this issue, so I think finding what export is
linked in 22621 only is a better option than this - soon you will have to
move to 22621.
Or multiple binaries :frowning:

Multiple binaries is current state. :slight_smile:
But! Firm wants support ARM. Means all projects must be recompiled under VS2022.

And I have currently 6 old drivers, 3 came from VS2017 and I arrange them by using VS2022 + WDK17763.
But 3 else came from 10.0.14393.0 + KMDF 1.19 yet.
And currently 1st of them hangs up OS even after I built it using 17763. :frowning:

The idea is up it under debugger is not OK, because driver is built on old version works perfect.
Probably I will need to setup WDK 10.0.14393.0 too…

Hangs or fails to load?
Externals are still your best bet for the FilterLoad, I mean it even says
so :slight_smile:

What is the os version where this driver is failing to load?

Dejan,
OS failed down in Blue Screen on net start.

Mark,
I test on Windows 10 - mimum version which must be support for this Project.

And uff… driver is loaded finally! :smile:
The last problem was, because this old driver was built via CMake, I created .vcxproj from template and picked up WDM instead of KMDF. All libraries I added, no defaults. But this option was not right: WDM instead of_ KMDF_.

Unfortunately DriverType is inside .vcxproj and it’s not seen under VS!?! :neutral:

I really don’t know how it influences on build, but I found this problem only after opened MEMORY.DMP and understood that Driver failed on WdfDriverCreate().

Probably, somebody know how _DriverType _ influence on build?

I used my own libraries list, no defaults and thank that it’s souficient. Currently I know that it’s not right…

If “OS failed in blue screen on net start” how did we get to “FilterLoad
returns…”?

Dejan,
Call stack included WdfDriverCreate() is called from DriverEntry() and failed on following page fault.
It hinted that driver is called from not appropriate environment.
After that I went into .vcxproj and paid attention on DriverType, checked and idea was right…

But I repeat my question:
Probably, somebody know how _DriverType _ influence on build?
:slight_smile:

So what happened to this: “But it is not working due FilterLoad() returns: FilterLoad returned 0x8007007f: The specified procedure could not be found.”?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.