Share via


codice di controllo SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

L'operazione di controllo I /O socket SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT consente a un client Winsock di recuperare il contesto di reindirizzamento per un record di reindirizzamento per una connessione reindirizzata.

Un record di reindirizzamento WFP è un buffer di dati opachi che WFP deve impostare su una connessione proxy in uscita in modo che la connessione reindirizzata e la connessione originale siano logicamente correlate.

Nota La query SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS può essere usata solo se la connessione è stata reindirizzata al livello FWPS_LAYER_ALE_CONNECT_REDIRECT_V4 o FWPS_LAYER_ALE_CONNECT_REDIRECT_V6 da un client WFP.

Per altre informazioni sul reindirizzamento, vedere Uso di Bind o Connect Redirection.

Per eseguire query sul contesto di reindirizzamento per un record di reindirizzamento, un client Winsock chiama la funzione WskControlSocket con i parametri seguenti.

Parametro Valore

RequestType

WskIoctl

ControlCode

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

Level

0

InputSize

0

Inputbuffer

NULL

OutputSize

Dimensioni, in byte, del buffer a cui punta il parametro OutputBuffer .

OutputBuffer

Puntatore al buffer che riceve il contesto di reindirizzamento per il record di reindirizzamento per la connessione TCP accettata. Le dimensioni del buffer vengono specificate nel parametro OutputSize .

OutputSizeReturned

Puntatore a una variabile tipizzata ULONG che riceve il numero di byte di dati copiati nel buffer a cui punta il parametro OutputBuffer .

Irp

Puntatore a un'istanza di IRP.

Il chiamante può eseguire questa query in uno dei modi seguenti:

  • Può impostare OutputBuffer su un buffer di grandi dimensioni circa 1 KB. Se le dimensioni del buffer di output non sono sufficienti, WskControlSocket restituirà STATUS_BUFFER_TOO_SMALL e OutputSizeReturned conterrà le dimensioni necessarie del buffer. Un buffer più grande può quindi essere allocato e WskControlSocket chiamato di nuovo con la richiesta di SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT e OutputBuffer impostata sul buffer più grande.
  • In alternativa, può impostare il parametro OutputSize su 0 e outputBuffer su NULL e quindi chiamare WskControlSocket. Al termine, la funzione WskControlSocket recupera le dimensioni del buffer di output, in byte, nel parametro OutputSizeReturned . Un buffer di dimensioni appropriate può quindi essere allocato e WskControlSocket chiamato di nuovo con la richiesta di SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT e OutputBuffer impostata sul buffer.

Nota È anche possibile eseguire questa query in un'applicazione in modalità utente usando SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT (SDK).

Per questo tipo di richiesta, il client Winsock deve specificare un puntatore a un'IRP e un puntatore alla routine di completamento. L'IRP può essere passato al client da un driver superiore o il client può scegliere di allocare l'IRP. Per specificare la routine di completamento, il client deve chiamare IoSetCompletionRoutine. Per altre informazioni, vedere Uso di IRP con Funzioni kernel Winsock.

Il client Winsock non deve liberare il buffer allocato fino al completamento del sottosistema WSK. Quando il sottosistema WSK completa l'IRP, notifica al client richiamando la routine di completamento. Riferimento a tale buffer passato al client dal sottosistema WSK nel parametro Contesto della routine di completamento. Le dimensioni del buffer vengono archiviate in Irp-IoStatus.Information>.

Il client può ottenere lo stato dell'IRP controllando Irp-IoStatus.Status>. Irp-> IoStatus.Status verrà impostato su STATUS_SUCCESS se la richiesta ha esito positivo. In caso contrario, conterrà STATUS_INTEGER_OVERFLOW, STATUS_NOT_FOUND, STATUS_BUFFER_TOO_SMALL o STATUS_ACCESS_DENIED se la chiamata non ha esito positivo.

Requisiti

Client minimo supportato

Windows 8

Server minimo supportato

Windows Server 2012

Intestazione

Mstcpip.h

IRQL

PASSIVE_LEVEL

Vedi anche

Uso di Bind o Connect Redirection

Uso di IRP con Funzioni kernel Winsock

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT (SDK)