Fungsi FwpmSubLayerAdd0 (fwpmu.h)
Fungsi FwpmSubLayerAdd0 menambahkan sublayer baru ke sistem.
Sintaks
DWORD FwpmSubLayerAdd0(
[in] HANDLE engineHandle,
[in] const FWPM_SUBLAYER0 *subLayer,
[in, optional] PSECURITY_DESCRIPTOR sd
);
Parameter
[in] engineHandle
Jenis: HANDEL
Tangani untuk sesi terbuka ke mesin filter. Panggil FwpmEngineOpen0 untuk membuka sesi ke mesin filter.
[in] subLayer
Jenis: FWPM_SUBLAYER0*
Sublayer yang akan ditambahkan.
[in, optional] sd
Jenis: PSECURITY_DESCRIPTOR
Informasi keamanan untuk objek sublayer.
Nilai kembali
Jenis: DWORD
Mengembalikan kode/nilai | Deskripsi |
---|---|
|
Sublayer berhasil ditambahkan. |
|
Kesalahan spesifik Windows Filtering Platform (WFP). Lihat Kode Kesalahan WFP untuk detailnya. |
|
Gagal berkomunikasi dengan mesin firewall jarak jauh atau lokal. |
Keterangan
Jika penelepon menyediakan deskriptor keamanan null, sistem akan menetapkan pendeskripsi keamanan default.
Fungsi ini tidak dapat dipanggil dari dalam transaksi baca-saja. Ini akan gagal dengan FWP_E_INCOMPATIBLE_TXN. Lihat Manajemen Objek untuk informasi selengkapnya tentang transaksi.
Pemanggil memerlukan akses FWPM_ACTRL_ADD ke kontainer sublayer dan akses FWPM_ACTRL_ADD_LINK ke penyedia (jika ada). Lihat Access Control untuk informasi selengkapnya.
FwpmSubLayerAdd0 adalah implementasi khusus dari FwpmSubLayerAdd. Lihat Nama Version-Independent WFP dan Menargetkan Versi Windows Tertentu untuk informasi selengkapnya.
Contoh
Contoh C++ berikut mengilustrasikan inisialisasi objek sublayer dan menambahkan kunci sublayer ke objek filter.
#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;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | fwpmu.h |
Pustaka | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |