Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A fájlrendszer-illesztőprogramok kivételével, a magasabb szintű illesztőprogramok általában nem rendelkeznek belső illesztőprogram-sorokkal az IRP-khez. Az ilyen illesztőprogram DispatchReadWrite rutinja érvényes paraméterekkel rendelkező IRP-ket képes átadni az alacsonyabb szintű illesztőprogramoknak, esetleg az IoCompletion rutin beállítása után, ahogy az a Az IRP-k továbbadása az illesztőprogram veremben című részben le van írva.
Az SCSI-osztályillesztők DispatchReadWrite rutinja azonban felelős a nagy átviteli kérelmek felosztásáért, ha szükséges, mielőtt a fő függvénykóddal rendelkező IRP-t IRP_MJ_READ vagy IRP_MJ_WRITE küldené az SCSI-port/miniportillesztő párnak. További információért lásd: A tárhely osztályú illesztőprogram SplitTransferRequest rutinja.
Ha egy magasabb szintű illesztőprogram egy vagy több IRP-ket foglal le, amelyet a DispatchReadWrite rutinjában a következő alacsonyabb szintű illesztőprogramhoz állít be, hogy bizonyos számú megfelelő részleges átvitelt kérjen, a DispatchReadWrite rutinnak minden egyes illesztőprogram által lefoglalt IRP-ket meg kell hívnia az IoSetCompletionRoutine-nal. Az illesztőprogramnak regisztrálnia kell az IoCompletion rutinját, hogy nyomon kövesse az egyes részleges átvitelű műveletek során átadott adatokat, hogy az IoCompletion rutin felszabadíthassa az összes illesztőprogram által lefoglalt integrációs modult, és végül végrehajthassa az eredeti kérést.
Ha a mögöttes illesztőprogram egy cserélhető adathordozót vezérel, a magasabb szintű illesztőprogram által lefoglalt I/O-kéréspakkoknak szálkörnyezettel kell rendelkezniük. A szálkörnyezet beállításához a kiosztást végző illesztőprogramnak be kell állítania az Irp-Tail.Overlay.Thread értékét minden egyes újonnan kiosztott IRP esetében, azzal az értékkel, ami a bejövő átviteli IRP-ben található. További információt a Cserélhető adathordozó támogatása című témakörben talál.
Ha a mögöttes eszközillesztő hibát tartalmazó részleges átvitelhez ad vissza egy IRP-t, az IoCompletion rutin újrapróbálkozhat a részleges átviteli kérelemmel, vagy befejezheti az eredeti IRP-t annak I/O-állapotblokkjával a visszaadott hibával, miután felszabadította a magasabb szintű illesztőprogram által lefoglalt IRP-ket és memóriát.
Ha egy magasabb szintű illesztőprogram DispatchReadWrite rutinja memóriát foglal le a részleges átviteli műveletekhez, és a foglaláshoz az illesztőprogram IoCompletion rutinja (vagy az alapul szolgáló eszközillesztő) fér hozzá, a DispatchReadWrite rutinnak le kell foglalnia ezt a memóriát a nem lapozott készletből.