Freigeben über


FN_VMB_PACKET_SEND Rückruffunktion (vmbuskernelmodeclientlibapi.h)

[Einige Informationen beziehen sich auf vorab veröffentlichte Produkte, die vor der kommerziellen Veröffentlichung erheblich geändert werden können. Microsoft übernimmt keine Gewährleistungen, ausdrücklich oder konkludent in Bezug auf die hier bereitgestellten Informationen.]

Die VmbPacketSend--Funktion sendet die Daten in einem Paketpuffer oder einer externen Speicherbeschreibungsliste (Memory Descriptor List, MDL). Die Funktion ordnet diese Daten dem VMBus-Paketobjekt zu, das das Paket während der gesamten Lebensdauer der Transaktion darstellt.

Syntax

FN_VMB_PACKET_SEND FnVmbPacketSend;

NTSTATUS FnVmbPacketSend(
  __drv_aliasesMem VMBPACKET PacketObject,
  PVOID Buffer,
  UINT32 BufferLength,
  PMDL ExternalDataMdl,
  UINT32 Flags
)
{...}

Parameter

PacketObject

Ein Handle für das VMBus-Paketobjekt.

Buffer

Ein Puffer, der das Befehlspaket enthält, das über den VMBus-Ringpuffer gesendet wird.

BufferLength

Die Länge des Puffers im Buffer-Parameter in Byte.

ExternalDataMdl

Eine MDL, die einen dem Paket zugeordneten Datenpuffer beschreibt.

Flags

Flaggen. Im Folgenden sind relevante Flags aufgeführt:

Wert Bedeutung
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Dieses Paket kann nicht als vollständig betrachtet werden, und seine Ressourcen können erst freigegeben werden, wenn ein Vervollständigungspaket vom entgegengesetzten Endpunkt zurückkommt.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
Der Inlinepuffer wird ausgelagert und muss entsprechend behandelt werden. Dies bedeutet, dass er kopiert werden muss, bevor er die DPC-Ebene eingibt. Das Probingen von Benutzermoduspuffern oder die Behandlung von Zugriffsverletzungen liegt in der Verantwortung des Aufrufers.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist, oder einen entsprechenden NTSTATUS-Fehlercode andernfalls.

Bemerkungen

Informationen zu anderen Methoden zum Senden von Paketen finden Sie im VmbPacketSendWithExternalMdl, VmbChannelSendSynchronousRequestund VmbPacketSendWithExternalPfns Funktionen.

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
mindestens unterstützte Client- Windows 10, Version 1803
Header- vmbuskernelmodeclientlibapi.h

Siehe auch

VmbChannelSendSynchronousRequest

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns