Fonction FwpmSubLayerAdd0 (fwpmu.h)
La fonction FwpmSubLayerAdd0 ajoute un nouveau sous-couche au système.
Syntaxe
DWORD FwpmSubLayerAdd0(
[in] HANDLE engineHandle,
[in] const FWPM_SUBLAYER0 *subLayer,
[in, optional] PSECURITY_DESCRIPTOR sd
);
Paramètres
[in] engineHandle
Type : HANDLE
Gérer pour une session ouverte sur le moteur de filtre. Appelez FwpmEngineOpen0 pour ouvrir une session sur le moteur de filtre.
[in] subLayer
Type : FWPM_SUBLAYER0*
Sous-couche à ajouter.
[in, optional] sd
Type : PSECURITY_DESCRIPTOR
Informations de sécurité pour l’objet de sous-couche.
Valeur retournée
Type : DWORD
Code/valeur de retour | Description |
---|---|
|
La sous-couche a été ajoutée avec succès. |
|
Erreur spécifique à la plateforme de filtrage Windows (PAM). Pour plus d’informations, consultez Codes d’erreur PAM . |
|
Échec de la communication avec le moteur de pare-feu distant ou local. |
Remarques
Si l’appelant fournit un descripteur de sécurité null, le système affecte un descripteur de sécurité par défaut.
Cette fonction ne peut pas être appelée à partir d’une transaction en lecture seule. Elle échoue avec FWP_E_INCOMPATIBLE_TXN. Pour plus d’informations sur les transactions, consultez Gestion des objets.
L’appelant doit FWPM_ACTRL_ADD accès au conteneur des sous-couches et FWPM_ACTRL_ADD_LINK accès au fournisseur (le cas échéant). Pour plus d’informations, consultez Access Control.
FwpmSubLayerAdd0 est une implémentation spécifique de FwpmSubLayerAdd. Pour plus d’informations , voir PAM Version-Independent noms et Ciblage de versions spécifiques de Windows .
Exemples
L’exemple C++ suivant illustre l’initialisation d’un objet de sous-couche et l’ajout de la clé de sous-couche à un objet de filtre.
#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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | fwpmu.h |
Bibliothèque | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour