Freigeben über


FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS 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 VmbPacketSendWithExternalPfns Funktion sendet die Daten in einem Paketpuffer oder externen Daten als Array von Seitenframezahlen (PFNs). 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_WITH_EXTERNAL_PFNS FnVmbPacketSendWithExternalPfns;

NTSTATUS FnVmbPacketSendWithExternalPfns(
  __drv_aliasesMem VMBPACKET PacketObject,
  PVOID Buffer,
  UINT32 BufferLength,
  PPFN_NUMBER ExternalDataPfns,
  UINT32 PfnLength,
  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.

ExternalDataPfns

Ein Array von Seitenrahmenzahlen, die einen dem Paket zugeordneten Datenpuffer beschreiben.

PfnLength

Die Anzahl der PFNs, die von ExternalDataPfnsgesendet werden sollen. Der endgültige referenzierte Arrayindex ist ExternalDataPfns[PfnOffset+PfnLength-1] einschließlich.

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. Dieses Kennzeichen muss festgelegt werden.
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

Diese Funktion unterscheidet sich von der VmbPacketSend- Funktion, da sie das Übergeben eines Arrays von PFNs und effektiv physischen Adressen ermöglicht.

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

VmbPacketSend-