Платформа фильтрации Windows - неразрешенные внешние символы
Я пишу драйвер ядра Windows Filtering Platform (WFP) и пытаюсь добавить некоторые выноски.
Я использую некоторые FWPM_LAYER
GUID, такие как
FWPM_LAYER_OUTBOUND_TRANSPORT_V4
FWPM_LAYER_OUTBOUND_TRANSPORT_V6
FWPM_LAYER_ALE_AUTH_CONNECT_V4
FWPM_LAYER_ALE_AUTH_CONNECT_V6
Однако я получаю неразрешенные внешние символы при их использовании.
Error LNK2001 unresolved external symbol _FWPM_LAYER_OUTBOUND_TRANSPORT_V4
Error LNK2001 unresolved external symbol _FWPM_LAYER_OUTBOUND_TRANSPORT_V6
Error LNK2001 unresolved external symbol _FWPM_LAYER_ALE_AUTH_CONNECT_V4
Error LNK2001 unresolved external symbol _FWPM_LAYER_ALE_AUTH_CONNECT_V6
Я использую следующие заголовки
#define NDIS61 1
#include <ntifs.h>
#include <ntddk.h>
#include <wdf.h>
#pragma warning(push)
#pragma warning(disable: 4201)
#include <fwpsk.h>
#pragma warning(pop)
#include <fwpmk.h>
#include <fwpvi.h>
#include <guiddef.h>
#include <initguid.h>
#include <devguid.h>
И я ссылаюсь на следующие дополнительные зависимости.
$(DDK_LIB_PATH)wdmsec.lib
$(DDK_LIB_PATH)fwpkclnt.lib
Я не могу найти то, что мне не хватает, кажется, что эти GUID находятся внутри fwmpk.h
который находится в Fwpkclnt.lib
библиотека, против которой я строю.
1 ответ
Решение
Как ответил RbMm в комментариях, решение было перенести #include <initguid.h>
заявление перед include <fwmpk.h>
заявление.
#define NDIS61 1
#include <ntifs.h>
#include <ntddk.h>
#include <wdf.h>
#include <guiddef.h>
#include <initguid.h>
#include <devguid.h>
#pragma warning(push)
#pragma warning(disable: 4201)
#include <fwpsk.h>
#pragma warning(pop)
#include <fwpmk.h>
#include <fwpvi.h>