Delen via


SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS besturingscode

Met de SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS socket I/O-besturingsbewerking kan een Winsock-client de omleidingsrecord voor een omgeleide verbinding ophalen.

Een WFP-omleidingsrecord is een buffer met ondoorzichtige gegevens die WFP moet instellen voor een uitgaande proxyverbinding, zodat de omgeleide verbinding en de oorspronkelijke verbinding logisch zijn gerelateerd.

Opmerking De SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS-query kan alleen worden gebruikt als de verbinding is omgeleid op de FWPS_LAYER_ALE_CONNECT_REDIRECT_V4- of FWPS_LAYER_ALE_CONNECT_REDIRECT_V6-laag door een WFP-client.

Zie Bind- of Connect-omleiding gebruikenvoor meer informatie over omleiding.

Als u een query wilt uitvoeren op de omleidingsrecord voor de omgeleide verbinding, roept een Winsock-client de WskControlSocket- functie aan met de volgende parameters.

Parameter Waarde

RequestType-

WskIoctl-

ControlCode-

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS

niveau

0

InputSize

0

InputBuffer

NUL

OutputSize

De grootte, in bytes, van de buffer waarnaar wordt verwezen door de parameter OutputBuffer.

OutputBuffer-

Een aanwijzer naar de buffer die de omleidingsrecord voor de geaccepteerde TCP-verbinding ontvangt. De grootte van de buffer wordt opgegeven in de parameter OutputSize.

OutputSizeReturned

Een aanwijzer naar een ULONG--getypte variabele die het aantal bytes aan gegevens ontvangt dat wordt gekopieerd naar de buffer waarnaar wordt verwezen door de parameter OutputBuffer.

Irp

Een aanwijzer naar een IRP.

De aanroeper kan deze query op een van de volgende manieren uitvoeren:

  • Het kan de OutputBuffer- instellen op een grote buffer van ongeveer 1 kB. Als de grootte van de uitvoerbuffer niet groot genoeg is, retourneert WskControlSocket een STATUS_BUFFER_TOO_SMALL en bevat OutputSizeReturned de vereiste grootte van de buffer. Een grotere buffer kan vervolgens worden toegewezen en WskControlSocket opnieuw aangeroepen met de SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS aanvraag en OutputBuffer ingesteld op de grotere buffer.
  • U kunt ook de parameter OutputSize instellen op 0 en de OutputBuffer- op NULL en vervolgens WskControlSocketaanroepen. Na voltooiing haalt de functie WskControlSocket de grootte van de uitvoerbuffer, in bytes, op in de parameter OutputSizeReturned. Vervolgens kan een buffer met de juiste grootte worden toegewezen en WskControlSocket opnieuw worden aangeroepen met de SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS aanvraag en OutputBuffer ingesteld op de buffer.

Opmerking Het is ook mogelijk om deze query uit te voeren in een toepassing in de gebruikersmodus met behulp van SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (SDK).

Voor dit type aanvraag moet de Winsock-client een aanwijzer opgeven naar een IRP en een aanwijzer naar de voltooiingsroutine. De IRP kan worden doorgegeven aan de client door een hoger stuurprogramma of de client kan ervoor kiezen om de IRP toe te wijzen. Om de voltooiingsroutine op te geven, moet de client IoSetCompletionRoutineaanroepen. Zie IRPs gebruiken met Winsock Kernel Functionsvoor meer informatie.

De Winsock-client mag de toegewezen buffer niet vrij maken totdat de IRP is voltooid door het WSK-subsysteem. Wanneer het WSK-subsysteem de IRP voltooit, wordt de client op de hoogte stellen door de voltooiingsroutine aan te roepen. Een verwijzing naar die buffer wordt doorgegeven aan de client door het WSK-subsysteem in de Context parameter van de voltooiingsroutine. De grootte van de buffer wordt opgeslagen in Irp->IoStatus.Information.

De client kan de status van het IRP ophalen door Irp->IoStatus.Statuste controleren. Irp->IoStatus.Status wordt ingesteld op STATUS_SUCCESS als de aanvraag is geslaagd. Anders bevat het STATUS_INTEGER_OVERFLOW, STATUS_NOT_FOUND, STATUS_BUFFER_TOO_SMALLof STATUS_ACCESS_DENIED als de oproep niet is geslaagd.

Eisen

Minimaal ondersteunde client

Windows 8

Minimaal ondersteunde server

Windows Server 2012

Rubriek

Mstcpip.h

IRQL

PASSIVE_LEVEL

Zie ook

Bind of Connect Redirection gebruiken

IRPs gebruiken met Winsock Kernel Functions

SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT

SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS (SDK)

SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS