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.
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 |