共用方式為


FwpmSubLayerAdd0 函式 (fwpmu.h)

FwpmSubLayerAdd0 函式會將新的子圖層新增至系統。

語法

DWORD FwpmSubLayerAdd0(
  [in]           HANDLE               engineHandle,
  [in]           const FWPM_SUBLAYER0 *subLayer,
  [in, optional] PSECURITY_DESCRIPTOR sd
);

參數

[in] engineHandle

類型: HANDLE

篩選引擎開啟會話的句柄。 呼叫 FwpmEngineOpen0 以開啟篩選引擎的會話。

[in] subLayer

類型: FWPM_SUBLAYER0*

要加入的子圖層。

[in, optional] sd

類型: PSECURITY_DESCRIPTOR

子層對象的安全性資訊。

傳回值

類型: DWORD

傳回碼/值 Description
ERROR_SUCCESS
0
已成功新增子圖層。
FWP_E_* 錯誤碼
0x80320001— 0x80320039
Windows 篩選平臺 () 特定錯誤。 如需詳細數據,請參閱 一併參閱其錯誤碼
RPC_* 錯誤碼
0x80010001— 0x80010122
無法與遠端或本機防火牆引擎通訊。

備註

如果呼叫端提供 Null 安全性描述元,系統會指派預設的安全性描述元。

無法從只讀交易內呼叫此函式。 它將會失敗 並FWP_E_INCOMPATIBLE_TXN。 如需交易的詳細資訊,請參閱 物件管理

呼叫端需要 FWPM_ACTRL_ADD 子層容器的存取權,並在有任何) 時 (FWPM_ACTRL_ADD_LINK 提供者的存取權。 如需詳細資訊,請參閱 存取控制

FwpmSubLayerAdd0 是 FwpmSubLayerAdd 的特定實作。 如需詳細資訊 ,請參閱 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
程式庫 Fwpuclnt.lib
Dll Fwpuclnt.dll

另請參閱

FWPM_SUBLAYER0

管理函式

WFP 函式