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.
Die FwpmSubLayerAdd0-Funktion fügt dem System eine neue Unterschicht hinzu.
Syntax
DWORD FwpmSubLayerAdd0(
[in] HANDLE engineHandle,
[in] const FWPM_SUBLAYER0 *subLayer,
[in, optional] PSECURITY_DESCRIPTOR sd
);
Parameter
[in] engineHandle
Typ: HANDLE
Handle für eine geöffnete Sitzung für die Filter-Engine. Rufen Sie FwpmEngineOpen0 auf, um eine Sitzung für die Filter-Engine zu öffnen.
[in] subLayer
Typ: FWPM_SUBLAYER0*
Die hinzuzufügende Unterschicht.
[in, optional] sd
Typ: PSECURITY_DESCRIPTOR
Sicherheitsinformationen für das Sublayerobjekt.
Rückgabewert
Art: DWORD
| Rückgabecode/-wert | BESCHREIBUNG |
|---|---|
|
Die Unterschicht wurde erfolgreich hinzugefügt. |
|
Ein WFP-spezifischer Fehler (Windows Filtering Platform). Weitere Informationen finden Sie unter WFP-Fehlercodes . |
|
Fehler bei der Kommunikation mit der Remote- oder lokalen Firewall-Engine. |
Hinweise
Wenn der Aufrufer einen NULL-Sicherheitsdeskriptor bereitstellt, weist das System einen Standardsicherheitsdeskriptor zu.
Diese Funktion kann nicht innerhalb einer schreibgeschützten Transaktion aufgerufen werden. Bei FWP_E_INCOMPATIBLE_TXN tritt ein Fehler auf. Weitere Informationen zu Transaktionen finden Sie unter Objektverwaltung .
Der Aufrufer benötigt FWPM_ACTRL_ADD Zugriff auf den Container der Sublayer und FWPM_ACTRL_ADD_LINK Zugriff auf den Anbieter (falls vorhanden). Weitere Informationen finden Sie unter Access Control.
FwpmSubLayerAdd0 ist eine spezifische Implementierung von FwpmSubLayerAdd. Weitere Informationen finden Sie unter WFP-Version-Independent Namen und Spezifische Windows-Versionen .
Beispiele
Das folgende C++-Beispiel veranschaulicht die Initialisierung eines Sublayerobjekts und das Hinzufügen des Unterschichtschlüssels zu einem Filterobjekt.
#include <windows.h>
#include <fwpmu.h>
#include <rpc.h>
#include <stdio.h>
#pragma comment(lib, "Fwpuclnt.lib")
#pragma comment(lib, "Rpcrt4.lib")
void main()
{
FWPM_FILTER0 fwpFilter;
FWPM_SUBLAYER0 fwpFilterSubLayer;
HANDLE engineHandle = NULL;
DWORD result = ERROR_SUCCESS;
RPC_STATUS rpcStatus = RPC_S_OK;
memset(&fwpFilterSubLayer, 0, sizeof(fwpFilterSubLayer));
rpcStatus = UuidCreate(&fwpFilterSubLayer.subLayerKey);
if (RPC_S_OK != rpcStatus)
{
printf("UuidCreate failed (%d).\n", rpcStatus);
return;
}
result = FwpmEngineOpen0( NULL, RPC_C_AUTHN_WINNT, NULL, NULL, &engineHandle );
if (result != ERROR_SUCCESS)
{
printf("FwpmEngineOpen0 failed.\n");
return;
}
fwpFilterSubLayer.displayData.name = L"MyFilterSublayer";
fwpFilterSubLayer.displayData.description = L"My filter sublayer";
fwpFilterSubLayer.flags = 0;
fwpFilterSubLayer.weight = 0x100;
printf("Adding filter sublayer.\n");
result = FwpmSubLayerAdd0(engineHandle, &fwpFilterSubLayer, NULL);
if (result != ERROR_SUCCESS)
{
printf("FwpmSubLayerAdd0 failed (%d).\n", result);
return;
}
// Add sublayer key to a filter.
memset(&fwpFilter, 0, sizeof(FWPM_FILTER0));
if (&fwpFilterSubLayer.subLayerKey != NULL)
fwpFilter.subLayerKey = fwpFilterSubLayer.subLayerKey;
// Finish initializing filter...
return;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
| Zielplattform | Windows |
| Kopfzeile | fwpmu.h |
| Bibliothek | Fwpuclnt.lib |
| DLL | Fwpuclnt.dll |