Fungsi VideoPortStartDma (video.h)
Fungsi VideoPortStartDma menyiapkan sistem untuk operasi DMA. Segera setelah sumber daya yang sesuai tersedia, VideoPortStartDma membuat daftar sebar/kumpulkan, menginisialisasi sumber daya sistem, dan memanggil rutinitas HwVidExecuteDma yang disediakan driver miniport video untuk melakukan operasi DMA.
Sintaks
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortStartDma(
[in] IN PVOID HwDeviceExtension,
[in] IN PVP_DMA_ADAPTER VpDmaAdapter,
[in] IN PVOID Mdl,
[in] IN ULONG Offset,
[in, out] IN OUT PULONG pLength,
[in] IN PEXECUTE_DMA ExecuteDmaRoutine,
[in] IN PVOID Context,
[in] IN BOOLEAN WriteToDevice
);
Parameter
[in] HwDeviceExtension
Arahkan ke ekstensi perangkat driver miniport.
[in] VpDmaAdapter
Penunjuk ke struktur VP_DMA_ADAPTER yang mewakili adaptor bus-master. Struktur ini dikembalikan dari panggilan ke VideoPortGetDmaAdapter.
[in] Mdl
Penunjuk ke MDL yang menjelaskan buffer. Penunjuk ini dikembalikan dari panggilan ke fungsi VideoPortLockBuffer driver port video.
[in] Offset
Menentukan offset byte dalam buffer tempat operasi DMA dimulai. Parameter Mdl menjelaskan buffer ini.
[in, out] pLength
Penunjuk ke variabel yang menentukan ukuran transfer yang diminta, dalam byte, dan yang akan menerima ukuran aktual yang akan ditransfer. Variabel akan diperbarui ketika salah satu peristiwa berikut terjadi: Pengembalian VideoPortStartDma atau HwVidExecuteDma dipanggil. Oleh karena itu, aman untuk membaca variabel ini dari dalam HwVidExecuteDma bahkan sebelum VideoPortStartDma kembali.
[in] ExecuteDmaRoutine
Penunjuk ke rutinitas panggilan balik HwVidExecuteDma yang disediakan driver miniport. VideoPortStartDma memanggil rutinitas ini untuk memprogram pendaftaran perangkat keras dan memulai operasi DMA yang sebenarnya.
[in] Context
Arahkan ke konteks yang ditentukan driver untuk diteruskan ke rutinitas panggilan balik HwVidExecuteDma driver miniport. Karena rutinitas panggilan balik HwVidExecuteDma berjalan pada DISPATCH_LEVEL, data yang dituju konteks harus berada dalam memori yang tidak dipagasi.
[in] WriteToDevice
Menentukan arah transfer DMA. Nilai TRUE menunjukkan transfer dari buffer ke perangkat, dan nilai FALSE menunjukkan transfer dari perangkat ke buffer.
Nilai kembali
VideoPortStartDma mengembalikan salah satu kode status berikut:
Menampilkan kode | Deskripsi |
---|---|
NO_ERROR | Operasi berhasil dilakukan. |
ERROR_NOT_ENOUGH_MEMORY | Tidak cukup sumber daya sistem untuk operasi ini. |
Keterangan
Untuk mempersiapkan operasi transfer DMA, VideoPortStartDma:
- Menghapus wilayah memori di cache prosesor host.
- Menyusun daftar sebar/kumpulkan.
- Memanggil panggilan balik HwVidExecuteDma driver miniport video.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows XP dan versi yang lebih baru dari sistem operasi Windows. |
Target Platform | Desktop |
Header | video.h (sertakan Video.h) |
Pustaka | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |