fwpsk.h) (FWPS_CONNECT_REQUEST0 结构

FWPS_CONNECT_REQUEST0 结构定义FWPM_LAYER_ALE_AUTH_CONNECT_REDIRECT_V4层和FWPM_LAYER_ALE_AUTH_CONNECT_REDIRECT_V6层的可修改数据。 标注驱动程序使用此数据来检查或修改连接信息。

请注意,FWPS_CONNECT_REQUEST0FWPS_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

用于保留相应端口的令牌。 通过调用 CreatePersistentTcpPortReservationCreatePersistentUdpPortReservation 保留端口时获取令牌。

localRedirectTargetPID

将处理 localAddressAndPort 中指定的地址的流量的本地主机进程的进程标识符。 必须设置此值,才能让引擎接受环回重定向更改。

previousVersion

以前版本的连接请求数据。 此只读字段记录连接请求的修改历史记录。 如果连接请求数据以前未由其他 WFP 筛选器修改, 则 previousVersion 将设置为 NULL

modifierFilterId

classifyFn 函数的筛选器参数的 FilterId 成员的值。 有关 FilterId 成员的详细信息,请参阅 FWPS_FILTER1

localRedirectHandle

标注驱动程序通过调用 FwpsRedirectHandleCreate0 函数创建的重定向句柄。

注意从 Windows 8 开始,必须填充 localRedirectHandle 才能使重定向正常工作。
 

localRedirectContext

标注驱动程序通过调用 ExAllocatePoolWithTag 函数分配的标注驱动程序上下文区域。

注意从 Windows 8 开始,为 localRedirectContext 分配的内存将由 WFP 拥有其所有权,并在删除代理流时释放。
 

localRedirectContextSize

标注提供的上下文区域的大小(以字节为单位)。

注意从 Windows 8 开始支持。
 

注解

标注驱动程序通过调用 获取此结构 FwpsAcquireWritableLayerDataPointer0 函数,它通过 writableLayerData 参数返回指向 FWPS_CONNECT_REQUEST0 结构的指针。 classifyFn 函数可以修改连接请求的参数,例如将本地或远程传输地址或端口重定向到另一个地址或端口。 如果它修改了连接请求的参数,则 classifyFn 函数必须执行以下操作:

  • FwpsAcquireWritableLayerDataPointer0 返回的 FWPS_CONNECT_REQUEST0 结构进行所有更改。 只能修改 remoteAddressAndPortportReservationTokenlocalRedirectTargetPIDlocalRedirectHandlelocalRedirectContextlocalRedirectContextSize 成员。
  • 调用 FwpsApplyModifiedLayerData0 ,将 modifiedLayerData 参数设置为 FWPS_CONNECT_REQUEST0 结构的地址,即使标注驱动程序未修改任何数据也是如此。 此值必须与通过 返回的 modifiedLayerData 参数值相同 FwpsAcquireWritableLayerDataPointer0
此结构充当链接列表,其中包含其他标注驱动程序所做的所有更改的记录。 如果 previousVersion 成员不为 NULL,则存在以前的版本信息。 若要检查完整的版本历史记录,标注驱动程序必须继续检查列表中每个结构的 previousVersion 成员,直到它设置为 NULL

要求

要求
最低受支持的客户端 从 Windows 7 开始可用。
标头 fwpsk.h (包括 Fwpsk.h)

另请参阅

ExAllocatePoolWithTag

FWPS_FILTER1

FwpsAcquireWritableLayerDataPointer0

FwpsApplyModifiedLayerData0

FwpsRedirectHandleCreate0

SOCKADDR_STORAGE

使用绑定或连接重定向

classifyFn