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