Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Paket tabanlı DMA kullanan alt cihazların sürücüleri, DMA aktarımı isteyen bir IRP'yi işlerken aşağıdaki genel destek yordamlarını çağırır:
Sistem DMA denetleyicisini tahsis etmeye çalışmadan hemen önce KeFlushIoBuffers (daha fazla bilgi için bkz. Önbellek Tutarlılığını Koruma)
Sürücü cihazını DMA için programlamaya hazır olduğunda ve sistem DMA denetleyicisine ihtiyaç duyduğunda AllocateAdapterChannel
AllocateAdapterChannel, sürücünün AdapterControl işlevini çağırır.
MmGetMdlVirtualAddress MDL'ye dizin almak için maptransfer ilk çağrıda parametre olarak gereklidir
Sistem DMA denetleyicisini aktarım işlemi için programlamak üzere MapTransfer
Aktarım İsteklerini Bölmeaçıklandığı gibi, bir sürücünün istenen tüm verileri aktarmak için MapTransfer birden çok kez çağırması gerekebilir.
FlushAdapterBuffers, her DMA aktarım işleminden hemen sonra alt cihazla iletişim kurarken
Bir sürücünün istenen tüm verileri aktarmak için MapTransfer birden fazla kez çağırması gerekiyorsa, FlushAdapterBuffers çağrısını MapTransferkadar yapması gerekir.
"SerbestAdaptörKanalı, istenen tüm veriler aktarıldığı anda veya sürücü bir cihaz Giriş/Çıkış hatası nedeniyle IRP'de başarısız olursa"
IoGetDmaAdapter tarafından döndürülen bağdaştırıcı nesne işaretçisi, KeFlushIoBuffers ve MmGetMdlVirtualAddressharicinde, her bir rutin için gerekli bir parametredir. Bu ikisi, Irp->MdlAddress'de aktarılan MDL işaretçisini gerektirir.
Tek tek sürücüler, her sürücünün cihazına hizmet vermek için nasıl uygulandığına bağlı olarak bu destek yordamları dizisini farklı noktalarda çağırır. Örneğin, bir sürücünün StartIo yordamı, AllocateAdapterChannelçağrısı yapabilir, başka bir sürücü bu çağrıyı sürücü tarafından oluşturulan bir birbirine bağlı kuyruktan IRP'leri kaldıran bir yordamdan yapabilir ve alt DMA cihazı veri aktarımına hazır olduğunu gösterdiğinde başka bir sürücü bu çağrıyı yapabilir.