Interfaccia IResourceList (portcls.h)

L'interfaccia IResourceList fornisce un'astrazione di un elenco di risorse di configurazione, ovvero un elenco delle risorse hardware di sistema assegnate dal gestore di Plug and Play a un dispositivo in fase di avvio. Le risorse nell'elenco possono includere vettori di interruzione, canali DMA, indirizzi di porta I/O e blocchi di indirizzi di memoria relativi al bus. Per altre informazioni, vedere Avvio di un dispositivo in un driver di funzione.

Il driver di sistema PortCls implementa l'interfaccia e la espone ai driver dell'adattatore IResourceList . Quando PortCls chiama la routine di avvio del dispositivo del driver dell'adattatore (vedere Avvio di un dispositivo), passa un IResourceList oggetto come uno dei parametri di chiamata.

Il file di intestazione portcls.h definisce il set di macro per semplificare la gestione degli oggetti elenco di risorse. Per ogni tipo di risorsa, vengono definite le quattro macro seguenti:

ULONG
  NumberOfpluralresourcename(
    void
 ); 

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindTranslatedsingularresourcename(
    ULONG  Index
    );

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindUntranslatedsingularresourcename(
    ULONG  Index
    );

NTSTATUS
  AddsingularresourcenameFromParent(
    PRESOURCELIST  Parent,
    ULONG  Index
    );

Nella tabella seguente vengono illustrati i tipi di risorsa per i quali vengono definite queste macro.

Nome tipo di risorsa Forma singolare Plurale
CmResourceTypePort Porta Porte
CmResourceTypeInterrupt Interrompere Interrompe
CmResourceTypeMemory Memoria Ricordi
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific Devicespecific DeviceSpecifics
CmResourceTypeBusNumber BusNumber BusNumbers
CmResourceTypePrivate Privato Privati
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

Per i significati dei nomi dei tipi di risorsa nella colonna sinistra precedente, vedere CM_PARTIAL_RESOURCE_DESCRIPTOR.

Nella tabella seguente sono elencate in modo esplicito le quattro macro definite da portcls.h per ognuno dei nove tipi di risorse. A destra di ogni macro è la chiamata equivalente a un IResourceList metodo.

Macro Chiamata 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))

Ereditarietà

L'interfaccia IResourceList eredita dall'interfaccia IUnknown.

Metodi

L'interfaccia IResourceList include questi metodi.

 
IResourceList::AddEntry

Il metodo AddEntry aggiunge una voce a un elenco di risorse.
IResourceList::AddEntryFromParent

Il metodo AddEntryFromParent aggiunge a un elenco di risorse una voce trovata nell'elenco padre dell'elenco risorse.
IResourceList::FindTranslatedEntry

Il metodo FindTranslatedEntry restituisce un puntatore a una voce tradotta del tipo specificato o NULL se non viene trovata alcuna voce di questo tipo.
IResourceList::FindUntranslatedEntry

Il metodo FindUntranslatedEntry restituisce un puntatore a una voce non tradotta del tipo specificato o NULL se non viene trovato alcun puntatore di questo tipo.
IResourceList::NumberOfEntries

Il metodo NumberOfEntries restituisce il numero di elementi di risorsa nell'elenco di risorse.
IResourceList::NumberOfEntriesOfType

Il metodo NumberOfEntriesOfType restituisce il numero di elementi di risorsa di un determinato tipo nell'elenco di risorse. Per ogni tipo di risorsa, viene definita una macro per chiamare questo metodo come descritto in precedenza.
IResourceList::TranslatedList

Il metodo TranslatedList restituisce l'elenco delle risorse tradotte.
IResourceList::UntranslatedList

Il metodo UntranslatedList restituisce l'elenco di risorse non tradotte.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione portcls.h