Partager via


Interface IResourceList (portcls.h)

L’interface IResourceList fournit une abstraction d’une liste de ressources de configuration, qui est une liste des ressources matérielles système attribuées par le gestionnaire Plug-and-Play à un appareil au moment du démarrage. Les ressources de la liste peuvent inclure des vecteurs d’interruption, des canaux DMA, des adresses de port d’E/S et des blocs d’adresses mémoire relatives au bus. Pour plus d’informations, consultez Démarrage d’un appareil dans unde pilote de fonction.

Le pilote système PortCls implémente l’interface IResourceList et l’expose aux pilotes d’adaptateur. Lorsque PortCls appelle la routine de démarrage d’un pilote d’adaptateur (voir Démarrage d’un appareil), il transmet un objet IResourceList comme l’un des paramètres d’appel.

Le fichier d’en-tête portcls.h définit un ensemble de macros pour simplifier la gestion des objets de liste de ressources. Pour chaque type de ressource, les quatre macros suivantes sont définies :

ULONG
  NumberOfpluralresourcename(
    void
 ); 

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindTranslatedsingularresourcename(
    ULONG  Index
    );

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindUntranslatedsingularresourcename(
    ULONG  Index
    );

NTSTATUS
  AddsingularresourcenameFromParent(
    PRESOURCELIST  Parent,
    ULONG  Index
    );

Le tableau suivant montre les types de ressources pour lesquels ces macros sont définies.

Nom du type de ressource Formulaire singulier Pluriel
CmResourceTypePort Port Ports
CmResourceTypeInterrupt Interrompre Interrompt
CmResourceTypeMemory Mémoire Mémoires
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific DeviceSpecific DeviceSpecifics
CmResourceTypeBusNumber BusNumber BusNumbers
CmResourceTypePrivate Privé Soldats
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

Pour connaître les significations des noms de types de ressources dans la colonne de gauche ci-dessus, consultez CM_PARTIAL_RESOURCE_DESCRIPTOR.

Le tableau suivant répertorie explicitement les quatre macros que portcls.h définit pour chacun des neuf types de ressources. À droite de chaque macro est l’appel équivalent à une méthode IResourceList.

Macro Appel IResourceList équivalent
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))

Héritage

L’interface IResourceList hérite de l’interface IUnknown.

Méthode

L’interface IResourceList possède ces méthodes.

 
IResourceList ::AddEntry

La méthode AddEntry ajoute une entrée à une liste de ressources.
IResourceList ::AddEntryFromParent

La méthode AddEntryFromParent ajoute à une liste de ressources une entrée trouvée dans la liste parente de la liste de ressources.
IResourceList ::FindTranslatedEntry

La méthode FindTranslatedEntry retourne un pointeur vers une entrée traduite du type spécifié, ou NULL si aucune telle entrée n’est trouvée.
IResourceList ::FindUntranslatedEntry

La méthode FindUntranslatedEntry retourne un pointeur vers une entrée non convertie du type spécifié, ou NULL si aucun pointeur de ce type n’est trouvé.
IResourceList ::NumberOfEntries

La méthode NumberOfEntries retourne le nombre d’éléments de ressource dans la liste des ressources.
IResourceList ::NumberOfEntriesOfType

La méthode NumberOfEntriesOfType retourne le nombre d’éléments de ressource d’un type donné dans la liste des ressources. Pour chaque type de ressource, une macro est définie pour appeler cette méthode comme décrit précédemment.
IResourceList ::TranslatedList

La méthode TranslatedList retourne la liste des ressources traduites.
IResourceList ::UntranslatedList

La méthode UntranslatedList retourne la liste des ressources non converties.

Exigences

Exigence Valeur
plateforme cible Windows
d’en-tête portcls.h