Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In vielen Fällen stellt die Windows-Filterplattform (WFP)-API mehr als eine Version einer Funktion oder Struktur bereit.
Die meisten Daten- und Funktionsnamen in der WFP-API enden mit einer Versionsnummer, z. B. "0" oder "1", auch wenn nur eine Version vorhanden ist.
Versionszuordnung in fwpvi.h
Die Headerdatei "fwpvi.h" ist ab dem Windows 7 SDK und WDK enthalten. Diese Headerdatei ordnet den Versionslosen API-Namen der Version zu, die für die Verwendung mit einem bestimmten Betriebssystem geeignet ist.
Hier ist beispielsweise ein kurzer Auszug aus der version von fwpvi.h im Windows 8 SDK enthalten.
#define FwpmNetEventCreateEnumHandle FwpmNetEventCreateEnumHandle0
#if (NTDDI_VERSION >= NTDDI_WIN8)
#define FwpmNetEventEnum FwpmNetEventEnum2
#elif (NTDDI_VERSION >= NTDDI_WIN7)
#define FwpmNetEventEnum FwpmNetEventEnum1
#else
#define FwpmNetEventEnum FwpmNetEventEnum0
#endif
Wie oben gezeigt, gibt es nur eine Version von FwpmNetEventCreateEnumHandle – FwpmNetEventCreateEnumHandle0 – sodass jeder Aufruf von FwpmNetEventCreateEnumHandle immer FwpmNetEventCreateEnumHandle0 aufruft, unabhängig vom zielbezogenen Betriebssystem.
Es gibt jedoch drei Versionen von FwpmNetEventEnum: FwpmNetEventEnum0, FwpmNetEventEnum1 und FwpmNetEventEnum2. Die Headerdatei "fwpvi.h" stellt sicher, dass ein Aufruf von FwpmNetEventEnum die für das Zielbetriebssystem am besten geeignete Version aufruft:
- FwpmNetEventEnum2 für Windows 8 (oder höher)
- FwpmNetEventEnum1 ist für Windows 7 vorgesehen.
- FwpmNetEventEnum0 für frühere Betriebssysteme (z. B. Windows Vista oder Windows Vista mit Service Pack 1 (SP1))
Aufrufen von Version-Independent-Funktionen und -Strukturen
WFP-Entwickler, die auf ein bestimmtes Betriebssystem oder eine WDK-Version abzielen, werden empfohlen, immer für die versionsunabhängigen Makros zu programmieren. Dadurch wird automatisch die neueste Version ausgewählt, die in dem Betriebssystem unterstützt wird, auf das Sie abzielen. Die Verwendung der aktuellsten Headerdateien wird empfohlen, auch wenn ein früheres Betriebssystem verwendet wird. Dadurch wird konsistent sichergestellt, dass die neueste unterstützte Version verwendet wird, und sie kann auch das Warten und Aktualisieren ihres Codes vereinfachen.
Die WFP-API-Referenzdokumentation beschreibt jede Version einer nummerierten API. Wenn mehr als eine Version vorhanden ist, wird das zielorientierte Betriebssystem angegeben. Entwickler möchten jedoch im Allgemeinen die versionsunabhängigen (nummernlosen) APIs aufrufen und das zielorientierte Betriebssystem angeben (z. B. NTDDI_WIN6 für Windows Vista oder NTDDI_WIN8 für Windows 8).
Um die ordnungsgemäße Behandlung von Funktionen sicherzustellen, die unterschiedliche Parameter in verschiedenen Versionen verwenden, können Sie bedingte Blöcke wie z. B. #if (NTDDI_VERSION >= NTDDI_WIN7)
einfügen.