Delen via


Resourcelijstobjecten

The PortCls system driver implements the IResourceList interface for the benefit of miniport drivers. Een IResourceList-object vertegenwoordigt een lijst met configuratieresources. Dit is een lijst met de systeemhardwareresources die de Plug en Play-manager aan een apparaat toewijst tijdens het opstarten van het apparaat. Zie Een apparaat starten in een functiestuurprogramma voor meer informatie over resourcetoewijzing tijdens het opstarten.

Een lijst met resources bevat de volgende typen resources:

  • Interrupt vectors

  • DMA channels

  • I/O-poortadressen

  • Blokken van bus-relatieve geheugenadressen

For information about resource types, see Hardware Resources.

An IResourceList object encapsulates both the translated and untranslated (or "raw") versions of a resource list. Zie Toewijzing Bus-Relative adressen aan virtuele adressen voor meer informatie over vertaalde en niet-vertaalde resources.

The IResourceList interface supports the following methods:

IResourceList::AddEntry

IResourceList::AddEntryFromParent

IResourceList::FindTranslatedEntry

IResourceList::FindUntranslatedEntry

IResourceList::NumberOfEntries

IResourceList::NumberOfEntriesOfType

IResourceList::TranslatedList

IResourceList::UntranslatedList

Met Portcls.h voor headerbestanden wordt een set macro's gedefinieerd om de verwerking van resourcelijstobjecten te vereenvoudigen. These macros generate calls to the IResourceList methods. Zie IResourceList voor meer informatie.

Daarnaast definieert Portcls.h een paar functies voor het maken van resourcelijsten:

PcNewResourceList

PcNewResourceSublist

To start up the devices on an audio adapter card, the operating system calls the adapter driver's start-device routine (see Startup Sequence) and passes in a resource list object as an input parameter. Deze lijst bevat alle systeembronnen die het besturingssysteem aan het adapterstuurprogramma heeft toegewezen.

In de routine van het startapparaat start het adapterstuurprogramma alle apparaten van het adapterstuurprogramma op (golfapparaat, MIDI-apparaat, enzovoort). Om elk apparaat te beheren, maakt het adapterstuurprogramma een minipoortstuurprogrammaobject en het bijbehorende poortstuurprogrammaobject. Het adapterstuurprogramma verdeelt de resources in de resourcelijst tussen de verschillende apparaten in de adapterkaart. For this purpose, the driver typically calls PcNewResourceSublist to create a resource list object for each device. The driver then calls IResourceList::AddEntryFromParent as many times as necessary to copy selected resources from the parent list into the various child lists. Daarnaast kan het adapterstuurprogramma bepaalde resources aan zichzelf toewijzen.

Next, the start-device routine calls each port driver's IPort::Init method and passes in the device's resource list object (containing the child list) as an input parameter. Each port driver's IPort::Init method calls the corresponding miniport driver's IMiniportXxx::Init method, which is one of the following:

IMiniportDMus::Init

IMiniportMidi::Init

IMiniportTopology::Init

IMiniportWaveCyclic::Init

IMiniportWavePci::Init

The IPort::Init method passes its resource list object to the IMiniportXxx::Init method as an input parameter. Het minipoortstuurprogramma kan vervolgens gebruikmaken van de DMA-kanalen, interrupts en andere systeemresources in de lijst met resources.

Zie het Sb16-voorbeeldaudiostuurprogramma in de Microsoft Windows Driver Kit (WDK) voor een codevoorbeeld.