Compartilhar via


Interface IResourceList (portcls.h)

A IResourceList interface fornece uma abstração de uma lista de recursos de configuração, que é uma lista dos recursos de hardware do sistema que o gerenciador de Plug and Play atribui a um dispositivo no momento da inicialização. Os recursos na lista podem incluir vetores de interrupção, canais de DMA, endereços de porta de E/S e blocos de endereços de memória relativos ao barramento. Para obter mais informações, consulte Iniciando um dispositivo em um driver de função.

O driver do sistema PortCls implementa a interface e a IResourceList expõe a drivers de adaptador. Quando PortCls chama a rotina de inicialização de dispositivo de um driver de adaptador (consulte Iniciando um dispositivo), ele passa um IResourceList objeto como um dos parâmetros de chamada.

O arquivo de cabeçalho portcls.h define o conjunto de macros para simplificar o tratamento de objetos de lista de recursos. Para cada tipo de recurso, as quatro macros a seguir são definidas:

ULONG
  NumberOfpluralresourcename(
    void
 ); 

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindTranslatedsingularresourcename(
    ULONG  Index
    );

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindUntranslatedsingularresourcename(
    ULONG  Index
    );

NTSTATUS
  AddsingularresourcenameFromParent(
    PRESOURCELIST  Parent,
    ULONG  Index
    );

A tabela a seguir mostra os tipos de recursos para os quais essas macros são definidas.

Nome do tipo de Recurso Formulário Singular Plural
CmResourceTypePort Porta Portas
CmResourceTypeInterrupt Interrupção Interrupções
CmResourceTypeMemory Memória Memórias
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific Devicespecific DeviceSpecifics
CmResourceTypeBusNumber BusNumber Números de Barramento
CmResourceTypePrivate Privado Privates
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

Para obter os significados dos nomes de tipo de recurso na coluna à esquerda acima, consulte CM_PARTIAL_RESOURCE_DESCRIPTOR.

A tabela a seguir lista explicitamente as quatro macros que portcls.h define para cada um dos nove tipos de recursos. À direita de cada macro está a chamada equivalente a um IResourceList método.

Macro Chamada 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))
AddSubAllocateFromFromParent(p,n) AddEntryFromParent((p),CmResourceTypeSubAllocateFrom,(n))

Herança

A interface IResourceList herda da interface IUnknown.

Métodos

A interface IResourceList tem esses métodos.

 
IResourceList::AddEntry

O método AddEntry adiciona uma entrada a uma lista de recursos.
IResourceList::AddEntryFromParent

O método AddEntryFromParent adiciona a uma lista de recursos uma entrada encontrada na lista pai da lista de recursos.
IResourceList::FindTranslatedEntry

O método FindTranslatedEntry retorna um ponteiro para uma entrada traduzida do tipo especificado ou NULL se nenhuma entrada desse tipo for encontrada.
IResourceList::FindUntranslatedEntry

O método FindUntranslatedEntry retorna um ponteiro para uma entrada não traduzida do tipo especificado ou NULL se nenhum ponteiro desse tipo for encontrado.
IResourceList::NumberOfEntries

O método NumberOfEntries retorna o número de itens de recurso na lista de recursos.
IResourceList::NumberOfEntriesOfType

O método NumberOfEntriesOfType retorna o número de itens de recurso de um determinado tipo na lista de recursos. Para cada tipo de recurso, uma macro é definida para chamar esse método, conforme descrito anteriormente.
IResourceList::TranslatedList

O método TranslatedList retorna a lista de recursos traduzidos.
IResourceList::UntranslatedList

O método UntranslatedList retorna a lista de recursos não traduzidos.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho portcls.h