SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT控制代码

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

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

OutputSize

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

OutputBuffer

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

OutputSizeReturned

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

Irp

指向 IRP 的指针。

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

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

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

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

Winsock 客户端不得释放分配的缓冲区,直到 WSK 子系统完成 IRP。 当 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)