WDF_DMA_ENABLER_CONFIG_FLAGS'enumerazione (wdfdmaenabler.h)
[Si applica solo a KMDF]
Il tipo di enumerazione WDF_DMA_ENABLER_CONFIG_FLAGS definisce i flag usati nella struttura WDF_DMA_ENABLER_CONFIG di un driver.
Sintassi
typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS {
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001,
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER = 0x00000002
} WDF_DMA_ENABLER_CONFIG_FLAGS;
Costanti
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION Valore: 0x00000001 Il flag WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION si applica solo ai profili DMA seguenti:
Per impostazione predefinita, quando WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION non è impostato e il WDF_DMA_PROFILE è uno di quelli nell'elenco precedente, WDF crea un elenco lookaside di elenchi di dispersione/raccolta usati dalla transazione della scheda DMA . Le voci di elenco vengono inizializzate per consentire il massimo specificato lunghezza di trasferimento. Quando la transazione viene eseguita, WDF chiama la funzione di immissione BuildScatterGatherList . Driver di avanzamento avanti non deve impostare questo flag e deve usare uno dei quattro profili visualizzati in precedenza. Quando WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION è impostato e il WDF_DMA_PROFILE è uno di quelli nell'elenco precedente, WDF non crea un elenco lookaside. Quando la transazione viene eseguita, WDF chiama GetScatterGatherList. L'impostazione WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION può comportare una riduzione dell'utilizzo della memoria, in particolare quando la lunghezza massima del trasferimento è grande. Tuttavia, l'impostazione di questo flag può causare l'errore di eseguire operazioni DMA in condizioni di memoria ridotta. Per garantire lo stato di avanzamento quando WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION è impostato, un driver può usare un abilitatore DMA separato o trasferire i dati tramite un buffer comune. |
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER Valore: 0x00000002 Il flag WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER è disponibile a partire dalla versione 1.19 di KMDF. Questo flag richiede anche DMA versione 3. Per selezionare DMA versione 3, impostare il membro WdmDmaVersionOverride di WDF_DMA_ENABLER_CONFIG su 3. Questo flag si applica a tutti i profili DMA. Quando è impostato, WDF non frammenta alcun WDFDMATRANSACTION creato con questo abilitatore in più trasferimenti DMA. Se non è possibile, tenta di inizializzare o eseguire la transazione non riesce. Questa opzione è destinata ai dispositivi che devono ricevere tutti i dati in una singola operazione DMA. I driver hanno anche la possibilità di specificare questa opzione su un livello di transazione con WdfDmaTransactionSetSingleTransferRequirement. Per altre informazioni, vedere Uso di DMA trasferimento singolo. |
Commenti
È possibile specificare un OR bit per bit valido dei valori in questa pagina per il membro Flag della struttura WDF_DMA_ENABLER_CONFIG .
Requisiti
Requisito | Valore |
---|---|
Versione KMDF minima | 1.11 |
Intestazione | wdfdmaenabler.h (include Wdf.h) |