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 記憶體 記憶
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) )
AddSubAllocateFromParent (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