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 |