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 |