FwpmSubLayerAdd0 函数 (fwpmu.h)
FwpmSubLayerAdd0 函数向系统添加新的子层。
语法
DWORD FwpmSubLayerAdd0(
[in] HANDLE engineHandle,
[in] const FWPM_SUBLAYER0 *subLayer,
[in, optional] PSECURITY_DESCRIPTOR sd
);
参数
[in] engineHandle
类型: 句柄
筛选器引擎的打开会话的句柄。 调用 FwpmEngineOpen0 以打开与筛选器引擎的会话。
[in] subLayer
类型: FWPM_SUBLAYER0*
要添加的子层。
[in, optional] sd
子层对象的安全信息。
返回值
类型:DWORD
返回代码/值 | 说明 |
---|---|
|
已成功添加子层。 |
|
Windows 筛选平台 (WFP) 特定错误。 有关详细信息 ,请参阅 WFP 错误代码 。 |
|
无法与远程或本地防火墙引擎通信。 |
注解
如果调用方提供 null 安全描述符,系统将分配默认的安全描述符。
无法从只读事务中调用此函数。 它将失败并 出现FWP_E_INCOMPATIBLE_TXN。 有关事务的详细信息,请参阅 对象管理 。
调用方需要 FWPM_ACTRL_ADD 访问子层的容器,并 FWPM_ACTRL_ADD_LINK 访问提供程序 ((如果有任何) )。 有关详细信息,请参阅访问控制。
FwpmSubLayerAdd0 是 FwpmSubLayerAdd 的特定实现。 有关详细信息 ,请参阅 WFP Version-Independent 名称和面向 Windows 的特定版本 。
示例
以下 C++ 示例演示了子层对象的初始化以及将子图层键添加到筛选器对象。
#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;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | fwpmu.h |
Library | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |