PnP ドライバーの設計ガイドライン

プラグ アンド プレイには次の機能があります。

  • インストールされているハードウェアの自動認識および動的認識

  • ハードウェア リソースの割り当て (および再割り当て)

  • 適切なドライバーの読み込み

  • ドライバーが PnP システムとやり取りするためのインターフェイス

  • ドライバーとアプリケーションがハードウェア環境の変化を学習するためのメカニズム

PnP をサポートするには、ドライバーが次のガイドラインに従う必要があります。

  • DispatchPnP ルーチンを含めること。

    このディスパッチ ルーチンは、IRP_MJ_PNP 要求と関連するマイナー関数コードを処理する必要があります。 詳細については「DispatchPnP ルーチン」を参照してください。

  • ハードウェアの検索は行わないこと。

    PnP マネージャーは、ハードウェア デバイスの有無を判断する役割を担います。 PnP マネージャーは、デバイスを検出すると、その AddDevice ルーチンを呼び出すことでドライバーに通知します。 ハードウェアは、システムの起動時、またはユーザーが実行中のシステムに対してデバイスの追加や取り出しを行ったときに検出できます。

  • ハードウェア リソースを割り当てないこと。

    PnP ドライバーは、デバイスが使用できる可能性のあるリソースのリストを PnP マネージャーに提供する必要があります。 PnP マネージャーは、各デバイスにリソースを割り当て、IRP_MN_START_DEVICE 要求を送信するときに各デバイスの割り当てをドライバーに通知する役割を担います。 したがって、ドライバーは、ハードウェア リソースをさまざまな構成で操作できなければなりません。

一部のドライバーは、システム提供のポートまたはクラス ドライバーによって PnP と電源管理の詳細情報から遮断されています。 たとえば、SCSI ポート ドライバーは、電力と PnP システムの多くの詳細情報から SCSI ミニポート ドライバーを遮断しているため、SCSI ミニポート ドライバーは電力と PnP の IRP を直接処理する必要がありません。 このようなドライバーに関する必要な PnP サポートの詳細については、ドライバー固有のドキュメントを参照してください。