Oggetti elenco risorse

Il driver di sistema PortCls implementa l'interfaccia IResourceList per il vantaggio dei driver miniport. Un oggetto IResourceList rappresenta un elenco di risorse di configurazione, ovvero un elenco delle risorse hardware di sistema assegnate dal gestore di Plug and Play a un dispositivo in fase di avvio del dispositivo. Per altre informazioni sull'assegnazione di risorse al momento dell'avvio, vedere Avvio di un dispositivo in un driver di funzione.

Un elenco di risorse contiene i tipi di risorse seguenti:

  • Vettori di interruzione

  • Canali DMA

  • Indirizzi delle porte di I/O

  • Blocchi di indirizzi di memoria relativi al bus

Per informazioni sui tipi di risorse, vedere Risorse hardware.

Un oggetto IResourceList incapsula sia le versioni tradotte che non tradotte (o non elaborate) di un elenco di risorse. Per altre informazioni sulle risorse tradotte e non tradotte, vedere Mapping di indirizzi Bus-Relative a indirizzi virtuali.

L'interfaccia IResourceList supporta i metodi seguenti:

IResourceList::AddEntry

IResourceList::AddEntryFromParent

IResourceList::FindTranslatedEntry

IResourceList::FindUntranslatedEntry

IResourceList::NumberOfEntries

IResourceList::NumberOfEntriesOfType

IResourceList::TranslatedList

IResourceList::UntranslatedList

Il file di intestazione Portcls.h definisce il set di macro per semplificare la gestione degli oggetti elenco di risorse. Queste macro generano chiamate ai metodi IResourceList . Per altre informazioni, vedere IResourceList.

Inoltre, Portcls.h definisce una coppia di funzioni per la creazione di elenchi di risorse:

PcNewResourceList

PcNewResourceSublist

Per avviare i dispositivi in una scheda adattatore audio, il sistema operativo chiama la routine start-device del driver dell'adattatore (vedere Sequenza di avvio) e passa un oggetto elenco di risorse come parametro di input. Questo elenco contiene tutte le risorse di sistema assegnate dal sistema operativo al driver dell'adattatore.

Nella routine del dispositivo iniziale, il driver dell'adattatore avvia tutti i dispositivi del driver dell'adattatore (dispositivo wave, dispositivo MIDI e così via). Per gestire ogni dispositivo, il driver dell'adattatore crea un oggetto driver miniport e il relativo oggetto driver di porta associato. Il driver dell'adattatore divide le risorse nell'elenco di risorse tra i vari dispositivi nella scheda adattatore. A questo scopo, il driver chiama in genere PcNewResourceSublist per creare un oggetto elenco di risorse per ogni dispositivo. Il driver chiama quindi IResourceList::AddEntryFromParent quante volte necessario per copiare le risorse selezionate dall'elenco padre nei vari elenchi figlio. Inoltre, il driver dell'adattatore potrebbe assegnare alcune risorse a se stesso.

La routine del dispositivo iniziale chiama quindi il metodo IPort::Init del driver di porta e passa l'oggetto elenco risorse del dispositivo (contenente l'elenco figlio) come parametro di input. Ogni metodo IPort::Init del driver di porta chiama il metodo IMiniportXxx::Init corrispondente, ovvero uno dei seguenti:

IMiniportDMus::Init

IMiniportMidi::Init

IMiniportTopology::Init

IMiniportWaveCyclic::Init

IMiniportWavePci::Init

Il metodo IPort::Init passa l'oggetto elenco risorse al metodo IMiniportXxx::Init come parametro di input. Il driver miniport può quindi usare i canali DMA, gli interruzioni e altre risorse di sistema nell'elenco di risorse.

Per un esempio di codice, vedere il driver audio di esempio Sb16 in Microsoft Windows Driver Kit (WDK).