共用方式為


FwpsInjectionHandleCreate0 函式 (fwpsk.h)

FwpsInjectionHandleCreate0 函式會建立句柄,此句柄可供封包插入函式用來將封包或串流數據插入 TCP/IP 網路堆棧,以及由 FwpsQueryPacketInjectionState0 函式用來查詢封包插入狀態。

注意FwpsInjectionHandleCreate0 是特定版本的 FwpsInjectionHandleCreate。 如需詳細資訊 ,請參閱 Version-Independent 名稱和以特定版本的 Windows 為目標
 

語法

NTSTATUS FwpsInjectionHandleCreate0(
  [in, optional] ADDRESS_FAMILY addressFamily,
  [in]           UINT32         flags,
  [out]          HANDLE         *injectionHandle
);

參數

[in, optional] addressFamily

正在建立插入句柄的位址系列。 這可以是下列其中一個位址系列:

AF_UNSPEC

未指定位址系列。

AF_INET

IPv4 位址系列。

AF_INET6

IPv6 位址系列。

對於傳輸、數據流和轉送插入,此參數是選擇性的,而且可以設定為 AF_UNSPEC,這表示未指定的位址系列。 此值定義於 Ws2def.h 中。

[in] flags

圖說驅動程式所設定的旗標值,表示要插入的數據類型。 此旗標可以有下列一或多個值:

FWPS_INJECTION_TYPE_FORWARD

呼叫 會插入封包數據 FwpsInjectForwardAsync0 函式。

FWPS_INJECTION_TYPE_NETWORK

網路數據會藉由呼叫 其中一個來插入 FwpsInjectNetworkReceiveAsync0 函式或 FwpsInjectNetworkSendAsync0 函式。

FWPS_INJECTION_TYPE_STREAM

Stream 資料會藉由呼叫 來插入 FwpsStreamInjectAsync0 函式。

FWPS_INJECTION_TYPE_TRANSPORT

傳輸數據會藉由呼叫 其中一個來插入 FwpsInjectTransportReceiveAsync0 函式或 FwpsInjectTransportSendAsync0 函式

若要建立多個插入函式要使用的插入句柄,請將插入類型位與位 OR 作業結合。 如果旗標值設定為零,則產生的插入句柄可用於傳輸、數據流和轉送插入。

[out] injectionHandle

接收句柄之變數的指標。

傳回值

FwpsInjectionHandleCreate0 函式會傳回下列其中一個 NTSTATUS 代碼。

傳回碼 Description
STATUS_SUCCESS
已成功建立插入句柄。
STATUS_FWP_TCPIP_NOT_READY
TCP/IP 網路堆疊尚未就緒。 圖說文字驅動程序應該稍後再次呼叫 FwpsInjectionHandleCreate0 函式,以建立插入句柄。
其他狀態代碼
發生錯誤。

備註

圖說文字驅動程式會呼叫 FwpsInjectionHandleCreate0 函式,以建立句柄,可用來將封包或串流數據插入 TCP/IP 網路堆棧,並查詢封包插入狀態。 圖說文字驅動程式會將建立的句柄傳遞至 封包插入函式 FwpsQueryPacketInjectionState0

在註標驅動程式使用插入句柄完成之後,它必須呼叫 FwpsInjectionHandleDestroy0 函式來終結句柄。 如果暫止插入尚未完成,此函式會在傳回之前等候完成。

當對網路層進行插入,而 IPv4 和 IPv6 位址系列都會被篩選時,圖說文字驅動程式必須呼叫 FwpsInjectionHandleCreate0 函式兩次來建立兩個插入句柄:一個呼叫 addressFamily 設定為 AF_INET,而第二次呼叫 addressFamily 設定為 AF_INET6。

對於 MAC 層 ( *MAC_FRAME_NATIVE*MAC_FRAME_ETHERNET*VSWITCH_ETHERNET) ,您可以使用與 FWPS_INJECTION_TYPE_L2 旗標一起取得的相同插入句柄。 插入類型會系結到比圖層更接近插入函式。

如需程式代碼範例,請參閱其HELPERFUNCTIONS_INJECTIONDATA.CPP。

規格需求

需求
最低支援的用戶端 從 Windows Vista 開始提供。
目標平台 Universal
標頭 fwpsk.h (包含 Fwpsk.h)
程式庫 Fwpkclnt.lib
IRQL PASSIVE_LEVEL

另請參閱

FwpsInjectionHandleDestroy0

FwpsQueryPacketInjectionState0

封包插入函式