Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Le risorse hardware sono i percorsi bus assegnabili e indirizzabili che consentono ai dispositivi periferici e ai processori di sistema di comunicare tra loro. Le risorse hardware in genere includono indirizzi di porta di I/O, vettori di interrupt e blocchi di indirizzi di memoria relativi al bus.
Prima che il sistema possa comunicare con un'istanza del dispositivo, il gestore PnP deve assegnare risorse hardware all'istanza del dispositivo in base alle informazioni sulle risorse disponibili e su quelle che l'istanza del dispositivo è in grado di usare. Le risorse vengono assegnate a ogni nodo del dispositivo nell'albero dei dispositivi (presupponendo che il dispositivo rappresentato richieda risorse e tali risorse siano disponibili). Il gestore PnP tiene traccia delle risorse hardware usando elenchi, associati ai nodi del dispositivo. Usa due tipi di elenchi:
Elenco dei requisiti delle risorse
I dispositivi sono in genere progettati per funzionare all'interno di intervalli di assegnazioni di risorse. Ad esempio, un dispositivo potrebbe richiedere un solo vettore di interrupt, ma potrebbe essere in grado di usare uno qualsiasi di un intervallo di vettori. Per ogni istanza del dispositivo, il gestore PnP gestisce un elenco di requisiti delle risorse che specifica tutti gli intervalli di risorse hardware in cui il dispositivo può funzionare. Il nome dell'elenco deriva dal fatto che il gestore PnP deve scegliere le risorse da questo elenco quando le assegna al dispositivo.
Il codice in modalità kernel specifica gli elenchi di requisiti delle risorse usando strutture IO_RESOURCE_REQUIREMENTS_LIST (come input per le routine di sistema o in risposta a IRPs). Il codice in modalità utente specifica gli elenchi di requisiti delle risorse usando le strutture di Gestione configurazione PnP come input per le funzioni di gestione configurazione PnP.
Elenco risorse
Quando il manager PnP assegna risorse a un dispositivo, tiene traccia di queste assegnazioni creando un elenco di risorse assegnate per ogni istanza del dispositivo. Questi elenchi possono essere denominati elenchi di assegnazioni di risorse, ma questo nome viene in genere abbreviato in elenchi di risorse. Il gestore PnP può modificare il contenuto dell'elenco di risorse man mano che i dispositivi vengono aggiunti o rimossi da un sistema e le risorse vengono successivamente riallocati. Le risorse possono essere assegnate anche da un BIOS PnP. Inoltre, il software di installazione, usando i file INF o l'input dell'utente, può forzare il manager PnP ad assegnare risorse specifiche a un dispositivo.
Il codice in modalità kernel specifica gli elenchi di risorse usando strutture CM_RESOURCE_LIST (come input per le routine di sistema o in risposta agli IRP). Il codice in modalità utente specifica gli elenchi di risorse usando le strutture di Gestione configurazione PnP come input per le funzioni di gestione configurazione PnP.
Il gestore PnP archivia gli elenchi di risorse e gli elenchi di risorse nel Registro di sistema, in cui possono essere visualizzati usando Regedit.exe. I driver possono accedere a questi elenchi indirettamente tramite routine Plug and Play e Plug and Play IrP secondari. Le applicazioni in modalità utente possono usare le funzioni di gestione della configurazione PnP. I driver e le applicazioni non devono accedere direttamente a questi elenchi usando funzioni del Registro di sistema perché il formato di archiviazione è soggetto a modifiche in una versione futura.
Configurazioni logiche
Entrambi gli elenchi di risorse e gli elenchi di risorse contengono una o più configurazioni logiche. Ogni configurazione logica identifica un intervallo di risorse accettabili o un set di risorse specifiche per un'istanza specifica del dispositivo. Inoltre, ogni configurazione logica per un'istanza del dispositivo appartiene a uno dei tipi di configurazione logici. Di seguito sono elencati i tipi di configurazione. A ogni istanza del dispositivo possono essere assegnate diverse configurazioni logiche, con gli stessi tipi o tipi diversi.
Tipi di configurazione logica per gli elenchi dei requisiti delle risorse
Configurazione di base
Elenco dei requisiti delle risorse che identifica gli intervalli di risorse forniti da un dispositivo Plug and Play. Un driver deve restituire questo elenco quando riceve il IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP. La configurazione di base per un dispositivo non PnP può essere descritta in un file INF. In questo caso, il software di installazione del dispositivo legge il file INF e chiama le funzioni di Gestione configurazione PnP per creare un elenco dei requisiti.
Configurazione filtrata
Un elenco dei requisiti delle risorse fornito a uno stack di driver, eventualmente modificato e poi restituito dallo stesso stack di driver in risposta all'IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Il gestore PnP usa la configurazione filtrata risultante come base per l'allocazione delle risorse.
Eseguire l'override della configurazione
Elenco dei requisiti delle risorse che esegue l'override delle configurazioni di base. In genere, un programma di installazione del dispositivo crea una configurazione di override se il file INF del dispositivo include una sezione INF DDInstall.LogConfigOverride. Una configurazione di override non viene rimossa se il dispositivo viene fisicamente rimosso dal sistema.
Tipi di configurazione logici per gli elenchi di risorse
Configurazione di avvio
Elenco di risorse che identifica le risorse assegnate a un'istanza del dispositivo all'avvio del sistema. Per i dispositivi PnP, questa è la configurazione fornita dal BIOS. Per i dispositivi non PnP, queste risorse potrebbero essere selezionate dai jumper sulla scheda. Un driver deve restituire questo elenco di risorse quando riceve il IRP_MN_QUERY_RESOURCES IRP. Una configurazione di avvio può essere parzialmente vuota se il BIOS non è in grado di determinare tutte le risorse usate da un dispositivo. Il gestore PnP può modificare questo elenco se un dispositivo viene rimosso o riavviato. Per i dispositivi non PnP, questo tipo di configurazione può essere usato invece di una configurazione forzata, nel qual caso ha una priorità di configurazione inferiore rispetto a una configurazione forzata equivalente. Per ogni istanza del dispositivo può esistere una sola configurazione di avvio.
Configurazione forzata
Elenco di risorse che identifica le risorse che un'istanza del dispositivo deve usare. Una configurazione forzata impedisce al gestore PnP di assegnare altre risorse all'istanza del dispositivo. Un programma di installazione del dispositivo può creare una configurazione forzata in base alle informazioni contenute in un INF o ricevute da un utente. Una configurazione forzata non viene rimossa se il dispositivo viene fisicamente rimosso dal sistema. Per ogni istanza del dispositivo può esistere una sola configurazione forzata.
Configurazione allocata
Elenco di risorse che identifica le risorse attualmente in uso da un'istanza del dispositivo. Per ogni istanza del dispositivo può esistere una sola configurazione allocata.
I driver di dispositivo sono responsabili della determinazione della configurazione di base, della configurazione filtrata e della configurazione di avvio di un dispositivo compatibile con PnP e per la restituzione di tali informazioni in risposta ai runtime di integrazione inviati dal gestore PnP. Per altre informazioni, vedere Aggiunta di un dispositivo PnP a un sistema in esecuzione. Il software di installazione dei driver può creare configurazioni di override, configurazioni forzate e, per dispositivi non PnP, configurazioni di avvio. Il gestore PnP gestisce la configurazione allocata di ogni istanza del dispositivo.
Una priorità viene assegnata a ogni configurazione al momento della creazione. Se il gestore PnP rileva che a un'istanza del dispositivo sono state assegnate diverse configurazioni logiche dello stesso tipo, tenta di usare quella con la priorità più alta per prima. Se la configurazione causa conflitti di risorse, prova la configurazione con la priorità più bassa successiva. Per un elenco delle priorità di configurazione, vedere CM_Add_Empty_Log_Conf.