Freigeben über


PFN_WSK_CONTROL_CLIENT Rückruffunktion (wsk.h)

Die WskControlClient--Funktion führt Steuerungsvorgänge für ein WSK-Clientobjekt aus.

Syntax

PFN_WSK_CONTROL_CLIENT PfnWskControlClient;

NTSTATUS PfnWskControlClient(
  [in]            PWSK_CLIENT Client,
  [in]            ULONG ControlCode,
  [in]            SIZE_T InputSize,
  [in, optional]  PVOID InputBuffer,
  [in]            SIZE_T OutputSize,
  [out, optional] PVOID OutputBuffer,
  [out, optional] SIZE_T *OutputSizeReturned,
  [in, out]       PIRP Irp
)
{...}

Parameter

[in] Client

Ein Zeiger auf eine WSK_CLIENT-Struktur, die durch den WskProviderNpi Parameter der WskCaptureProviderNPINPI- funktion zurückgegeben wurde.

[in] ControlCode

Der steuerelementvorgang, der ausgeführt wird. Eine WSK-Anwendung kann einen der folgenden Steuerelementcodes angeben:

WSK_TRANSPORT_LIST_QUERY

Dient zum Abrufen einer Liste der verfügbaren Netzwerktransporte.

WSK_TRANSPORT_LIST_CHANGE

Erhalten Sie eine Benachrichtigung über eine Änderung an der Liste der verfügbaren Netzwerktransporte.

WSK_CACHE_SD

Abrufen einer zwischengespeicherten Kopie eines Sicherheitsdeskriptors.

WSK_RELEASE_SD

Freigeben einer zwischengespeicherten Kopie eines Sicherheitsdeskriptors.

WSK_SET_STATIC_EVENT_CALLBACKS

Aktivieren Sie angegebene Ereignisrückruffunktionen automatisch für alle Sockets.

WSK_TDI_DEVICENAME_MAPPING

Zuordnen von Kombinationen aus Adressfamilie, Sockettyp und Protokoll zu Gerätenamen von TDI- Transporten.

WSK_TDI_BEHAVIOR

Steuern, ob das WSK-Subsystem die Netzwerk-E/A- Transporte umleitet.

[in] InputSize

Die Anzahl der Daten im Puffer, auf die durch den parameter InputBuffer verwiesen wird.

[in, optional] InputBuffer

Ein vom Aufrufer zugewiesener Puffer, der eingabedaten bereitstellt, die zum Ausführen des angegebenen Steuerungsvorgangs erforderlich sind. Wenn für den angegebenen Steuerelementvorgang keine Eingabedaten erforderlich sind, sollte die WSK-Anwendung diesen Parameter auf NULL- festlegen und den InputSize-Parameter auf Null festlegen.

[in] OutputSize

Die Größe des Puffers in Byte, auf den der OutputBuffer-Parameter verweist.

[out, optional] OutputBuffer

Ein vom Aufrufer zugewiesener Puffer, der alle Ausgabedaten empfängt, die vom angegebenen Steuerelementvorgang zurückgegeben werden. Wenn vom angegebenen Steuerelementvorgang keine Ausgabedaten zurückgegeben werden, sollte die WSK-Anwendung diesen Parameter auf NULL- festlegen und den OutputSize-Parameter auf Null festlegen.

[out, optional] OutputSizeReturned

Ein Zeiger auf eine ULONG-Typvariable, die die Anzahl der Daten empfängt, die im Puffer zurückgegeben werden, auf den der OutputBuffer-Parameter verweist. Eine WSK-Anwendung sollte diesen Zeiger auf NULL- festlegen, außer wenn alle folgenden Werte zutreffen:

  • Der parameter Irp ist NULL.
  • Der ausgeführte Vorgang gibt Ausgabedaten im Puffer zurück, auf die vom OutputBuffer Parameter verwiesen wird.
  • Die Anzahl der Bytes von Ausgabedaten, die von dem ausgeführten Vorgang zurückgegeben werden, ist unbekannt.

[in, out] Irp

Ein Zeiger auf ein vom Aufrufer zugewiesenes IRP, das vom WSK-Subsystem verwendet wird, um den Steuerungsvorgang asynchron abzuschließen. Weitere Informationen zur Verwendung von IRPs mit WSK-Funktionen finden Sie unter Verwenden von IRPs mit Winsock Kernel Functions.

Dieser Parameter ist erforderlich, ist optional oder muss NULL-sein, abhängig von dem jeweiligen Clientsteuerungsvorgang, der ausgeführt wird. Weitere Informationen zu den Anforderungen für diesen Parameter für die einzelnen unterstützten Clientsteuerungsvorgänge finden Sie unter WSK Client Control Operations.

Rückgabewert

WskControlClient gibt einen der folgenden NTSTATUS-Codes zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS Der Steuerungsvorgang wurde erfolgreich abgeschlossen. Wenn die WSK-Anwendung einen Zeiger auf ein IRP im Irp--Parameter angegeben hat, wird das IRP mit dem Erfolgsstatus abgeschlossen.
STATUS_PENDING Das WSK-Subsystem konnte den Kontrollvorgang nicht sofort abschließen. Das WSK-Subsystem schließt das IRP ab, nachdem er den Kontrollvorgang abgeschlossen hat. Der Status des Kontrollvorgangs wird im feld IoStatus.Status des IRP zurückgegeben.
STATUS_BUFFER_OVERFLOW Der Ausgabepuffer ist nicht groß genug, um die zurückgegebenen Daten zu enthalten. Die Variable, auf die der OutputSizeReturned Parameter verweist, enthält die erforderliche Puffergröße.
Andere Statuscodes Fehler. Das IRP wird mit dem Fehlerstatus abgeschlossen.

Bemerkungen

Weitere Informationen dazu, wie die Eingabe- und Ausgabepuffer für jeden Clientsteuerungsvorgang verwendet werden, finden Sie unter WSK Client Control Operations.

Wenn die WskControlClient--Funktion STATUS_PENDING zurückgibt, müssen alle Puffer, auf die der InputBuffer Parameter verweist, oder der OutputBuffer Parameter gültig bleiben, bis der IRP abgeschlossen ist. Wenn die WSK-Anwendung die Puffer mit einer der ExAllocateXxx--Funktionen zugeordnet hat, kann der Speicher nicht mit der entsprechenden ExFree-Xxx--Funktion freigegeben werden, bis die IRP abgeschlossen ist. Wenn die WSK-Anwendung die Puffer auf dem Stapel zugeordnet hat, kann sie erst nach Abschluss des IRP von der Funktion zurückgegeben werden, die die WskControlClient--Funktion aufruft.

Hinweis TDI nach Windows Vista in Microsoft Windows-Versionen nicht unterstützt wird. Verwenden Sie stattdessen Windows-Filterplattform oder Winsock Kernel-.
 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform- Universal
Header- wsk.h (include Wsk.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

WSK-Clientsteuerungsvorgänge

WSK_CLIENT

WSK_PROVIDER_DISPATCH

WSK_PROVIDER_NPI

WSK_TRANSPORT

WskCaptureProviderNPI-