Condividi tramite


codice di controllo SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

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

Un record di reindirizzamento WFP è un buffer di dati opachi che il 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 Using Bind or Connect Redirection.For more information about redirection, see Using Bind or Connect Redirection.

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

Parametro Valore

RequestType

WskIoctl

ControlCode

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

Level

0

InputSize

0

Inputbuffer

NULL

OutputSize

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

OutputBuffer

Puntatore al buffer che riceve 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 IRP.

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

  • Può impostare OutputBuffer su un buffer di grandi dimensioni di circa 1 KB. Se le dimensioni del buffer di output non sono sufficienti, WskControlSocket restituirà un 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 SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS e OutputBuffer impostato 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 nuovamente con la richiesta SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS e OutputBuffer impostato sul buffer.

Nota È anche possibile eseguire questa query in un'applicazione in modalità utente usando SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (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 dei runtime di integrazione con funzioni kernel Winsock.

Il client Winsock non deve liberare il buffer allocato fino al completamento dell'IRP dal sottosistema WSK. Quando il sottosistema WSK completa l'IRP, invia una notifica al client richiamando la routine di completamento. Un riferimento a tale buffer viene passato al client dal sottosistema WSK nel parametro Context 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 riesce.

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 dei runtime di integrazione con funzioni kernel Winsock

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (SDK)

SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS