FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST fonction de rappel (vmbuskernelmodeclientlibapi.h)

[Certaines informations portent sur la préversion du produit, qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.]

La fonction VmbChannelSendSynchronousRequest envoie un paquet au point de terminaison opposé et attend une réponse.

Syntaxe

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

Paramètres

Channel

Handle pour le canal.

Buffer

Données à envoyer.

BufferSize

Taille, en octets, des données à envoyer.

ExternalDataMdl

Liste de descripteurs de mémoire (MDL) qui décrit une mémoire tampon supplémentaire à envoyer.

Flags

Indicateurs standard.

CompletionBuffer

Mémoire tampon dans laquelle stocker les résultats du paquet d’achèvement.

CompletionBufferSize

Taille, en octets, de la valeur CompletionBuffer . Cette valeur doit être arrondie à 8 octets les plus proches, sinon la fonction échoue. En cas de réussite, retourne le nombre d’octets écrits dans CompletionBuffer.

Timeout

Délai d’expiration dans le style du routage KeWaitForSingleObject . Une fois ce temps écoulé, le paquet est annulé. Pour un délai d’expiration de zéro (0), si un paquet ne se trouve pas dans la mémoire tampon en anneau, il n’est pas mis en file d’attente.

Valeur retournée

Code de retour Description
STATUS_SUCCESS
Les fonctions se sont terminées avec succès.
STATUS_BUFFER_OVERFLOW
Le paquet ne tient pas dans la mémoire tampon et n’est pas mis en file d’attente.
STATUS_CANCELLED
Le paquet a été annulé.
STATUS_DEVICE_REMOVED
Le canal est en cours d’arrêt.

Remarques

Les clients peuvent exécuter cette fonction avec n’importe quelle combinaison de paramètres.

La racine peut l’appeler uniquement si *Timeout == 0 et que l’indicateur VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION n’est pas défini.

Important

Cette fonction est appelée par le biais de l’interface KMCL (Kernel Mode Client Library) VMBus, 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 du KMCL_CLIENT_INTERFACE_V1.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 version 1803
En-tête vmbuskernelmodeclientlibapi.h

Voir aussi

KeWaitForSingleObject