WDF_DMA_ENABLER_CONFIG_FLAGS-Enumeration (wdfdmaenabler.h)
[Gilt nur für KMDF]
Der WDF_DMA_ENABLER_CONFIG_FLAGS-Enumerationstyp definiert Flags, die in der WDF_DMA_ENABLER_CONFIG-Struktur eines Treibers verwendet werden.
Syntax
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;
Konstanten
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION Wert: 0x00000001 Das flag WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION gilt nur für die folgenden DMA-Profile:
Wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION nicht festgelegt ist und der WDF_DMA_PROFILE eine der in der vorherigen Liste aufgeführten ist, ist WDF standardmäßig nicht festgelegt. erstellt eine Lookaside-Liste von Punkt-/Gather-Listen, die von der Transaktion dieses DMA-Adapters verwendet wird. -Objekte. Die Listeneinträge werden initialisiert, um das angegebene Maximum zuzulassen. Übertragungslänge. Wenn die Transaktion ausgeführt wird, ruft WDF die BuildScatterGatherList-Eintragsfunktion auf. Vorwärts-Fortschrittstreiber darf dieses Flag nicht festlegen und muss eines der vier zuvor gezeigten Profile verwenden. Wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION festgelegt ist und der WDF_DMA_PROFILE einer der in der vorherigen Liste aufgeführten ist, erstellt WDF keine Suchliste. Wenn die Transaktion ausgeführt wird, ruft WDF GetScatterGatherList auf. Das Festlegen WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION kann zu einer geringeren Speicherauslastung führen, insbesondere wenn die maximale Übertragungslänge groß ist. Das Festlegen dieses Flags kann jedoch dazu führen, dass DMA-Vorgänge bei geringem Arbeitsspeicher nicht ausgeführt werden. Um den Vorwärtsfortschritt zu gewährleisten, wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION festgelegt ist, kann ein Treiber einen separaten DMA-Enabler verwenden oder Übertragungen über einen gemeinsamen Puffer abspringen. |
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER Wert: 0x00000002 Das flag WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER ist ab Version 1.19 von KMDF verfügbar. Dieses Flag erfordert auch DMA-Version 3. Um DMA-Version 3 auszuwählen, legen Sie das WdmDmaVersionOverride-Element von WDF_DMA_ENABLER_CONFIG auf 3 fest. Dieses Flag gilt für alle DMA-Profile. Wenn sie festgelegt ist, fragmentiert WDFDMATRANSACTION, die mit diesem Enabler erstellt wurde, nicht in mehrere DMA-Übertragungen. Wenn dies nicht möglich ist, schlagen Versuche, die Transaktion zu initialisieren oder auszuführen, fehl. Diese Option ist für Geräte vorgesehen, die alle Daten in einem einzelnen DMA-Vorgang empfangen müssen. Treiber haben auch die Möglichkeit, dies auf Transaktionsebene mit WdfDmaTransactionSetSingleTransferRequirement anzugeben. Weitere Informationen finden Sie unter Verwenden von Single Transfer DMA. |
Hinweise
Sie können ein gültiges bitweises OR der Werte auf dieser Seite für den Flags-Member der WDF_DMA_ENABLER_CONFIG-Struktur angeben.
Anforderungen
Anforderung | Wert |
---|---|
KMDF-Mindestversion | 1.11 |
Kopfzeile | wdfdmaenabler.h (einschließen von Wdf.h) |