FWPS_CONNECT_REQUEST0 構造体 (fwpsk.h)

FWPS_CONNECT_REQUEST0構造体は、FWPM_LAYER_ALE_AUTH_CONNECT_REDIRECT_V4レイヤーとFWPM_LAYER_ALE_AUTH_CONNECT_REDIRECT_V6 レイヤーの変更可能なデータを定義します。 コールアウト ドライバーは、このデータを使用して接続情報を検査または変更します。

FWPS_CONNECT_REQUEST0は特定のバージョンのFWPS_CONNECT_REQUESTであることに注意してください。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。
 

構文

typedef struct _FWPS_CONNECT_REQUEST0 {
  SOCKADDR_STORAGE              localAddressAndPort;
  SOCKADDR_STORAGE              remoteAddressAndPort;
  UINT64                        portReservationToken;
  DWORD                         localRedirectTargetPID;
  struct _FWPS_CONNECT_REQUEST0 *previousVersion;
  UINT64                        modifierFilterId;
  HANDLE                        localRedirectHandle;
  void                          *localRedirectContext;
  SIZE_T                        localRedirectContextSize;
} FWPS_CONNECT_REQUEST0;

メンバー

localAddressAndPort

接続要求のローカル トランスポート アドレス。 これは、 SOCKADDR_STORAGE 構造として書式設定された IPV4 または IPV6 アドレスと TCP ポートです。

remoteAddressAndPort

接続要求のリモート トランスポート アドレス。 これは、 SOCKADDR_STORAGE 構造として書式設定された IPV4 または IPV6 アドレスと TCP/UDP ポートです。

portReservationToken

適切なポートを予約するために使用されるトークン。 このトークンは、 CreatePersistentTcpPortReservation または CreatePersistentUdpPortReservation を呼び出して、ポートが予約されている場合 に取得されます

localRedirectTargetPID

localAddressAndPort で指定されたアドレスへのトラフィックを処理するローカル ホスト プロセスのプロセス識別子。 ループバック リダイレクトの変更をエンジンで受け入れるには、この値を設定する必要があります。

previousVersion

以前のバージョンの接続要求データ。 この読み取り専用フィールドには、接続要求の変更履歴が記録されます。 接続要求データが別の WFP フィルターによって以前に変更されていない場合、 previousVersionNULL に設定されます。

modifierFilterId

classifyFn 関数の filter パラメーターの FilterId メンバーの値。 FilterId メンバーの詳細については、「FWPS_FILTER1」を参照してください。

localRedirectHandle

FwpsRedirectHandleCreate0 関数を呼び出してコールアウト ドライバーが作成したリダイレクト ハンドル。

メモWindows 8以降、リダイレクトを機能させるには localRedirectHandle を設定する必要があります。
 

localRedirectContext

ExAllocatePoolWithTag 関数を呼び出してコールアウト ドライバーが割り当てたコールアウト ドライバーコンテキスト領域。

メモWindows 8以降、localRedirectContext に割り当てられたメモリの所有権は WFP によって取得され、プロキシされたフローが削除されると解放されます。
 

localRedirectContextSize

吹き出し指定のコンテキスト領域のサイズ (バイト単位)。

メモWindows 8 以降でサポートされています。
 

注釈

コールアウト ドライバーは、 を呼び出してこの構造体を取得します。 FwpsAcquireWritableLayerDataPointer0 関数。書き込み可能なLayerData パラメーターを介してFWPS_CONNECT_REQUEST0構造体へのポインターを返します。 classifyFn 関数は、ローカルまたはリモートのトランスポート アドレスまたはポートを別のアドレスまたはポートにリダイレクトするなど、接続要求のパラメーターを変更できます。 接続要求のパラメーターを変更する場合、 classifyFn 関数は次の操作を行う必要があります。

  • FwpsAcquireWritableLayerDataPointer0 によって返されたFWPS_CONNECT_REQUEST0構造体に対するすべての変更を行います。 remoteAddressAndPortportReservationTokenlocalRedirectTargetPIDlocalRedirectHandlelocalRedirectContextlocalRedirectContextSize の各メンバーのみを変更できます。
  • Call (英語の可能性あり)引き出しドライバーがデータを変更しなかった場合でも、modifiedLayerData パラメーターをFWPS_CONNECT_REQUEST0構造体のアドレスに設定した FwpsApplyModifiedLayerData0。 この値は、 によって返される modifiedLayerData パラメーター値と同じである必要があります FwpsAcquireWritableLayerDataPointer0
この構造体は、他の吹き出しドライバーによって行われたすべての変更のレコードを含むリンク リストとして機能します。 previousVersion メンバーが NULL でない場合は、以前のバージョン情報があります。 完全なバージョン履歴を調べるには、引き出し線ドライバーが NULL に設定されるまで、リスト内の各構造体の previousVersion メンバーを引き続き調べる必要があります。

要件

要件
サポートされている最小のクライアント Windows 7 以降で使用できます。
Header fwpsk.h (Fwpsk.h を含む)

こちらもご覧ください

ExAllocatePoolWithTag

FWPS_FILTER1

FwpsAcquireWritableLayerDataPointer0

FwpsApplyModifiedLayerData0

FwpsRedirectHandleCreate0

SOCKADDR_STORAGE

バインドまたは接続リダイレクトの使用

classifyFn