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 |