FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST Rückruffunktion (vmbuskernelmodeclientlibapi.h)

[Einige Informationen beziehen sich auf die Vorabversion, die vor der kommerziellen Freigabe möglicherweise wesentlichen Änderungen unterliegt. Microsoft übernimmt für die hier bereitgestellten Informationen keine Gewährleistung, weder ausdrücklicher noch impliziter Art.]

Die VmbChannelSendSynchronousRequest-Funktion sendet ein Paket an den anderen Endpunkt und wartet auf eine Antwort.

Syntax

FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST FnVmbChannelSendSynchronousRequest;

NTSTATUS FnVmbChannelSendSynchronousRequest(
  VMBCHANNEL Channel,
  PVOID Buffer,
  UINT32 BufferSize,
  PMDL ExternalDataMdl,
  UINT32 Flags,
  PVOID CompletionBuffer,
  PUINT32 CompletionBufferSize,
  PLARGE_INTEGER Timeout
)
{...}

Parameter

Channel

Ein Handle für den Kanal.

Buffer

Zu sendende Daten.

BufferSize

Die Größe der zu sendenden Daten in Bytes.

ExternalDataMdl

Eine Speicherdeskriptorliste (Memory Descriptor List, MDL), die einen zusätzlichen zu sendenden Puffer beschreibt.

Flags

Standardflags.

CompletionBuffer

Puffer, in dem die Ergebnisse des Vervollständigungspakets gespeichert werden sollen.

CompletionBufferSize

Die Größe des CompletionBuffer-Werts in Bytes. Dieser Wert muss auf die nächsten 8 Bytes aufgerundet werden, andernfalls schlägt die Funktion fehl. Gibt bei Erfolg die Anzahl der in CompletionBuffer geschriebenen Bytes zurück.

Timeout

Ein Timeout im Stil des KeWaitForSingleObject-Routings . Nach Ablauf dieser Zeit wird das Paket abgebrochen. Bei einem Timeout von null (0) wird ein Paket nicht im Ringpuffer in die Warteschlange eingereiht.

Rückgabewert

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Funktionen wurden erfolgreich abgeschlossen.
STATUS_BUFFER_OVERFLOW
Das Paket passte nicht in den Puffer und wurde nicht in die Warteschlange eingereiht.
STATUS_CANCELLED
Das Paket wurde abgebrochen.
STATUS_DEVICE_REMOVED
Der Kanal wird heruntergefahren.

Hinweise

Clients können diese Funktion mit einer beliebigen Kombination von Parametern ausführen.

Der Stamm kann diesen nur aufrufen, wenn *Timeout == 0 und das flag VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION nicht festgelegt ist.

Wichtig

Diese Funktion wird über die KMCL-Schnittstelle (VmBus Kernel Mode Client Library) aufgerufen, die vom Vmbkmcl.sys Bustreiber bereitgestellt wird. Dies ist eine Clientfunktion, auf die über die KMCL_CLIENT_INTERFACE_V1-Struktur zugegriffen wird.

Weitere Informationen finden Sie im Abschnitt Hinweise des KMCL_CLIENT_INTERFACE_V1.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1803
Kopfzeile vmbuskernelmodeclientlibapi.h

Weitere Informationen

KeWaitForSingleObject