Bagikan melalui


enumerasi WDF_DMA_ENABLER_CONFIG_FLAGS (wdfdmaenabler.h)

[Berlaku untuk KMDF saja]

Jenis enumerasi WDF_DMA_ENABLER_CONFIG_FLAGS menentukan bendera yang digunakan dalam struktur WDF_DMA_ENABLER_CONFIG driver.

Sintaks

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;

Konstanta

 
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION
Nilai: 0x00000001
Bendera WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION hanya berlaku untuk profil DMA berikut:


  • WdfDmaProfileScatterGather

  • WdfDmaProfileScatterGather64

  • WdfDmaProfileScatterGatherDuplex

  • WdfDmaProfileScatterGather64Duplex



Secara default, ketika WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION tidak diatur dan WDF_DMA_PROFILE adalah salah satu dari yang ada di daftar sebelumnya, WDF
membuat daftar tampilan daftar sebar/kumpulkan yang digunakan oleh transaksi adaptor DMA ini
Objek. Entri daftar diinisialisasi untuk memperbolehkan maksimum yang ditentukan
panjang transfer. Ketika transaksi dijalankan, WDF memanggil fungsi entri BuildScatterGatherList . Meneruskan driver kemajuan
tidak boleh mengatur bendera ini dan harus menggunakan salah satu dari empat profil yang ditampilkan sebelumnya.

Saat WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION diatur dan WDF_DMA_PROFILE adalah salah satu dari yang ada di daftar sebelumnya, WDF tidak membuat daftar lookaside. Ketika transaksi dijalankan, WDF memanggil GetScatterGatherList.

Pengaturan WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION dapat mengakibatkan pengurangan penggunaan memori, terutama ketika panjang transfer maksimum besar. Namun, pengaturan bendera ini dapat menyebabkan kegagalan untuk melakukan operasi DMA dalam kondisi memori rendah. Untuk menjamin kemajuan penerusan saat WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION diatur, driver mungkin menggunakan pengaktif DMA terpisah, atau memantulkan transfer melalui buffer umum.
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER
Nilai: 0x00000002
Bendera WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER tersedia mulai versi 1.19 KMDF. Bendera ini juga memerlukan DMA versi 3.
Untuk memilih DMA versi 3, atur anggota WdmDmaVersionOverridedari WDF_DMA_ENABLER_CONFIG ke 3.

Bendera ini berlaku untuk semua profil DMA. Ketika diatur, WDF tidak memfragmentasi WDFDMATRANSACTION apa pun yang dibuat dengan pengaktif ini ke dalam beberapa transfer DMA. Jika ini tidak memungkinkan, upaya untuk menginisialisasi atau menjalankan transaksi gagal. Opsi ini ditujukan untuk perangkat yang perlu menerima semua data dalam satu operasi DMA.

Driver juga memiliki opsi untuk menentukan ini pada tingkat per transaksi dengan WdfDmaTransactionSetSingleTransferRequirement.

Untuk informasi selengkapnya, lihat Menggunakan DMA Transfer Tunggal.

Keterangan

Anda dapat menentukan bitwise ATAU nilai yang valid di halaman ini untuk anggota Bendera struktur WDF_DMA_ENABLER_CONFIG .

Persyaratan

Persyaratan Nilai
Versi KMDF minimum 1.11
Header wdfdmaenabler.h (termasuk Wdf.h)

Lihat juga

WDF_DMA_ENABLER_CONFIG

WDF_DMA_PROFILE

WdfDmaTransactionSetSingleTransferRequirement