Função FwpmSubLayerAdd0 (fwpmu.h)
A função FwpmSubLayerAdd0 adiciona uma nova subcamada ao sistema.
Sintaxe
DWORD FwpmSubLayerAdd0(
[in] HANDLE engineHandle,
[in] const FWPM_SUBLAYER0 *subLayer,
[in, optional] PSECURITY_DESCRIPTOR sd
);
Parâmetros
[in] engineHandle
Tipo: HANDLE
Manipule para uma sessão aberta para o mecanismo de filtro. Chame FwpmEngineOpen0 para abrir uma sessão para o mecanismo de filtro.
[in] subLayer
Tipo: FWPM_SUBLAYER0*
O subcaminho a ser adicionado.
[in, optional] sd
Tipo: PSECURITY_DESCRIPTOR
Informações de segurança para o objeto de subcaminho.
Retornar valor
Tipo: DWORD
Valor/código retornado | Descrição |
---|---|
|
O subcaminho foi adicionado com êxito. |
|
Um erro específico da Plataforma de Filtragem do Windows (WFP). Consulte Códigos de erro WFP para obter detalhes. |
|
Falha ao se comunicar com o mecanismo de firewall remoto ou local. |
Comentários
Se o chamador fornecer um descritor de segurança nulo, o sistema atribuirá um descritor de segurança padrão.
Essa função não pode ser chamada de dentro de uma transação somente leitura. Ele falhará com FWP_E_INCOMPATIBLE_TXN. Consulte Gerenciamento de Objetos para obter mais informações sobre transações.
O chamador precisa FWPM_ACTRL_ADD acesso ao contêiner das subcaminhos e FWPM_ACTRL_ADD_LINK acesso ao provedor (se houver). Consulte Controle de Acesso para obter mais informações.
FwpmSubLayerAdd0 é uma implementação específica do FwpmSubLayerAdd. Consulte Nomes de Version-Independent WFP e Direcionamento de versões específicas do Windows para obter mais informações.
Exemplos
O exemplo C++ a seguir ilustra a inicialização de um objeto de subcaminha e a adição da chave de subcaminha a um 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | fwpmu.h |
Biblioteca | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |