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:

IPortWavepci::NewMasterDmaChannel

IPortWaveCyclic::NewMasterDmaChannel

IPortWaveCyclic::NewSlaveDmaChannel

Driver miniport juga dapat menerapkan antarmukanya sendiri 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