DDK / WDM development problem ... driver does not load on x64 windows platform

I am new to DDK / WDM driver development. I have a task related to porting a virtual device driver from x86 to x64 (intel). I got the source code, modified it a bit, and compiled it using DDK (build environment). But when I tried to download it on ia64 Windows7, it did not want to boot. Then I tried some simple examples of device drivers from

- http://www.codeproject.com/KB/system/driverdev.aspx (I put '-' to post the hyperlink) and from other links, but still the same problem.

I heard on the forum that some of the libraries that you use for communication are incompatible with new machines and suggested linking to other similar libraries ... but still did not work.

When I create, I use the "-cefw" command line options as suggested.

I do not have a * .inf asociated file, but I copy it to system32 / drivers and I use WinObj to see if the next restart will be loaded into memory.

I also tried this program ( http://www.codeproject.com/KB/system/tdriver.aspx ) to load the driver into memory, but still did not work for me.

Please help me ... I am stuck on this and my deadline has already passed. I feel like I'm spending nuts here trying to figure out what I'm doing wrong.

+4
source share
3 answers

So, we summarize everything:

  • You need to build a kernel architecture (x64 for Intel / AMD processors).
  • You MUST sign your driver. You should do this even in test mode with a self-signed certificate. There is no alternative.
  • You must use the INF file to install. If the driver is not pnp, you do not need the .inf file, but it is very unlikely that the driver is not pnp. In this case, you need to manually create a related service for the driver in the service control manager using sc.exe or programmatically using the SCM API. If the driver is pnp (most likely), you must install it through the .inf file (with devcon.exe or another way). In addition, installing it does not match the download. For this, the appropriate equipment must be present or you must list it in the software (for example, with devcon.exe).
+1
source

I did not write a driver, but based on what I hear from colleagues: have your digitaly driver been signed? If not, find information on downloading unsigned drivers on 64-bit systems.

0
source

Two things:

  • You mention both x64 (also called x86-64, AMD64, or EMT64) and IA64 (Itanium). You understand that these are two completely different architectures, right? Do you have an Itanium system? If not, you should not compile anything using the IA-64 build environment. It will not work on a standard PC (32 or 64).

  • For a 64-bit driver, the driver must be digitally signed for production use. You will need to obtain an Authenticode certificate from Verisign or similar. For testing purposes, you can bypass signature verification by pressing F8 at boot time. You can also sign up with a test certificate.

    http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx

0
source

Source: https://habr.com/ru/post/1304398/


All Articles