IResourceList 介面 (portcls.h)

介面IResourceList提供組態資源清單的抽象概念,這是 隨插即用 管理員在啟動時指派給裝置的系統硬體資源清單。 清單中的資源可以包含插斷向量、DMA 通道、I/O 埠位址,以及總線相對記憶體位址區塊。 如需詳細資訊,請參閱 在函式驅動程式中啟動裝置

PortCls 系統驅動程式會實作 介面, IResourceList 並將其公開給配接器驅動程式。 當 PortCls 呼叫配接器驅動程式的裝置啟動例程 (請參閱 啟動裝置) 時,它會將對象當做其中一個呼叫參數傳遞 IResourceList

標頭檔 portcls.h 會定義一組宏,以簡化資源清單對象的處理。 針對每種資源類型,會定義下列四個宏:

ULONG
  NumberOfpluralresourcename(
    void
 ); 

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindTranslatedsingularresourcename(
    ULONG  Index
    );

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindUntranslatedsingularresourcename(
    ULONG  Index
    );

NTSTATUS
  AddsingularresourcenameFromParent(
    PRESOURCELIST  Parent,
    ULONG  Index
    );

下表顯示定義這些宏的資源類型。

資源類型名稱 單數表單表單 複數形式
CmResourceTypePort 連接埠 連接埠
CmResourceTypeInterrupt 中斷 中斷
CmResourceTypeMemory Memory 記憶
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific DeviceSpecific DeviceSpecifics
CmResourceTypeBusNumber BusNumber BusNumbers
CmResourceTypePrivate 私人 士兵
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

如需上方左側數據行中資源類型名稱的意義,請參閱 CM_PARTIAL_RESOURCE_DESCRIPTOR

下表明確列出 portcls.h 為每個九個資源類型定義的四個宏。 每個宏右邊都是對方法的 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