FwpmTransactionBegin0 函式 (fwpmu.h)
FwpmTransactionBegin0 函式會在目前的會話內開始明確的交易。
語法
DWORD FwpmTransactionBegin0(
[in] HANDLE engineHandle,
[in] UINT32 flags
);
參數
[in] engineHandle
類型: HANDLE
篩選引擎開啟會話的句柄。 呼叫 FwpmEngineOpen0 以開啟篩選引擎的會話。
[in] flags
類型: UINT32
可能的值:
交易旗標 | 意義 |
---|---|
|
開始讀取/寫入交易。 |
|
開始唯讀交易。 |
傳回值
類型: DWORD
傳回碼/值 | Description |
---|---|
|
已成功啟動交易。 |
|
Windows 篩選平臺 () 特定錯誤。 如需詳細資訊,請參閱 其錯誤碼 。 |
|
無法與遠端或本機防火牆引擎通訊。 |
備註
無法從交易內呼叫此函式。 它將會失敗 ,並FWP_E_TXN_IN_PROGRESS。 如需交易的詳細資訊,請參閱 物件管理 。
對於唯讀交易,呼叫端需要 FWPM_ACTRL_BEGIN_READ_TXN 篩選引擎的存取權。 對於讀取/寫入交易,呼叫端需要 FWPM_ACTRL_BEGIN_WRITE_TXN 篩選引擎的存取權。 如需詳細資訊,請參閱 存取控制。
FwpmTransactionBegin0 是 FwpmTransactionBegin 的特定實作。 如需詳細資訊 ,請參閱 Version-Independent 名稱和以特定版本的 Windows 為目標 。
範例
下列 C++ 範例說明如何在 FWP 交易中包裝 FwpmFilterAdd0 函式。
#include <windows.h>
#include <fwpmu.h>
#include <stdio.h>
#pragma comment(lib, "Fwpuclnt.lib")
void main()
{
HANDLE engineHandle = NULL;
FWPM_FILTER0 fwpFilter;
RtlZeroMemory(&fwpFilter, sizeof(FWPM_FILTER0));
fwpFilter.layerKey = FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4;
fwpFilter.action.type = FWP_ACTION_BLOCK;
fwpFilter.weight.type = FWP_EMPTY;
fwpFilter.numFilterConditions = 0;
DWORD result = ERROR_SUCCESS;
DWORD fwpTxStatus = ERROR_SUCCESS;
printf("Opening filter engine.\n");
result = FwpmEngineOpen0(NULL, RPC_C_AUTHN_WINNT, NULL, NULL, &engineHandle);
if (result != ERROR_SUCCESS)
{
printf("FwpmEngineOpen0 failed (%d).\n", result);
return;
}
printf("Adding filter to permit traffic for Application 1.\n");
fwpTxStatus = FwpmTransactionBegin0(engineHandle, NULL);
if (fwpTxStatus != ERROR_SUCCESS)
{
printf("FwpmTransactionBegin0 failed (%d).\n", fwpTxStatus);
return;
}
result = FwpmFilterAdd0(engineHandle, &fwpFilter, NULL, NULL);
if (result != ERROR_SUCCESS)
{
printf("FwpmFilterAdd0 failed (%d).\n", result);
return;
}
result = FwpmTransactionCommit0(engineHandle);
if (result != ERROR_SUCCESS)
{
printf("FwpmTransactionCommit0 failed (%d).\n", result);
return;
}
else
{
printf("Filter transaction (adding a filter) committed successfully.\n");
}
return;
}
// ----------------------------------------------------------------------
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | fwpmu.h |
程式庫 | Fwpuclnt.lib |
Dll | Fwpuclnt.dll |