SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT 控制代码

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT套接字 I/O 控制操作允许 Winsock 客户端检索重定向连接的重定向记录的重定向上下文。

WFP 重定向记录是一个不透明数据的缓冲区,WFP 必须在出站代理连接上设置该缓冲区,以便重定向的连接与原始连接在逻辑上相关。

注意仅当连接被 WFP 客户端重定向到FWPS_LAYER_ALE_CONNECT_REDIRECT_V4层或FWPS_LAYER_ALE_CONNECT_REDIRECT_V6层时,才能使用SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS查询。

有关重定向的详细信息,请参阅 使用绑定或连接重定向

若要查询重定向记录的重定向上下文,Winsock 客户端使用以下参数调用 WskControlSocket 函数。

参数

RequestType

WskIoctl

ControlCode

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

级别

0

InputSize

0

InputBuffer

Null

OutputSize

OutputBuffer 参数指向的缓冲区的大小(以字节为单位)。

OutputBuffer

指向缓冲区的指针,该缓冲区接收已接受 TCP 连接的重定向记录的重定向上下文。 缓冲区的大小在 OutputSize 参数中指定。

OutputSizeReturned

指向 ULONG 类型变量的指针,该变量接收复制到 OutputBuffer 参数指向的缓冲区的数据字节数。

Irp

指向 IRP 的指针。

调用方可以通过以下任一方式执行此查询:

  • 它可以将 OutputBuffer 设置为大小约为 1 KB 的大型缓冲区。 如果输出缓冲区大小不够大, WskControlSocket 将返回 STATUS_BUFFER_TOO_SMALLOutputSizeReturned 将包含所需的缓冲区大小。 然后,可以分配更大的缓冲区,并再次调用 WskControlSocket ,并将 SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT 请求和 OutputBuffer 设置为更大的缓冲区。
  • 或者,可以将 OutputSize 参数设置为 0, 将 OutputBuffer 设置为 NULL,然后调用 WskControlSocket。 完成后, WskControlSocket 函数在 OutputSizeReturned 参数中检索输出缓冲区大小(以字节为单位)。 然后,可以分配适当大小的缓冲区,并再次调用 WskControlSocket,并将 SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT 请求和 OutputBuffer 设置为缓冲区。

注意 也可以使用 SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT (SDK) 在用户模式应用程序中执行此查询。

对于这种类型的请求,Winsock 客户端必须指定一个指向 IRP 的指针和一个指向其完成例程的指针。 IRP 可由更高的驱动程序传递给客户端,或者客户端可以选择分配 IRP。 若要指定完成例程,客户端必须调用 IoSetCompletionRoutine。 有关详细信息,请参阅 将 IRP 与 Winsock 内核函数配合使用

在 WSK 子系统完成 IRP 之前,Winsock 客户端不得释放分配的缓冲区。 当 WSK 子系统完成 IRP 时,它会通过调用完成例程来通知客户端。 对该缓冲区的引用由完成例程的 Context 参数中的 WSK 子系统传递给客户端。 缓冲区的大小存储在 Irp-IoStatus.Information> 中。

客户端可以通过检查 Irp-IoStatus.Status> 来获取 IRP 的状态Irp->如果请求成功,IoStatus.Status 将设置为 STATUS_SUCCESS 。 否则,如果调用不成功,它将包含 STATUS_INTEGER_OVERFLOWSTATUS_NOT_FOUNDSTATUS_BUFFER_TOO_SMALLSTATUS_ACCESS_DENIED

要求

最低受支持的客户端

Windows 8

最低受支持的服务器

Windows Server 2012

标头

Mstcpip.h

IRQL

PASSIVE_LEVEL

另请参阅

使用绑定或连接重定向

将 IRP 与 Winsock 内核函数配合使用

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT (SDK)