Я запускаю новую установку Windows. Никаких других программ, установленных кроме VC и SDK,Невозможно создать образцы WDK 10 с VC2015 без изменения заголовков Windows
Include Directories
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.11Target OS Version
для Windows 8.1
Целевая платформа
Desktop
Запуск трассировки 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
Hack: Драйвер строит успешно, если я редактировать 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, но я не могу понять, что.
Спасибо за ваше время,
Kris
аннотации драйверов определены в Driverspecs.h. (для таких вещей, как '_IRQL_requires_same_'). У вас есть этот файл .h? – ryyker
@ryyker Я не напрямую включаю 'driverspecs.h', но я включил каталог, в котором он находится; а именно '10.0.10586.0 \ shared'. Непосредственно включив его, над '', не действует. –
«Синтаксическая ошибка: отсутствует» 'обычно встречается, когда макрос не определен. вы должны убедиться, что все идентификаторы определены. Как только это будет сделано, остальные сообщения об ошибках, вероятно, также будут устранены. – ryyker