Freigeben über


FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS 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 VmbPacketSendWithExternalPfns-Funktion sendet die Daten in einem Paketpuffer oder externen Daten als Array von Seitenrahmenzahlen (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 Bytes.

ExternalDataPfns

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

PfnLength

Die Anzahl der PFNs, die von ExternalDataPfns gesendet werden sollen. Der endgültige Arrayindex, auf den verwiesen wird, ist ExternalDataPfns[PfnOffset+PfnLength-1] inklusive.

Flags

Flaggen. Im Folgenden sind relevante Flags aufgeführt:

Wert Bedeutung
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Dieses Paket kann nicht als abgeschlossen betrachtet werden, und seine Ressourcen können erst freigegeben werden, wenn ein Abschlusspaket vom entgegengesetzten Endpunkt zurückkommt. Dieses Flag muss festgelegt werden.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
Der Inlinepuffer ist ausgelagert und muss entsprechend behandelt werden, was bedeutet, dass er vor dem Eintritt in die DPC-Ebene kopiert werden muss. Das Testen von Puffern im Benutzermodus oder die Behandlung von Zugriffsverstößen liegt in der Verantwortung des Aufrufers.

Rückgabewert

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

Hinweise

Diese Funktion unterscheidet sich von der VmbPacketSend-Funktion darin, dass sie die Übergabe eines Arrays von PFNs ermöglicht, d. h. physische Adressen.

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

VmbPacketSend