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 |