StartIo ルーチンの記述

その名前が示すように、 StartIo ルーチンは物理デバイスで I/O 操作を開始する役割を担います。

ほとんどの最下位レベルのドライバーは、 StartIo ルーチンを提供し、I/O マネージャーに依存して、システム提供のデバイス キューに IRP を入れます。 一部の最下位レベルのドライバーは、独自の補助 IRP キューを設定および管理するように設計されていますが、通常は StartIo ルーチンも提供します。 (補足キューの詳細については、 「デバイス キューの設定と使用」「デバイス キューの管理」 を参照してください。)

FSD、PnP 関数、フィルター ドライバーなど、上位レベルのドライバーでは、パフォーマンスが低下する可能性があるため、 StartIo ルーチンを使用することはめったにありません。 代わりに、ほとんどのファイル システム ドライバーは、IRP の内部キューを設定して維持します。 他の上位レベルのドライバーには、IRP の内部キューがあるか、ディスパッチ ルーチンから下位ドライバーに IRP を渡すだけです。 詳細については、 「ドライバーによって管理される IRP キュー」 を参照してください。

IoSetStartIoAttributes ルーチンを使用して、ドライバーの StartIo 処理を変更する属性を設定できます。

このセクションでは、以下のトピックについて説明します:

最下位レベル ドライバーの StartIo ルーチン

上位レベル ドライバーの StartIo ルーチン

StartIo ルーチンについて考慮すべき点