gpt4 book ai didi

c - 在不修改 Windows header 的情况下无法使用 VC2015 构建 WDK 10 示例

转载 作者:行者123 更新时间:2023-12-01 19:29:52 25 4
gpt4 key购买 nike

我正在运行全新安装的 Windows。除了VC和SDK之外没有安装其他程序

  • 包含目录

    C:\WinSDK10\Include\10.0.10586.0\shared;
    C:\WinSDK10\Include\10.0.10586.0\km;
    C:\WinSDK10\Include\10.0.10586.0\km\crt;
    C:\WinSDK10\Include\wdf\kmdf\1.11

  • 目标操作系统版本

    Windows 8.1

  • 目标平台

    桌面

  • 运行 Wpp 跟踪

  • 启用最小重建

<小时/> 来源:

#include <ntddk.h>
#include <wdf.h>
DRIVER_INITIALIZE DriverEntry;
EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd;

NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath)
{
NTSTATUS status;
WDF_DRIVER_CONFIG config;

KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: DriverEntry\n"));
WDF_DRIVER_CONFIG_INIT(&config, KmdfHelloWorldEvtDeviceAdd);
status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, WDF_NO_HANDLE);
return status;
}

NTSTATUS KmdfHelloWorldEvtDeviceAdd(_In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit)
{
NTSTATUS status;
WDFDEVICE hDevice;
UNREFERENCED_PARAMETER(Driver);

KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n"));
status = WdfDeviceCreate(&DeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &hDevice);
return status;
}
<小时/>
Severity    Code    Description Project File    Line    Suppression State
Error C2146 syntax error: missing ')' before identifier 'InformationClass' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2146 syntax error: missing ')' before identifier 'InformationClass' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2061 syntax error: identifier 'InformationClass' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2061 syntax error: identifier 'InformationClass' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2059 syntax error: ';' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2059 syntax error: ';' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2059 syntax error: ',' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2059 syntax error: ',' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2059 syntax error: ')' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31792
Error C2059 syntax error: ')' Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31792
Error C2081 'EVENT_INFO_CLASS': name in formal parameter list illegal Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
Error C2081 'EVENT_INFO_CLASS': name in formal parameter list illegal Test1 C:\WinSDK10\Include\10.0.10586.0\km\wdm.h 31789
<小时/>

黑客:如果我编辑 wdm.h 并删除 #define _ETW_KM_,驱动程序就会成功构建

wdm.h

#ifndef _ETW_KM_
#define _ETW_KM_
#endif

#include <evntprov.h>


//
// Optional callback function that users provide.
//

typedef
_IRQL_requires_max_(PASSIVE_LEVEL)
_IRQL_requires_same_
VOID
NTAPI
ETWENABLECALLBACK (
_In_ LPCGUID SourceId,
_In_ ULONG ControlCode,
_In_ UCHAR Level,
_In_ ULONGLONG MatchAnyKeyword,
_In_ ULONGLONG MatchAllKeyword,
_In_opt_ PEVENT_FILTER_DESCRIPTOR FilterData,
_Inout_opt_ PVOID CallbackContext
);

typedef ETWENABLECALLBACK *PETWENABLECALLBACK;
<小时/>

抱歉这篇文章太长了!!
我很确定我在执行此操作时做错了什么 MSDN Driver Example Link但我不知道是什么。

感谢您的宝贵时间,

克里斯

最佳答案

在下一版本的 WDK (10.0.14393) 中遇到类似的问题。看起来这两种情况的问题都是Win SDK 和 WDK 的版本不同。通过安装对应版本的Win SDK解决。更多详情请参阅this answer .

关于c - 在不修改 Windows header 的情况下无法使用 VC2015 构建 WDK 10 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35603506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com