DispatchRead, DispatchWrite és DispatchReadWrite rutinok

Egy driver DispatchRead és DispatchWrite rutinjai az IRP_MJ_READ és IRP_MJ_WRITE I/O-függvénykódokkal rendelkező IRP-ket kezelik. Alternatív megoldásként egy kombinált DispatchReadWrite rutin mindkét I/O-függvénykódhoz képes kezelni az IRP-ket.

Az eszköz minden olyan illesztőprogramjának, amelyről adatokat lehet továbbítani a rendszerbe, DispatchRead rutinnal kell rendelkeznie. Az eszköz minden olyan illesztőprogramjának, amelybe adatokat lehet továbbítani a rendszerből, DispatchWrite rutinnal kell rendelkeznie. Minden olyan illesztőprogram, amely mindkét irányban adatokat továbbít, kombinált DispatchReadWrite rutinnal rendelkezhet.

Az alacsonyabb szintű illesztőprogramok aszinkron módon kezelik a IRP_MJ_READ és IRP_MJ_WRITE kéréseket. Ezért a Legmagasabb szintű illesztőprogramok DispatchRead és/vagy DispatchWrite rutinjainak tovább kell adniuk ezeket a kéréseket további feldolgozás céljából, feltéve, hogy a kérés érvényes paraméterekkel rendelkezik az IRP illesztőprogram I/O-veremhelyén.

Az, hogy egy illesztőprogram beállítja-e az eszközobjektumait a pufferelt vagy a közvetlen I/O-hoz, hatással van-e az átviteli kérelmek kezelésére. Különösen előfordulhat, hogy egy közvetlen I/O-t DMA-műveletek végrehajtására használó illesztőprogramnak kisebb átviteli műveletek sorozatára kell felosztania a nagy átviteli kérelmeket egy IRP_MJ_READ vagy IRP_MJ_WRITE kérés kielégítése érdekében. További információ: Bemeneti/kimeneti technikák.

Az alábbi alszakaszok a DispatchReadWrite rutinjainak tervezési és megvalósítási szempontjait ismertetik a pufferelt I/O-t és közvetlen I/O-t használó legalacsonyabb szintű eszközillesztők, valamint a föléjük rétegzett magasabb szintű illesztőprogramok esetében:

Átvitelek aszinkron kezelése

DispatchReadWrite pufferelt I/O használatával

DispatchReadWrite közvetlen I/O használatával

DispatchReadWrite Higher-Level illesztőprogramokban

Az olvasási/írási kézbesítési rutinok összegzése