FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS 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 alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui.

La funzione VmbPacketSendWithExternalPfns invia i dati in un buffer di pacchetti o dati esterni come matrice di numeri di frame di pagina (PFN). La funzione associa i dati all'oggetto pacchetto VMBus, che rappresenta il pacchetto per tutta la durata della transazione.

Sintassi

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

Parametri

PacketObject

Handle per l'oggetto pacchetto VMBus.

Buffer

Buffer che contiene il pacchetto di comando inviato tramite il buffer circolare VMBus.

BufferLength

Lunghezza, in byte, del buffer nel parametro Buffer .

ExternalDataPfns

Matrice di numeri di frame di pagina che descrivono un buffer di dati associato al pacchetto.

PfnLength

Numero di PFN da inviare da ExternalDataPfns. L'indice di matrice a cui si fa riferimento finale è ExternalDataPfns[PfnOffset+PfnLength-1] inclusivo.

Flags

Bandiere. Di seguito sono riportati flag pertinenti:

Valore Significato
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Questo pacchetto non può essere considerato completo e le relative risorse non possono essere rilasciate finché non viene restituito un pacchetto di completamento dall'endpoint opposto. Questo flag deve essere impostato.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
Il buffer inline viene eseguito il paging e deve essere trattato di conseguenza, il che significa che deve essere copiato prima di entrare a livello DPC. Il probe dei buffer in modalità utente o la gestione delle violazioni di accesso è responsabilità del chiamante.

Valore restituito

Restituisce STATUS_SUCCESS se l'operazione ha esito positivo o un codice di errore NTSTATUS appropriato in caso contrario.

Commenti

Questa funzione differisce dalla funzione VmbPacketSend in quanto consente di passare una matrice di pfn, in modo efficace indirizzi fisici.

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.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1803
Intestazione vmbuskernelmodeclientlibapi.h

Vedi anche

VmbPacketSend