Condividi tramite


FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST funzione di callback (vmbuskernelmodeclientlibapi.h)

[Alcune informazioni riguardano il prodotto non rilasciato che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non fornisce garanzie, esplicite o implicite, relativamente alle informazioni fornite qui.

La funzione VmbChannelSendSynchronousRequest invia un pacchetto all'endpoint opposto e attende una risposta.

Sintassi

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

Parametri

Channel

Handle per il canale.

Buffer

Dati da inviare.

BufferSize

Dimensioni, in byte, dei dati da inviare.

ExternalDataMdl

Elenco dei descrittori di memoria (MDL) che descrive un buffer aggiuntivo da inviare.

Flags

Flag standard.

CompletionBuffer

Buffer in cui archiviare i risultati dei pacchetti di completamento.

CompletionBufferSize

Dimensione, in byte, del valore CompletionBuffer. Questo valore deve essere arrotondato fino a 8 byte più vicino oppure la funzione ha esito negativo. In caso di esito positivo, restituisce il numero di byte scritti in CompletionBuffer.

Timeout

Timeout nello stile del routing KeWaitForSingleObject. Dopo questo intervallo di tempo, il pacchetto viene annullato. Per un timeout pari a zero (0), se un pacchetto non si fir nel buffer circolare, non viene accodato.

Valore restituito

Codice restituito Descrizione
STATUS_SUCCESS
Le funzioni sono state completate correttamente.
STATUS_BUFFER_OVERFLOW
Il pacchetto non rientra nel buffer e non è stato accodato.
STATUS_CANCELLED
Il pacchetto è stato annullato.
STATUS_DEVICE_REMOVED
Il canale viene arrestato.

Osservazioni

I client possono eseguire questa funzione con qualsiasi combinazione di parametri.

La radice può chiamare questa operazione solo se *Timeout == 0 e il flag VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION non è impostato.

Importante

Questa funzione viene chiamata tramite l'interfaccia VMBus Kernel Mode Client Library (KMCL), fornita dal driver del bus di Vmbkmcl.sys. Si tratta di una funzione client a cui si accede dalla struttura KMCL_CLIENT_INTERFACE_V1.

Per altre informazioni, vedere la sezione Osservazioni del KMCL_CLIENT_INTERFACE_V1.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 1803
intestazione vmbuskernelmodeclientlibapi.h

Vedere anche

KeWaitForSingleObject