次の方法で共有


リソース リストのオブジェクト

PortCls システム ドライバーは、ミニポート ドライバーの利点のために IResourceList インターフェイスを実装します。 IResourceList オブジェクトは、プラグ アンド プレイ マネージャーがデバイスの起動時にデバイスに割り当てるシステム ハードウェア リソースのリストである構成リソース リストを表します。 起動時のリソース割り当ての詳細情報は、ファンクション ドライバーでのデバイスの起動を参照してください。

リソース リストには、次のタイプのリソースが含まれます:

  • 割り込みベクトル

  • DMA チャネル

  • I/O ポート アドレス

  • バス相対メモリ アドレスのブロック

リソース タイプの詳細情報は、ハードウェア リソースを参照してください。

IResourceList オブジェクトは、リソース リストの翻訳済みバージョンと未翻訳 (または「生」) バージョンの両方をカプセル化します。 翻訳済みリソースと未翻訳リソースの詳細情報は、バス相対アドレスの仮想アドレスへのマッピングを参照してください。

IResourceList インターフェイスは次の方式をサポートしています:

IResourceList::AddEntry

IResourceList::AddEntryFromParent

IResourceList::FindTranslatedEntry

IResourceList::FindUntransulatedEntry

IResourceList::NumberOfEntries

IResourceList::NumberOfEntriesOfType

IResourceList::TranslatedList

IResourceList::UntranslatedList

ヘッダー ファイル Portcls.h は、リソース リスト オブジェクトの処理を簡素化するマクロのセットを定義します。 これらのマクロは、IResourceList 方式への呼び出しを生成します。 詳細情報は、IResourceList を参照してください。

さらに、Portcls.h は、リソース リストを作成するための 1 組の関数を定義します:

PcNewResourceList

PcNewResourceSublist

オーディオ アダプタ カード上のデバイスを起動するには、オペレーティング システムはアダプタ ドライバのデバイス起動ルーチンを呼び出し (起動シーケンスを参照)、リソース リスト オブジェクトを入力パラメータとして渡します。 このリストには、オペレーティング システムがアダプタ ドライバに割り当てたすべてのシステム リソースが含まれています。

開始デバイスルーチンでは、アダプター ドライバーはアダプター ドライバーのすべてのデバイス (波デバイス、MIDI デバイスなど) を起動します。 各デバイスを管理するために、アダプター ドライバーはミニポート ドライバー オブジェクトとそれに関連付けられたポート ドライバー オブジェクトを作成します。 アダプター ドライバーは、リソース リスト内のリソースをアダプター カード内のさまざまなデバイスに分割します。 この目的のために、ドライバーは通常、PcNewResourceSublist を呼び出して、各デバイスのリソース リスト オブジェクトを作成します。 次にドライバーは、必要な回数だけ IResourceList::AddEntryFromParent を呼び出し、選択したリソースを親リストからさまざまな子リストにコピーします。 さらに、アダプター ドライバーは一部のリソースをそれの自体に割り当てる場合があります。

次に、デバイス開始ルーチンは各ポート ドライバーの IPort::Init 方式を呼び出し、デバイスのリソース リスト オブジェクト (子リストを含む) を入力パラメーターとして渡します。 各ポート ドライバーの IPort::Init 方式は、対応するミニポート ドライバーの IMiniportXxx::Init 方式 (次のいずれか) を呼び出します:

IMiniportDMus::Init

IMiniportMidi::Init

IMiniportTopology::Init

IMiniportWaveCyclic::Init

IMiniportWavePci::Init

IPort::Init 方式は、そのリソース リスト オブジェクトを入力パラメーターとして IMiniportXxx::Init 方式に渡します。 ミニポート ドライバーは、リソース リスト内の DMA チャネル、割り込み、およびその他のシステム リソースを利用できるようになります。

コード例については、Microsoft Windows ドライバー キット (WDK) の Sb16 サンプル オーディオ ドライバーを参照してください。