enumerazione WDF_DEVICE_IO_TYPE (wudfddi_types.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Nessuna nuova funzionalità viene aggiunta a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedere Introduzione con UMDF.]

L'enumerazione WDF_DEVICE_IO_TYPE viene usata per specificare un metodo per l'accesso ai buffer di dati.

Sintassi

typedef enum _WDF_DEVICE_IO_TYPE {
  WdfDeviceIoUndefined,
  WdfDeviceIoNeither,
  WdfDeviceIoBuffered,
  WdfDeviceIoDirect,
  WdfDeviceIoBufferedOrDirect,
  WdfDeviceIoMaximum
} WDF_DEVICE_IO_TYPE, *PWDF_DEVICE_IO_TYPE;

Costanti

 
WdfDeviceIoUndefined
Riservato per l'utilizzo nel sistema.
WdfDeviceIoNeither
Riservato per l'utilizzo nel sistema.
WdfDeviceIoBuffered
UMDF e driver usano I/O con buffer per accedere ai buffer dei dati.
WdfDeviceIoDirect
UMDF e driver usano i/O diretti per accedere ai buffer di dati.
WdfDeviceIoBufferedOrDirect
UMDF e il driver possono usare I/O con buffer o I/O diretto per accedere ai buffer dei dati.
WdfDeviceIoMaximum
Riservato per l'utilizzo nel sistema.

Commenti

L'enumerazione WDF_DEVICE_IO_TYPE viene usata come input per IWDFDeviceInitialize2::SetIoTypePreference e come output da IWDFIoRequest2::GetEffectiveIoType.

Quando si sceglie un tipo di I/O per il driver, è consigliabile usare le linee guida seguenti:

  • L'I/O con buffer offre la massima sicurezza e affidabilità, perché le applicazioni e i driver accedono a copie separate dei dati. Inoltre, l'I/O con buffer offre prestazioni ottimali se la maggior parte dei trasferimenti di dati è relativamente piccola (in genere due pagine di memoria o meno).
  • I/O diretto offre prestazioni ottimali se la maggior parte delle richieste di I/O trasferisce grandi quantità di dati. Tuttavia, le applicazioni e i driver accedono a una singola copia dei dati. Pertanto, il driver deve copiare i parametri specificati dall'applicazione nella memoria del driver locale prima di convalidare i parametri per assicurarsi che l'applicazione non modifica i parametri dopo la convalida. Se il driver deve convalidare grandi quantità di dati dell'applicazione, l'I/O memorizzato nel buffer potrebbe essere una scelta migliore perché il driver non deve copiare i dati prima di convalidarlo.
  • In genere, un driver di filtro che può risiedere in diversi stack di driver ed esegue un'elaborazione ridotta dei dati dell'applicazione può supportare sia I/O con buffer che I/O diretto e quindi può specificare WdfDeviceIoBufferedOrDirect. Tuttavia, se il driver convalida i parametri specificati dall'applicazione, deve copiarli prima quando viene usato l'I/O diretto.
Per altre informazioni sull'accesso ai buffer di dati di una richiesta di I/O, vedere Accesso ai buffer dei dati in UMDF-Based driver.

Per la versione kmDF di questa enumerazione, vedere WDF_DEVICE_IO_TYPE.

Requisiti

Requisito Valore
Versione UMDF minima 1,9
Intestazione wudfddi_types.h (includere Wudfddi.h)

Vedi anche

IWDFDeviceInitialize2::SetIoTypePreference

IWDFIoRequest2::GetEffectiveIoType

WDF_DEVICE_IO_BUFFER_RETRIEVAL