構成可能
今日の周辺機器は、ハードウェアで構成可能、そのドライバーはソフトウェアで構成可能である必要があります。
デバイスは、物理的に変更されることなく、I/O ポート番号などのシステムのハードウェア リソースのさまざまな割り当てを受け入れることができる場合、ハードウェアで構成できます。 たとえば、ホットプラグ可能なプラグ アンド プレイ ディスクのセットが独立ディスク冗長アレイ (RAID) 構成で接続されている場合、ユーザーはシステムの実行中にディスクを交換できます。 デバイスがハードウェアで構成可能な場合、そのドライバーには、デバイスのハードウェア リソースのハードコーディングされたシステム依存値を含めることはできません。
ドライバーは、次の場合にソフトウェアで構成できます。
デバイスのハードウェアリソースを動的に受信および変更できます。
プラグ アンド プレイをサポートするドライバーには、デバイスのハードウェア リソースのハードコーディングされた値は含まれておらず、ドライバーはデバイスをポーリングしてリソースの割り当てを決定しません。 代わりに、システムはデバイスにリソースを動的に割り当て、ドライバーにリソース値を提供します。
これは、ドライバー スタック内でその上または下に存在する可能性のある他のドライバーについて想定せずに記述されています。
たとえば、ディスクの下位レベルのデバイス ドライバーの設計は、複数の高レベルファイル システム ドライバー (場合によっては 1 台のコンピューター) によって実装される複数のファイル システムをサポートするのに十分な柔軟性が必要です。
さらに、コンピューターに十分な大容量ストレージ容量がある場合、同じ下位レベルのディスク ドライバーが、ファイル システム内のフォールト トレランス (ミラーパーティション、ストライプ セット、またはボリューム セットとして実装) に対する中間ドライバーのサポートを妨げてはなりません。
PnP マネージャーと各 PnP ハードウェア バス ドライバーは連携して、特定の種類の I/O バス用のプラットフォームのハードウェアとシステムのソフトウェア間のインターフェイスを提供します。 PnP マネージャは、バスを含むシステム上のすべてのデバイスを表すノードを使用して、デバイス ツリーを構築します。 各デバイスについて、PnP マネージャーメイン次の 2 つのリストが含まれます。
デバイスで 使用できるハードウェア リソース の一覧。
デバイスに実際に割り当てられているハードウェア リソースの一覧。
デバイス ドライバーは、PnP マネージャーがレジストリに保持されるこれらのリストを作成するのを支援します。 デバイスがシステムに追加されたり、システムから削除されたりすると、PnP マネージャは必要に応じてリソースを再割り当てし、リストを更新します。
ダイナミック リンク ライブラリとして実装されるシステムのハードウェア抽象化レイヤー (HAL) コンポーネントは、カーネル モード ドライバーなど、他のシステム コンポーネントで必要とされるハードウェア レベルのプラットフォーム固有のサポートの一部を担当します。