IResourceList インターフェイス (portcls.h)

インターフェイスはIResourceList、構成リソース リストの抽象化を提供します。これは、プラグ アンド プレイ マネージャーが起動時にデバイスに割り当てるシステム ハードウェア リソースの一覧です。 一覧のリソースには、割り込みベクトル、DMA チャネル、I/O ポート アドレス、バス相対メモリ アドレスのブロックを含めることができます。 詳細については、「 Function Driver でのデバイスの起動」を参照してください。

PortCls システム ドライバーは、 インターフェイスを IResourceList 実装し、アダプター ドライバーに公開します。 PortCls は、アダプター ドライバーのデバイススタートアップ ルーチンを呼び出すとき (「 デバイスの起動」を参照)、呼び出しパラメーターの 1 つとして オブジェクトを渡 IResourceList します。

ヘッダー ファイル portcls.h は、リソース リスト オブジェクトの処理を簡略化するためにマクロのセットを定義します。 リソースの種類ごとに、次の 4 つのマクロが定義されています。

ULONG
  NumberOfpluralresourcename(
    void
 ); 

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindTranslatedsingularresourcename(
    ULONG  Index
    );

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindUntranslatedsingularresourcename(
    ULONG  Index
    );

NTSTATUS
  AddsingularresourcenameFromParent(
    PRESOURCELIST  Parent,
    ULONG  Index
    );

次の表は、これらのマクロが定義されているリソースの種類を示しています。

リソースの種類名 単数形 複数形
CmResourceTypePort Port Port
CmResourceTypeInterrupt 割り込み 割り込み
CmResourceTypeMemory メモリ メモリ
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific Devicespecific DeviceSpecifics
CmResourceTypeBusNumber BusNumber BusNumbers
CmResourceTypePrivate プライベート 陰部
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

上の左側の列のリソースの種類名の意味については、「 CM_PARTIAL_RESOURCE_DESCRIPTOR」を参照してください。

次の表に、9 つのリソースの種類ごとに portcls.h が定義する 4 つのマクロを明示的に示します。 各マクロの右側には、 メソッドの同等の呼び出しがあります IResourceList

マクロ 同等の IResourceList 呼び出し
NumberOfPorts() NumberOfEntriesOfType(CmResourceTypePort)
FindTranslatedPort(n) FindTranslatedEntry(CmResourceTypePort,(n))
FindUntranslatedPort(n) FindUntranslatedEntry(CmResourceTypePort,(n))
AddPortFromParent(p,n) AddEntryFromParent((p),CmResourceTypePort,(n))
NumberOfInterrupts() NumberOfEntriesOfType(CmResourceTypeInterrupt)
FindTranslatedInterrupt(n) FindTranslatedEntry(CmResourceTypeInterrupt,(n))
FindUntranslatedInterrupt(n) FindUntranslatedEntry(CmResourceTypeInterrupt,(n))
AddInterruptFromParent(p,n) AddEntryFromParent((p),CmResourceTypeInterrupt,(n))
NumberOfMemories() NumberOfEntriesOfType(CmResourceTypeMemory)
FindTranslatedMemory(n) FindTranslatedEntry(CmResourceTypeMemory,(n))
FindUntranslatedMemory(n) FindUntranslatedEntry(CmResourceTypeMemory,(n))
AddMemoryFromParent(p,n) AddEntryFromParent((p),CmResourceTypeMemory,(n))
NumberOfDmas() NumberOfEntriesOfType(CmResourceTypeDma)
FindTranslatedDma(n) FindTranslatedEntry(CmResourceTypeDma,(n))
FindUntranslatedDma(n) FindUntranslatedEntry(CmResourceTypeDma,(n))
AddDmaFromParent(p,n) AddEntryFromParent((p),CmResourceTypeDma,(n))
NumberOfDeviceSpecifics() NumberOfEntriesOfType(CmResourceTypeDeviceSpecific)
FindTranslatedDeviceSpecific(n) FindTranslatedEntry(CmResourceTypeDeviceSpecific,(n))
FindUntranslatedDeviceSpecific(n) FindUntranslatedEntry(CmResourceTypeDeviceSpecific,(n))
AddDeviceSpecificFromParent(p,n) AddEntryFromParent((p),CmResourceTypeDeviceSpecific,(n))
NumberOfBusNumbers() NumberOfEntriesOfType(CmResourceTypeBusNumber)
FindTranslatedBusNumber(n) FindTranslatedEntry(CmResourceTypeBusNumber,(n))
FindUntranslatedBusNumber(n) FindUntranslatedEntry(CmResourceTypeBusNumber,(n))
AddBusNumberFromParent(p,n) AddEntryFromParent((p),CmResourceTypeBusNumber,(n))
NumberOfDevicePrivates() NumberOfEntriesOfType(CmResourceTypeDevicePrivate)
FindTranslatedDevicePrivate(n) FindTranslatedEntry(CmResourceTypeDevicePrivate,(n))
FindUntranslatedDevicePrivate(n) FindUntranslatedEntry(CmResourceTypeDevicePrivate,(n))
AddDevicePrivateFromParent(p,n) AddEntryFromParent((p),CmResourceTypeDevicePrivate,(n))
NumberOfAssignedResources() NumberOfEntriesOfType(CmResourceTypeAssignedResource)
FindTranslatedAssignedResource(n) FindTranslatedEntry(CmResourceTypeAssignedResource,(n))
FindUntranslatedAssignedResource(n) FindUntranslatedEntry(CmResourceTypeAssignedResource,(n))
AddAssignedResourceFromParent(p,n) AddEntryFromParent((p),CmResourceTypeAssignedResource,(n))
NumberOfSubAllocateFroms() NumberOfEntriesOfType(CmResourceTypeSubAllocateFrom)
FindTranslatedSubAllocateFrom(n) FindTranslatedEntry(CmResourceTypeSubAllocateFrom,(n))
FindUntranslatedSubAllocateFrom(n) FindUntranslatedEntry(CmResourceTypeSubAllocateFrom,(n))
AddSubAllocateFromFromParent(p,n) AddEntryFromParent((p),CmResourceTypeSubAllocateFrom,(n))

継承

IResourceList インターフェイスは、IUnknown インターフェイスから継承されます。

メソッド

IResourceList インターフェイスには、これらのメソッドがあります。

 
IResourceList::AddEntry

AddEntry メソッドは、リソース リストにエントリを追加します。
IResourceList::AddEntryFromParent

AddEntryFromParent メソッドは、リソース リストの親リストにあるエントリをリソース リストに追加します。
IResourceList::FindTranslatedEntry

FindTranslatedEntry メソッドは、指定した型の変換されたエントリへのポインターを返します。このようなエントリが見つからない場合は NULL を返します。
IResourceList::FindUntranslatedEntry

FindUntranslatedEntry メソッドは、指定した型の未翻訳のエントリへのポインターを返します。このようなポインターが見つからない場合は NULL を返します。
IResourceList::NumberOfEntries

NumberOfEntries メソッドは、リソース リスト内のリソース アイテムの数を返します。
IResourceList::NumberOfEntriesOfType

NumberOfEntriesOfType メソッドは、リソース リスト内の特定の種類のリソース アイテムの数を返します。 リソースの種類ごとに、前に説明したように、このメソッドを呼び出すマクロが定義されています。
IResourceList::TranslatedList

TranslatedList メソッドは、翻訳されたリソースの一覧を返します。
IResourceList::UntranslatedList

UntranslatedList メソッドは、翻訳されていないリソースの一覧を返します。

要件

要件
対象プラットフォーム Windows
ヘッダー portcls.h