Función FwpmSubLayerAdd0 (fwpmu.h)
La función FwpmSubLayerAdd0 agrega una nueva subcapa al sistema.
Sintaxis
DWORD FwpmSubLayerAdd0(
[in] HANDLE engineHandle,
[in] const FWPM_SUBLAYER0 *subLayer,
[in, optional] PSECURITY_DESCRIPTOR sd
);
Parámetros
[in] engineHandle
Tipo: HANDLE
Identificador de una sesión abierta en el motor de filtro. Llame a FwpmEngineOpen0 para abrir una sesión en el motor de filtro.
[in] subLayer
Tipo: FWPM_SUBLAYER0*
Subcapa que se va a agregar.
[in, optional] sd
Tipo: PSECURITY_DESCRIPTOR
Información de seguridad del objeto de subcapa.
Valor devuelto
Tipo: DWORD
Código o valor devuelto | Descripción |
---|---|
|
La subcapa se agregó correctamente. |
|
Error específico de la Plataforma de filtrado de Windows (PMA). Consulte Códigos de error de PMA para obtener más información. |
|
Error al comunicarse con el motor de firewall remoto o local. |
Comentarios
Si el autor de la llamada proporciona un descriptor de seguridad nulo, el sistema asignará un descriptor de seguridad predeterminado.
No se puede llamar a esta función desde dentro de una transacción de solo lectura. Se producirá un error con FWP_E_INCOMPATIBLE_TXN. Consulte Administración de objetos para obtener más información sobre las transacciones.
El autor de la llamada necesita FWPM_ACTRL_ADD acceso al contenedor de las subcapas y FWPM_ACTRL_ADD_LINK acceso al proveedor (si existe). Consulte Access Control para obtener más información.
FwpmSubLayerAdd0 es una implementación específica de FwpmSubLayerAdd. Para obtener más información, vea NOMBRES DE Version-Independent DE PMA y versiones específicas de Windows dirigidas a destinatarios.
Ejemplos
En el siguiente ejemplo de C++ se muestra la inicialización de un objeto de subcapa y la adición de la clave de subcapa a un objeto de filtro.
#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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | fwpmu.h |
Library | Fwpuclnt.lib |
Archivo DLL | Fwpuclnt.dll |