2

我有这个无法编译的驱动程序。我一直在网上搜索错误,并没有提出任何解决方案。有什么想法吗?

#include <wdm.h>

VOID Unload(IN PDRIVER_OBJECT pDriverObject)
{
    DbgPrint("Received signal to unload the driver");
    return;
}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING regPath)
{
    DbgPrint("Driver has been loaded");
    (*pDriverObject).DriverUnload = Unload;
    return(STATUS_SUCCESS);
}

以下错误:

1>------ Build started: Project: KMDF Test, Configuration: Win7 Debug Win32 ------
1>  Stamping Win7Debug\KMDFTest.inf [Version] section with DriverVer=12/04/2012,10.12.25.726
1>  cl wpp
1>wpp : error : (WppCreateFile)Cannot open file trace.h, error 2
2>------ Build started: Project: KMDF Test Package, Configuration: Win7 Debug Win32 ------
2>C:\Program Files\Windows Kits\8.0\build\WindowsDriver8.0.common.targets(1347,5): error MSB3030: Could not copy the file "C:\Users\Administrator\documents\visual studio 2012\Projects\KMDF Test\Win7Debug\KMDFTest.sys" because it was not found.
========== Build: 0 succeeded, 2 failed, 0 up-to-date, 0 skipped ==========
4

5 回答 5

13

这是我解决此问题的方法:

在解决方案资源管理器窗口中,右键单击您的驱动程序项目并选择属性。在 Wpp Tracing > All Options 中,将 Run Wpp tracking 设置为 No。单击 OK。

萨米人

于 2013-03-03T08:11:02.773 回答
3

你最终解决了这个问题吗?您的项目很可能根本无法找到您的 trace.h文件。如果您使用的是 Visual Studio,请检查以下项目设置:

配置属性 -> Wpp 跟踪 -> 文件选项 -> 扫描配置数据

确保文件的路径正确。如果它只是说trace.h,那么请确保 trace.h 与项目文件位于同一文件夹中。

如果您不需要进行跟踪,那么 Sami 的答案也一样好。

于 2013-07-16T18:27:50.610 回答
0

也许您没有选择正确的驱动程序模板?

当我同时使用 KDM 和 KDMF 模板来创建驱动程序项目时,我遇到了和你一样的错误......所以......

您可以创建一个新项目,并选择“Empty WDM Driver”模板,然后一切都会好起来的。

如果您真的想使用 WPP,以下链接可能会有所帮助。 支持 WPP 跟踪(Windows 驱动程序)

于 2012-12-29T12:07:01.810 回答
0

解决问题的步骤:

  1. 搜索并获取trace.h并放入项目文件的文件夹或提供路径。
  2. 将 KmdfSmallEvtDeviceAdd 替换为 KmdfHelloWorldEvtDeviceAdd
于 2014-10-12T04:48:11.270 回答
-1

在记事本中打开 *.vcxproj 文件并注释以下行。

<!--      <WppEnabled>true</WppEnabled>
      <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)'  == ''">trace.h</WppScanConfigurationData>
      <WppKernelMode>true</WppKernelMode> -->

然后我确实建立了。它工作..希望它可以帮助你。

于 2015-03-23T04:06:58.787 回答