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 方法返回未翻译的资源列表。

要求

要求
目标平台 Windows
标头 portcls.h