Interfaz IResourceList (portcls.h)

La IResourceList interfaz proporciona una abstracción de una lista de recursos de configuración, que es una lista de los recursos de hardware del sistema que el administrador de Plug and Play asigna a un dispositivo en tiempo de inicio. Los recursos de la lista pueden incluir vectores de interrupción, canales DMA, direcciones de puerto de E/S y bloques de direcciones de memoria relativas al bus. Para obtener más información, vea Iniciar un dispositivo en un controlador de funciones.

El controlador del sistema PortCls implementa la IResourceList interfaz y la expone a los controladores de adaptador. Cuando PortCls llama a la rutina de inicio del dispositivo del controlador de adaptador (consulte Iniciar un dispositivo), pasa un IResourceList objeto como uno de los parámetros de llamada.

El archivo de encabezado portcls.h define el conjunto de macros para simplificar el control de los objetos de lista de recursos. Para cada tipo de recurso, se definen las cuatro macros siguientes:

ULONG
  NumberOfpluralresourcename(
    void
 ); 

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindTranslatedsingularresourcename(
    ULONG  Index
    );

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindUntranslatedsingularresourcename(
    ULONG  Index
    );

NTSTATUS
  AddsingularresourcenameFromParent(
    PRESOURCELIST  Parent,
    ULONG  Index
    );

En la tabla siguiente se muestran los tipos de recursos para los que se definen estas macros.

Nombre del tipo de recurso Formulario singular Formulario plural
CmResourceTypePort Port Puertos
CmResourceTypeInterrupt Interrupción Interrupciones
CmResourceTypeMemory Memoria Memorias
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific Devicespecific DeviceSpecifics
CmResourceTypeBusNumber BusNumber BusNumbers
CmResourceTypePrivate Privados Privadas
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

Para conocer los significados de los nombres de tipo de recurso en la columna izquierda anterior, consulte CM_PARTIAL_RESOURCE_DESCRIPTOR.

En la tabla siguiente se enumeran explícitamente las cuatro macros que portcls.h define para cada uno de los nueve tipos de recursos. A la derecha de cada macro es la llamada equivalente a un IResourceList método.

Macro Llamada de IResourceList equivalente
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))

Herencia

La interfaz IResourceList hereda de la interfaz IUnknown.

Métodos

La interfaz IResourceList tiene estos métodos.

 
IResourceList::AddEntry

El método AddEntry agrega una entrada a una lista de recursos.
IResourceList::AddEntryFromParent

El método AddEntryFromParent agrega a una lista de recursos una entrada que se encuentra en la lista primaria de la lista de recursos.
IResourceList::FindTranslatedEntry

El método FindTranslatedEntry devuelve un puntero a una entrada traducida del tipo especificado o NULL si no se encuentra dicha entrada.
IResourceList::FindUntranslatedEntry

El método FindUntranslatedEntry devuelve un puntero a una entrada sin traducir del tipo especificado, o NULL si no se encuentra dicho puntero.
IResourceList::NumberOfEntries

El método NumberOfEntries devuelve el número de elementos de recursos de la lista de recursos.
IResourceList::NumberOfEntriesOfType

El método NumberOfEntriesOfType devuelve el número de elementos de recursos de un tipo determinado en la lista de recursos. Para cada tipo de recurso, se define una macro para llamar a este método como se ha descrito anteriormente.
IResourceList::TranslatedList

El método TranslatedList devuelve la lista de recursos traducidos.
IResourceList::UntranslatedList

El método UntranslatedList devuelve la lista de recursos sin traducir.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado portcls.h