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::AddEntryFromParent
IResourceList::FindTranslatedEntry
IResourceList::FindUntranslatedEntry
IResourceList::NumberOfEntries
IResourceList::NumberOfEntriesOfType
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:
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:
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).