Condividi tramite


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 garanzie, esplicite o implicite, relativamente alle informazioni fornite qui.

La funzione VmbPacketSendWithExternalPfns invia i dati in un buffer di pacchetti o dati esterni come matrice di numeri di fotogrammi di pagina (PFN). La funzione associa tali 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 i 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 fino a quando un pacchetto di completamento non viene restituito dall'endpoint opposto. Questo flag deve essere impostato.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
Il buffer inline viene 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.

Osservazioni

Questa funzione differisce dalla funzione VmbPacketSend in quanto consente di passare una matrice di nomi PFN, in modo efficace gli 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.

Fabbisogno

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

Vedere anche

VmbPacketSend