Fungsi WdfDmaEnablerConfigureSystemProfile (wdfdmaenabler.h)
[Hanya berlaku untuk KMDF]
Metode WdfDmaEnablerConfigureSystemProfile mengonfigurasi pengaturan khusus perangkat keras untuk pengaktif DMA mode sistem dan menyelesaikan inisialisasi sumber daya.
Sintaks
NTSTATUS WdfDmaEnablerConfigureSystemProfile(
[in] WDFDMAENABLER DmaEnabler,
[in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
[in] WDF_DMA_DIRECTION ConfigDirection
);
Parameter
[in] DmaEnabler
Handel ke objek pengaktif DMA.
[in] ProfileConfig
Penunjuk ke struktur WDF_DMA_SYSTEM_PROFILE_CONFIG . Driver harus menginisialisasi struktur ini dengan memanggil WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT.
[in] ConfigDirection
Nilai jenis WDF_DMA_DIRECTION yang menentukan arah operasi transfer DMA. Jika nilai WDF_DMA_PROFILE untuk pengaktif ini bukan WdfDmaProfileSystemDuplex, kerangka kerja mengabaikan parameter ini.
Nilai kembali
WdfDmaEnablerConfigureSystemProfile mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode mungkin mengembalikan salah satu nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Driver meminta konfigurasi DMA yang tidak didukung pada sistem operasi saat ini. |
|
Driver disediakan NULL dalam parameter ProfileConfig . |
|
Anggota Ukuran struktur yang ditujukan oleh parameter ProfileConfig tidak sama dengan ukuran struktur WDF_DMA_SYSTEM_PROFILE_CONFIG . |
|
Anggota DmaDescriptor dari struktur yang diarahkan oleh parameter ProfileConfig adalah NULL atau parameter ConfigDirection berisi nilai yang tidak valid. |
Keterangan
Sebelum memanggil WdfDmaEnablerConfigureSystemProfile, driver harus memanggil WdfDmaEnablerCreate untuk membuat objek enabler.
Driver biasanya memanggil WdfDmaEnablerConfigureSystemProfile dari fungsi panggilan balik EvtDevicePrepareHardware .
Jika driver Anda menentukan profil dupleks saat disebut WdfDmaEnablerCreate, nilai parameter ConfigDirection metode WdfDmaEnablerConfigureSystemProfile harus WdfDmaDirectionReadFromDevice untuk mendapatkan struktur DMA_ADAPTER untuk operasi baca dan WdfDmaDirectionWriteToDevice untuk mendapatkan struktur DMA_ADAPTER untuk operasi tulis.
Jika pengaktif DMA adalah pengaktif dupleks, driver harus menginisialisasi arah tertentu sebelum dapat menggunakannya.
Jika driver Anda tidak menentukan profil dupleks, driver dapat menentukan WdfDmaDirectionReadFromDevice atau WdfDmaDirectionWriteToDevice.
Contoh
Contoh kode berikut berasal dari fungsi panggilan balik EvtDevicePrepareHardware driver. Contoh ini menginisialisasi struktur WDF_DMA_SYSTEM_PROFILE_CONFIG dan memanggil WdfDmaEnablerConfigureSystemProfile.
WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;
PHYSICAL_ADDRESS pa;
pa.QuadPart = 0;
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,
pa,
Width8Bits,
partial);
systemDmaConfig.DemandMode = true;
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,
&systemDmaConfig,
WdfDmaDirectionReadFromDevice);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Target Platform | Universal |
Versi KMDF minimum | 1.11 |
Header | wdfdmaenabler.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.) |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf) |