SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT código de control

La operación de control de E/S de socket de SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT permite a un cliente winsock recuperar el contexto de redireccionamiento de un registro de redireccionamiento para una conexión redirigida.

Un registro de redireccionamiento de PMA es un búfer de datos opacos que EL PMA debe establecer en una conexión de proxy de salida para que la conexión redirigida y la conexión original estén relacionadas lógicamente.

Nota La consulta de SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS solo se puede usar si un cliente de PMA redirigió la conexión en la capa de FWPS_LAYER_ALE_CONNECT_REDIRECT_V4 o FWPS_LAYER_ALE_CONNECT_REDIRECT_V6 .

Para obtener más información sobre el redireccionamiento, consulte Uso del redireccionamiento de enlace o conexión.

Para consultar el contexto de redireccionamiento de un registro de redireccionamiento, un cliente winsock llama a la función WskControlSocket con los parámetros siguientes.

Parámetro Value

RequestType

WskIoctl

ControlCode

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

Level

0

InputSize

0

InputBuffer

NULL

OutputSize

Tamaño, en bytes, del búfer al que apunta el parámetro OutputBuffer .

OutputBuffer

Puntero al búfer que recibe el contexto de redireccionamiento del registro de redireccionamiento para la conexión TCP aceptada. El tamaño del búfer se especifica en el parámetro OutputSize .

OutputSizeReturned

Puntero a una variable con tipo ULONG que recibe el número de bytes de datos que se copian en el búfer al que apunta el parámetro OutputBuffer .

Irp

Puntero a un IRP.

El autor de la llamada puede realizar esta consulta de cualquiera de las siguientes maneras:

  • Puede establecer OutputBuffer en un búfer grande de aproximadamente 1 KB de tamaño. Si el tamaño del búfer de salida no es lo suficientemente grande, WskControlSocket devolverá STATUS_BUFFER_TOO_SMALL y OutputSizeReturned contendrá el tamaño necesario del búfer. A continuación, se puede asignar un búfer mayor y se puede llamar a WskControlSocket de nuevo con la solicitud SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT y OutputBuffer establecida en el búfer mayor.
  • O bien, puede establecer el parámetro OutputSize en 0 y OutputBuffer en NULL y, a continuación, llamar a WskControlSocket. Tras la finalización, la función WskControlSocket recupera el tamaño del búfer de salida, en bytes, en el parámetro OutputSizeReturned . A continuación, se puede asignar un búfer de tamaño adecuado y se puede llamar a WskControlSocket de nuevo con la solicitud de SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT y OutputBuffer establecida en el búfer.

Nota También es posible realizar esta consulta en una aplicación en modo de usuario mediante SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT (SDK).

Para este tipo de solicitud, el cliente winsock debe especificar un puntero a un IRP y un puntero a su rutina de finalización. El IRP se puede pasar al cliente mediante un controlador superior o el cliente puede optar por asignar el IRP. Para especificar la rutina de finalización, el cliente debe llamar a IoSetCompletionRoutine. Para obtener más información, consulte Uso de IRP con funciones del kernel de Winsock.

El cliente winsock no debe liberar el búfer asignado hasta que el subsistema WSK complete el IRP. Cuando el subsistema WSK completa el IRP, notifica al cliente invocando la rutina de finalización. El subsistema WSK pasa una referencia a ese búfer al cliente en el parámetro Context de la rutina de finalización. El tamaño del búfer se almacena en Irp-IoStatus.Information>.

El cliente puede obtener el estado del IRP comprobando Irp-IoStatus.Status>. Irp-> IoStatus.Status se establecerá en STATUS_SUCCESS si la solicitud se realiza correctamente. De lo contrario, contendrá STATUS_INTEGER_OVERFLOW, STATUS_NOT_FOUND, STATUS_BUFFER_TOO_SMALL o STATUS_ACCESS_DENIED si la llamada no se realiza correctamente.

Requisitos

Cliente mínimo compatible

Windows 8

Servidor mínimo compatible

Windows Server 2012

Encabezado

Mstcpip.h

IRQL

PASSIVE_LEVEL

Consulte también

Uso del redireccionamiento bind o Connect

Uso de IRP con funciones de kernel de Winsock

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT (SDK)