Aracılığıyla paylaş


DispatchRead, DispatchWrite ve DispatchReadWrite Yordamları

Sürücünün DispatchRead ve DispatchWrite yordamları sırasıyla IRP_MJ_READ veIRP_MJ_WRITE G/Ç işlev kodlarıyla IRP'leri işler. Alternatif olarak, birleşik bir DispatchReadWrite yordamı bu G/Ç işlev kodlarının her ikisi için de IP'leri işleyebilir.

Verilerin sisteme aktarılabildiği bir cihazın her sürücüsünün DispatchRead yordamı olmalıdır. Verilerin sistemden aktarılabildiği bir cihazın her sürücüsünde DispatchWrite yordamı bulunmalıdır. Her iki yönde de veri aktaran tüm sürücülerde birleştirilmiş DispatchReadWrite yordamı olabilir.

Alt düzey sürücüler IRP_MJ_READ ve IRP_MJ_WRITE isteklerini zaman uyumsuz olarak işler. Bu nedenle, en üst düzey sürücülerdeki DispatchRead ve/veya DispatchWrite yordamları, isteğin IRP'nin O sürücünün G/Ç yığını konumunda geçerli parametrelere sahip olması koşuluyla, daha fazla işlem için bu istekleri iletmesi gerekir.

Bir sürücünün cihaz nesnelerini tamponlu veya doğrudan G/Ç için ayarlaması, aktarım isteklerini ele alış şeklini etkiler. Özellikle, DMA işlemleri yapmak için doğrudan G/Ç kullanan bir sürücünün, IRP_MJ_READ veya IRP_MJ_WRITE isteğini karşılamak için büyük aktarım isteklerini daha küçük aktarım işlemleri dizisine ayırması gerekebilir. Daha fazla bilgi için bkz. Giriş/Çıkış Teknikleri.

Aşağıdaki alt bölümlerde, arabelleğe alınan G/Ç ve doğrudan G/Ç kullanan en düşük düzey cihaz sürücülerindeki DispatchReadWrite rutinlerinin yanı sıra bunların üzerine katmanlanmış üst düzey sürücülerdeki tasarım ve uygulama ile ilgili dikkat edilmesi gereken bazı noktalar ele alınmaktadır.

Aktarımları Asenkron olarak İşleme

DispatchReadWrite Kullanarak Arabelleğe Alınan G/Ç

Doğrudan G/Ç Kullanarak DispatchReadWrite

Higher-Level Sürücülerinde DispatchReadWrite

Okuma/Yazma Dağıtım Yordamlarının Özeti