共用方式為


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))
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 方法會傳回未傳輸的資源清單。

要求

要求 價值
目標平臺 窗戶
標頭 portcls.h