次の方法で共有


多機能 PCI デバイスのサポート

多機能 PCI デバイスが PCI 多機能規格に完全に準拠している場合、PCI バス ドライバーは個々の機能を列挙します。 PCI バス ドライバーは、1 つのデバイスの場所に複数の関数が存在するという事実を管理します。 システムの残りの部分では、個々の機能は独立したデバイスのように動作します。

NT ベースのプラットフォーム上の PCI 多機能デバイスのベンダーは、次の操作を行う必要があります。

  • デバイスが PCI 多機能仕様に準拠していることを確認します。

  • デバイスの各関数の PnP 関数ドライバーを提供します。

    システム提供のバス ドライバーは多機能セマンティクスを処理するため、関数ドライバーは、関数が個々のデバイスとしてパッケージ化されているときに使用されるのと同じドライバーにすることができます。

  • デバイスの各関数の INF ファイルを指定します。

    INF ファイルは、機能が個々のデバイスとしてパッケージ化されている場合に使用されるのと同じファイルにすることができます。 INF ファイルには、特別な多機能セマンティクスは必要ありません。

たとえば、次の図は、ISDN およびモデム機能を備えた多機能 PCI デバイス用に作成される可能性のあるサンプル デバイス スタックを示しています。

親が各関数を列挙する多機能デバイスのデバイス スタックを示す図。

前の図に示すように、1 つの多機能デバイスを列挙するのではなく、PCI ドライバーは 2 つの子デバイスを列挙します。 PnP マネージャーは、一般的なデバイス、INF ファイルの検索、適切なドライバーの読み込み、AddDevice ルーチンの呼び出しなど、各デバイスのデバイス スタックが作成されるまで、各子デバイスを扱います。 PCI ドライバーは、子デバイスのリソースを調整し、デバイスのその他の多機能な側面を管理します。 多機能カードのベンダーは、ISDN デバイスとモデム デバイスのファンクション ドライバーと INF を、別のデバイスであるかのように提供します。

この図では、各関数のファンクション ドライバーとバス ドライバーとそれに関連付けられている FDO と PDO に焦点を当てています。 わかりやすくするために、フィルター ドライバー (およびフィルター DO) は省略されます。