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 |