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 |