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 que le gestionnaire de Plug-and-Play attribue à un appareil au 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 un 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 passe un IResourceList objet 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 Interruption Interruptions
CmResourceTypeMemory Mémoire Souvenirs
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific Devicespecific DeviceSpecifics
CmResourceTypeBusNumber Numéro de bus BusNumbers
CmResourceTypePrivate Privées Soldats
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

Pour connaître la signification des noms de type de ressource 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 se trouve l’appel équivalent à une IResourceList méthode.

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éthodes

L’interface IResourceList a 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 renvoie un pointeur vers une entrée traduite du type spécifié, ou NULL si aucune entrée de ce type n’est trouvée.
IResourceList ::FindUntranslatedEntry

La méthode FindUntranslatedEntry retourne un pointeur vers une entrée non traduite 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 ressources dans la liste de ressources.
IResourceList ::NumberOfEntriesOfType

La méthode NumberOfEntriesOfType retourne le nombre d’éléments de ressources d’un type donné dans la liste de 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 traduites.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête portcls.h