Partilhar via


SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS código de controlo

A operação de controle de E/S de soquete SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS permite que um cliente Winsock recupere o registro de redirecionamento para uma conexão redirecionada.

Um registro de redirecionamento WFP é um buffer de dados opacos que o WFP deve definir em uma conexão proxy de saída para que a conexão redirecionada e a conexão original estejam logicamente relacionadas.

Observação A consulta SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS só pode ser usada se a conexão foi redirecionada para a camada FWPS_LAYER_ALE_CONNECT_REDIRECT_V4 ou FWPS_LAYER_ALE_CONNECT_REDIRECT_V6 por um cliente WFP.

Para obter mais informações sobre redirecionamento, consulte Usando ode redirecionamento Bind ou Connect .

Para consultar o registro de redirecionamento para a conexão redirecionada, um cliente Winsock chama o função WskControlSocket com os seguintes parâmetros.

Parâmetro Valor

RequestType

WskIoctl

ControlCode

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

Nível

0

InputSize

0

InputBuffer

NULO

OutputSize

O tamanho, em bytes, do buffer apontado pelo parâmetro OutputBuffer.

OutputBuffer

Um ponteiro para o buffer que recebe o registro de redirecionamento para a conexão TCP aceita. O tamanho do buffer é especificado no parâmetro OutputSize.

OutputSizeReturned

Um ponteiro para uma variável de ULONG-typed que recebe o número de bytes de dados copiados para o buffer apontado pelo parâmetro OutputBuffer.

IRP

Um ponteiro para um IRP.

O chamador pode executar essa consulta de uma das seguintes maneiras:

  • Ele pode definir o OutputBuffer para um buffer grande de aproximadamente 1 KB de tamanho. Se o tamanho do buffer de saída não for grande o suficiente, WskControlSocket retornará um STATUS_BUFFER_TOO_SMALL e OutputSizeReturned conterá o tamanho necessário do buffer. Um buffer maior pode então ser alocado e WskControlSocket chamado novamente com a solicitação SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS e OutputBuffer definido para o buffer maior.
  • Ou ele pode definir o parâmetro OutputSize como 0 e o OutputBuffer como NULL e, em seguida, chamar WskControlSocket. Após a conclusão, a função WskControlSocket recupera o tamanho do buffer de saída, em bytes, no parâmetro OutputSizeReturned. Um buffer de tamanho apropriado pode ser alocado e WskControlSocket chamado novamente com a solicitação de SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS e OutputBuffer definido para o buffer.

Observação Também é possível executar essa consulta em um aplicativo de modo de usuário usando SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (SDK).

Para esse tipo de solicitação, o cliente Winsock deve especificar um ponteiro para um IRP e um ponteiro para sua rotina de conclusão. O IRP pode ser passado para o cliente por um driver superior ou o cliente pode optar por alocar o IRP. Para especificar a rotina de conclusão, o cliente deve chamar IoSetCompletionRoutine. Para obter mais detalhes, consulte Usando IRPs com funções do kernel Winsock.

O cliente Winsock não deve liberar o buffer alocado até que o IRP seja concluído pelo subsistema WSK. Quando o subsistema WSK conclui o IRP, ele notifica o cliente invocando a rotina de conclusão. Uma referência a esse buffer é passada para o cliente pelo subsistema WSK no parâmetro Context da rotina de conclusão. O tamanho do buffer é armazenado em Irp->IoStatus.Information.

O cliente pode obter o status do IRP verificando Irp->IoStatus.Status. Irp->IoStatus.Status será definido como STATUS_SUCCESS se a solicitação for bem-sucedida. Caso contrário, ele conterá STATUS_INTEGER_OVERFLOW, STATUS_NOT_FOUND, STATUS_BUFFER_TOO_SMALLou STATUS_ACCESS_DENIED se a chamada não for bem-sucedida.

Requerimentos

Cliente mínimo suportado

Janelas 8

Servidor mínimo suportado

Windows Server 2012

Cabeçalho

Mstcpip.h

IRQL

PASSIVE_LEVEL

Ver também

Usando o de redirecionamento Bind ou Connect

Usando IRPs com funções do kernel Winsock

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (SDK)

SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS