Antarmuka IDmaChannel (portcls.h)
Antarmuka IDmaChannel
menyediakan abstraksi saluran DMA dan parameter buffer dan penggunaan DMA terkait. Driver port WaveCyclic atau WavePci mengimplementasikan antarmuka ini dan mengeksposnya ke driver miniport WaveCyclic atau WavePci. Driver miniport mendapatkan referensi ke implementasi driver port objek IDmaChannel
dengan memanggil salah satu metode NewXxxDmaChannel driver port:
IDmaChannel
jika membutuhkan kemampuan yang tidak ada dalam implementasi default driver port. Untuk informasi selengkapnya tentang ini, lihat Filter Gelombang. Ketika driver port memanggil metode NewStream driver miniport (misalnya, IMiniportWaveCyclic::NewStream), metode menghasilkan objek driver IDmaChannel
miniport ke driver port. IDmaChannel
mewarisi dari antarmuka IUnknown .
Implementasi IDmaChannel
antarmuka saat ini di Portcls.sys tidak aman multithread karena tidak menyinkronkan akses ke data bersama secara internal. Biasanya, satu utas driver memanggil metode IDmaChannel
objek . Dalam hal ini, tidak ada risiko dua panggilan metode secara bersamaan mengakses data yang sama. Namun, jika beberapa utas berpotensi memanggil metode objek secara bersamaan IDmaChannel
, penulis driver harus menyinkronkan panggilan metode untuk mencegah kerusakan data internal.
Untuk informasi selengkapnya, lihat Objek Saluran DMA.
Catatan
Microsoft mendukung lingkungan yang beragam dan inklusif. Artikel ini berisi referensi ke terminologi yang diakui panduan gaya Microsoft untuk komunikasi bebas bias sebagai pengecualian. Kata atau frasa digunakan dalam artikel ini untuk konsistensi karena saat ini muncul di perangkat lunak. Ketika perangkat lunak diperbarui untuk menghapus bahasa, artikel ini akan diperbarui agar selaras.
Warisan
Antarmuka IDmaChannel mewarisi dari antarmuka IUnknown.
Metode
Antarmuka IDmaChannel memiliki metode ini.
IDmaChannel::AllocateBuffer Metode AllocateBuffer mengalokasikan buffer umum yang dapat diakses oleh driver port dan perangkat keras DMA. |
IDmaChannel::AllocatedBufferSize Metode AllocatedBufferSize mengembalikan ukuran buffer yang dialokasikan. |
IDmaChannel::BufferSize Metode BufferSize mengembalikan ukuran dalam byte buffer data saluran DMA. |
IDmaChannel::CopyFrom Metode CopyFrom menyalin data sampel dari buffer umum saluran DMA ke buffer tujuan yang ditentukan. |
IDmaChannel::CopyTo Metode CopyTo menyalin data sampel ke buffer umum saluran DMA dari buffer sumber yang ditentukan. |
IDmaChannel::FreeBuffer Metode FreeBuffer membebaskan buffer yang dialokasikan oleh panggilan sebelumnya ke IDmaChannel::AllocateBuffer. |
IDmaChannel::GetAdapterObject Metode GetAdapterObject mengembalikan objek adaptor perangkat keras saluran DMA. |
IDmaChannel::MaximumBufferSize Metode MaximumBufferSize mengembalikan ukuran dalam byte buffer terbesar yang dikonfigurasi objek saluran DMA ini untuk didukung. |
IDmaChannel::P hysicalAddress Metode PhysicalAddress mengembalikan alamat fisik buffer yang dialokasikan. |
IDmaChannel::SetBufferSize Metode SetBufferSize mengatur ukuran buffer saluran DMA saat ini. |
IDmaChannel::SystemAddress Metode SystemAddress mengembalikan alamat sistem buffer yang dialokasikan. |
IDmaChannel::TransferCount Metode TransferCount mengembalikan ukuran dalam byte buffer yang saat ini sedang ditransfer oleh objek DMA subordinat. |
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | portcls.h |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk