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 |