código de control de SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT
La SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT operación de control de E/S de socket permite a un cliente winsock recuperar el contexto de redireccionamiento de un registro de redireccionamiento para una conexión redirigida.
Un registro de redireccionamiento DEL PMA es un búfer de datos opacos que el PMA debe establecer en una conexión 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 la conexión se redirigió a la capa de FWPS_LAYER_ALE_CONNECT_REDIRECT_V4 o FWPS_LAYER_ALE_CONNECT_REDIRECT_V6 por parte de un cliente DE PMA.
Para obtener más información sobre el redireccionamiento, consulte Using Bind or Connect Redirection.
Para consultar el contexto de redireccionamiento de un registro de redireccionamiento, un cliente de Winsock llama a la función WskControlSocket con los parámetros siguientes.
Parámetro | Valor |
---|---|
RequestType |
WskIoctl |
ControlCode de |
SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT |
nivel |
0 |
inputSize |
0 |
InputBuffer |
NULO |
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 redirección 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 maneras siguientes:
- Puede establecer el OutputBuffer de 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 más grande y WskControlSocket llamado de nuevo con la solicitud de SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT y OutputBuffer establecer en el búfer mayor.
- O bien, puede establecer el parámetro OutputSize en 0 y el OutputBuffer de 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. Después, se puede asignar un búfer de tamaño adecuado y de WskControlSocket con la solicitud SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT y OutputBuffer establecer 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. Una referencia a ese búfer se pasa al cliente por el subsistema WSK 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_SMALLo STATUS_ACCESS_DENIED si la llamada no se realiza correctamente.
Requisitos
Cliente mínimo admitido |
Windows 8 |
Servidor mínimo admitido |
Windows Server 2012 |
Encabezado |
Mstcpip.h |
IRQL |
PASSIVE_LEVEL |
Consulte también
mediante el de redirección de enlace o conexión
uso de IRP con funciones de kernel de Winsock
SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS
deSIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT (SDK)