Unable to link with the static build of nfapi.lib, the linker shows "unresolved external symbol" errors.
Define a symbol _NFAPI_STATIC_LIB in project configuration or insert the following string before including nfapi.h:
#define _NFAPI_STATIC_LIB 1
Unable to programmatically install the driver from 32-bit process on 64-bit Windows. The driver is always saved to windows\SysWOW64\drivers instead of windows\system32\drivers and can't start.
This is a feature of 64-bit Windows called virtualization.
It is applied to 32-bit applications. Windows redirects file system
and registry calls to different locations, used as an alternate view
of the standard folders and registry keys:
The following ways can be used to install the driver properly on x64:
- Call API function Wow64DisableWow64FsRedirection from 32-bit
installer before saving the driver to windows\system32\drivers:
It is possible to do this using System plug-in in NSIS, and using
direct API call in other installers.
- Use 64-bit installer on x64. For example Windows Installer (MSI)
allows to avoid all compatibility problems.
I found a bug in drivers.
The drivers support generating debug logs. Please use the following steps:
- Install a suitable version of the driver from
bin\driver\tdi\wpp, bin\driver\wfp\windows8\wpp, bin\driver\wfp\windows7\wpp. The folder also contains scripts and a
tracing utility tracelog.exe.
- Reboot the system.
- Stop your filtering application.
- Execute tracelog_start.bat
- Start your filtering application and reproduce the issue.
- Execute tracelog_stop.bat
The driver log will be saved to LogFile.Etl in the same folder with
scripts. Send it with a description of the issue to email@example.com. Also include your builds of the driver sys and pdb files if
you build the driver from sources.