Driver Entry Point Not Found (Code 39) WDK 10 RRS feed

  • Question

  • I am building a KMDF driver in Visual Studio 2015 using KMDF version 1.11. Once the driver is built and I attempt to install it on my test system (Windows 10 Enterprise 64 bit) the driver is installed but does not run and the error given within device manager is:

    Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39) 
    {Driver Entry Point Not Found} 
    The %hs device driver could not locate the entry point %hs in driver %hs

    My Windows 10 target is in Test Mode with driver signature verification disabled and the driver is test signed. The project I created was the default KMDF project in Visual Studio 2015 and the only change I made to the configuration was to set the KMDF version to 1.11. My build in visual studio produces the following files in x64\Release:

    KernelDriverTest.crt, KernelDriverTest.inf, KernelDriverTest.pdb, and KernelDriverTest.sys. To test the driver, I copy the files to my test target along with devcon.exe and WdfCoinstaller01011.dll. From my target system (as administrator) I run:

    devcon.exe install KernelDriverTest.inf Root\KernelDriverTest

    This shows the following output:

    Device node created.

    Install is complete when drivers are installed...

    Updating drivers for Root\KernelDriverTest from C:\Users\WDKRemoteUser\Desktop\Release\KernelDriverTest.inf.

    Drivers installed successfully.

    Despite this, I get the error previously mentioned about Driver Entry Point Not Found. This is literally driving me crazy. What is going on here?

    Tuesday, August 30, 2016 8:47 PM

All replies

  • KMDF version of driver projects created using VS 2015 is 1.15. Is there any reason you changed the version to 1.11?

    Wednesday, August 31, 2016 5:26 AM
  • When debugging install problems, a general rule is to enable SetupAPI logging, and check the log.  

    How did you change the KMDF version in your project?

    Don Burn Windows Driver Consulting Website:

    Wednesday, August 31, 2016 12:19 PM
  • Because I will be building drivers for Windows 7 and up and my understanding was that if you wanted to support Windows 7 and up you needed to use KMDF version 1.11.
    Wednesday, August 31, 2016 2:33 PM
  • Hi Don,

    I changed it within the project configuration in Visual Studio under Driver Settings. But as I'm typing this I think I figured out the problem. My development box is running Windows 10 1511 with Visual Studio 2015 Update 3. When I added WDK 10 the other day it was 14393 which is for the Anniversary update of Windows 10 (1607). I think building drivers with that version of the WDK on Windows 10 1511 was creating this problem.

    Wednesday, August 31, 2016 2:42 PM
  • After some more testing, I noticed that the default setting under Project Configuration -> Driver Settings -> Target OS Version is set to Windows 10 with Target Platform being Universal. When I leave Windows 10 as the default Target OS Version and build a 64 bit driver using the default KMDF project, the driver it produces cannot be installed on another Windows 10 test target. This test target was running Windows 10 Enterprise x64 Build 10586. The error I get is the same as the one from my first post about driver entry point not found. 

    I then decided to change Target OS Version to Windows 7 (seeing as how I want to support Windows 7 and up anyway) and set Target Platform to Desktop. After re-building the x64 driver using these settings, it now installs perfectly on my Windows 10 target. 

    • Proposed as answer by its_me_here Thursday, September 1, 2016 5:28 AM
    • Unproposed as answer by its_me_here Thursday, September 1, 2016 5:28 AM
    • Proposed as answer by its_me_here Thursday, September 1, 2016 5:28 AM
    Wednesday, August 31, 2016 4:38 PM
  • Had the same problem here, only in the x64 version of the driver (windows 10 x86 works fine) although i used the latest KMDF driver version (1.19), nevertheless, the only way i could make it work as it should is like you said change the target to older windows versions. So this must be some kind of VS2015 bug that still isn't fixed.
    Tuesday, January 10, 2017 5:43 PM