Fungsi KsDeviceRegisterAdapterObject (ks.h)

Fungsi KsDeviceRegisterAdapterObject mendaftarkan objek adaptor DMA dengan AVStream untuk melakukan sebar/kumpulkan DMA pada perangkat yang ditentukan. Semua driver yang dikompilasi untuk Win64 harus menggunakan IKsDeviceFunctions::RegisterAdapterObjectEx sebagai gantinya.

Sintaks

void KsDeviceRegisterAdapterObject(
  [in] PKSDEVICE       Device,
  [in] PADAPTER_OBJECT AdapterObject,
  [in] ULONG           MaxMappingsByteCount,
  [in] ULONG           MappingTableStride
);

Parameter

[in] Device

Penunjuk ke struktur KSDEVICE yang mewakili perangkat AVStream untuk mendaftarkan objek adaptor.

[in] AdapterObject

Penunjuk ke struktur DMA_ADAPTER yang dikembalikan oleh IoGetDmaAdapter yang mewakili pengontrol DMA..

[in] MaxMappingsByteCount

Parameter ini menentukan jumlah maksimum byte yang dapat ditangani perangkat untuk satu pemetaan. Memungkinkan AVStream untuk secara otomatis memecah potongan besar memori fisik yang berdekatan menjadi beberapa elemen sebar/kumpulkan untuk perangkat yang memberlakukan batas ukuran pada pemetaan individu dalam transfer DMA. Hentian tidak dijamin terjadi pada batas halaman.

[in] MappingTableStride

Parameter ini menentukan berapa banyak byte yang diperlukan setiap entri dalam tabel pemetaan. Ini harus setidaknya ukuranof (KSMAPPING) dan bisa sebesar yang diperlukan.

Ruang tambahan dapat digunakan oleh minidriver sebagai informasi konteks.

Nilai kembali

Tidak ada

Keterangan

Minidriver yang memanggil KsDeviceRegisterAdapterObject bertanggung jawab untuk memperoleh objek adapter sebelumnya melalui IoGetDmaAdapter.

Perhatikan juga bahwa jika minidriver menentukan bendera KSPIN_FLAG_GENERATE_MAPPINGS untuk pin apa pun pada filter apa pun di perangkat, minidriver harus memanggil KsDeviceRegisterAdapterObject sebelum memproses data apa pun. Informasi selengkapnya tentang bendera ini dapat ditemukan di halaman referensi untuk KSPIN_DESCRIPTOR_EX. Lihat juga Layanan AVStream DMA.

Jika Anda mengatur MaxMappingByteCount ke satu halaman fisik dalam panjang, pemetaan tidak dijamin berada di satu halaman fisik. Selain itu, seperti yang tercantum dalam deskripsi anggota di atas, pengaturan MaxMappingsByteCount tidak menjamin bahwa jeda akan terjadi pada batas halaman. Jika Anda memerlukan hentian pada batas halaman, pertimbangkan untuk tidak menentukan batas ukuran pemetaan; sebagai gantinya, pecahkan pemetaan sebar/kumpulkan yang dikembalikan menjadi potongan yang selaras dengan halaman secara manual.

Lihat juga Mendukung DMA di Driver AVStream 64-Bit.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header ks.h (termasuk Ks.h)
Pustaka Ks.lib
IRQL PASSIVE_LEVEL

Lihat juga

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX