Partager via


FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS fonction de rappel (vmbuskernelmodeclientlibapi.h)

[Certaines informations concernent le produit préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici.]

La fonction VmbPacketSendWithExternalPfns envoie les données dans une mémoire tampon de paquets ou des données externes sous la forme d’un tableau de numéros de cadre de page (PFN). La fonction associe ces données à l’objet de paquet VMBus, qui représente le paquet tout au long de la durée de vie de la transaction.

Syntaxe

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
)
{...}

Paramètres

PacketObject

Handle de l’objet de paquet VMBus.

Buffer

Mémoire tampon qui contient le paquet de commandes envoyé via la mémoire tampon en anneau VMBus.

BufferLength

Longueur, en octets, de la mémoire tampon dans le paramètre Buffer.

ExternalDataPfns

Tableau de numéros de cadre de page qui décrivent une mémoire tampon de données associée au paquet.

PfnLength

Nombre de PFN à envoyer à partir de ExternalDataPfns. L’index de tableau référencé final est ExternalDataPfns[PfnOffset+PfnLength-1] inclusif.

Flags

Drapeaux. Les indicateurs suivants sont pertinents :

Valeur Signification
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Ce paquet ne peut pas être considéré comme terminé et ses ressources ne peuvent pas être libérées tant qu’un paquet d’achèvement ne revient pas du point de terminaison opposé. Cet indicateur doit être défini.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
La mémoire tampon inline est paginée et doit être traitée en conséquence, ce qui signifie qu’elle doit être copiée avant d’entrer le niveau DPC. La détection des mémoires tampons en mode utilisateur ou la gestion des violations d’accès est la responsabilité de l’appelant.

Valeur de retour

Retourne STATUS_SUCCESS si l’opération réussit, ou si un code d’erreur NTSTATUS approprié sinon.

Remarques

Cette fonction diffère de la fonction VmbPacketSend dans laquelle elle permet de transmettre un tableau d’adresses PFN, efficacement physiques.

Important

Cette fonction est appelée par le biais de l’interface KMCL (VmBus Kernel Mode Client Library), fournie par le pilote de bus Vmbkmcl.sys. Il s’agit d’une fonction cliente accessible à partir de la structure KMCL_CLIENT_INTERFACE_V1.

Pour plus d’informations, consultez la section Remarques de la KMCL_CLIENT_INTERFACE_V1.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1803
d’en-tête vmbuskernelmodeclientlibapi.h

Voir aussi

VmbPacketSend