Bagikan melalui


Menulis Rutinitas AdapterControl

Sebagian besar driver perangkat DMA memiliki rutinitas AdapterControl , yang bertanggung jawab untuk memulai operasi DMA. (Driver yang tidak memerlukan rutinitas AdapterControl termasuk yang menggunakan DMA sebar/kumpulkan dan yang menggunakan common-buffer, DMA bus-master.)

Ketika driver memanggil AllocateAdapterChannel, rutinitas AdapterControl-nya dijalankan segera jika pengontrol DMA sistem atau adaptor master bus tersedia untuk operasi DMA, dan jika tersedia cukup register peta. Jika tidak, rutinitas AdapterControl diantrekan hingga sumber daya ini tersedia.

Jika rutinitas AdapterControl driver mengembalikan KeepObject atau DeallocateObjectKeepRegisters (dengan demikian mempertahankan saluran pengontrol DMA sistem atau adaptor bus-master untuk operasi transfer tambahan), Dpc driver RutinitasForIsr atau CustomDpc bertanggung jawab untuk merilis objek adaptor atau register peta dengan memanggil FreeAdapterChannel atau FreeMapRegisters sebelum rutinitas DPC menyelesaikan IRP saat ini dan mengembalikan kontrol.