Partager via


Objets de liste de ressources

Le pilote système PortCls implémente l’interface IResourceList pour le bénéfice des pilotes miniport. Un objet IResourceList représente une liste de ressources de configuration, qui est une liste des ressources matérielles système que le gestionnaire de Plug-and-Play affecte à un appareil au moment du démarrage de l’appareil. Pour plus d’informations sur l’attribution de ressources au moment du démarrage, consultez Démarrage d’un appareil dans un pilote de fonction.

Une liste de ressources contient les types de ressources suivants :

  • Vecteurs d’interruption

  • Canaux DMA

  • Adresses de port d’E/S

  • Blocs d’adresses mémoire relatives au bus

Pour plus d’informations sur les types de ressources, consultez Ressources matérielles.

Un objet IResourceList encapsule à la fois les versions traduites et non traduites (ou « brutes ») d’une liste de ressources. Pour plus d’informations sur les ressources traduites et non traduites, consultez Mappage d’adresses Bus-Relative à des adresses virtuelles.

L’interface IResourceList prend en charge les méthodes suivantes :

IResourceList::AddEntry

IResourceList::AddEntryFromParent

IResourceList::FindTranslatedEntry

IResourceList::FindUntranslatedEntry

IResourceList::NumberOfEntries

IResourceList::NumberOfEntriesOfType

IResourceList::TranslatedList

IResourceList::UntranslatedList

Le fichier d’en-tête Portcls.h définit un ensemble de macros pour simplifier la gestion des objets resource-list. Ces macros génèrent des appels aux méthodes IResourceList . Pour plus d’informations, consultez IResourceList.

En outre, Portcls.h définit une paire de fonctions pour la création de listes de ressources :

PcNewResourceList

PcNewResourceSublist

Pour démarrer les appareils sur une carte audio carte, le système d’exploitation appelle la routine de périphérique de démarrage du pilote de l’adaptateur (voir Séquence de démarrage) et transmet un objet de liste de ressources en tant que paramètre d’entrée. Cette liste contient toutes les ressources système que le système d’exploitation a affectées au pilote de l’adaptateur.

Dans la routine start-device, le pilote de l’adaptateur démarre tous les périphériques du pilote de l’adaptateur (périphérique de vague, périphérique MIDI, etc.). Pour gérer chaque périphérique, le pilote d’adaptateur crée un objet de pilote miniport et son objet pilote de port associé. Le pilote de l’adaptateur divise les ressources de la liste des ressources entre les différents appareils de l’adaptateur carte. À cet effet, le pilote appelle généralement PcNewResourceSublist pour créer un objet de liste de ressources pour chaque appareil. Le pilote appelle ensuite IResourceList::AddEntryFromParent autant de fois que nécessaire pour copier les ressources sélectionnées de la liste parente dans les différentes listes enfants. En outre, le pilote de l’adaptateur peut s’affecter certaines ressources.

Ensuite, la routine start-device appelle la méthode IPort::Init de chaque pilote de port et passe l’objet de liste de ressources de l’appareil (contenant la liste enfant) en tant que paramètre d’entrée. La méthode IPort::Init de chaque pilote de port appelle la méthode IMiniportXxx::Init du pilote miniport correspondant, qui est l’une des suivantes :

IMiniportdMus::init

IMiniportmidi::init

IMiniportTopology::Init

IMiniportWaveCyclique::Init

IMiniportWavePci::init

La méthode IPort::Init transmet son objet de liste de ressources à la méthode IMiniportXxx::Init en tant que paramètre d’entrée. Le pilote miniport peut ensuite utiliser les canaux DMA, les interruptions et d’autres ressources système dans la liste des ressources.

Pour obtenir un exemple de code, consultez l’exemple de pilote audio Sb16 dans le Kit de pilotes Microsoft Windows (WDK).