Risorse non elaborate e tradotte
Quando la funzione di callback EvtDeviceRemoveAddedResources o EvtDevicePrepareHardware riceve un elenco di risorse, riceve due versioni dell'elenco. Una versione rappresenta le risorse non elaborate del dispositivo e l'altra rappresenta le risorse tradotte del dispositivo. Entrambe le versioni rappresentano lo stesso set di risorse hardware, nello stesso ordine.
Le risorse non elaborate sono risorse identificate da indirizzi relativi al bus a cui è connesso il dispositivo. In genere, il driver che programma il dispositivo fornisce questi indirizzi al dispositivo.
Le risorse tradotte sono risorse identificate dagli indirizzi fisici di sistema usati dai driver per accedere alle risorse.
Un driver per un dispositivo bus PCI riceve le risorse elencate nell'ordine in cui vengono visualizzate nei registri indirizzi di base del dispositivo. Tuttavia, i descrittori di risorse aggiuntivi possono essere interleaved nell'elenco, in modo che la risorsa in corrispondenza dell'indice X nella barra non corrisponda alla risorsa nella stessa posizione di indice nell'elenco di risorse.
Per altre informazioni sulle risorse non elaborate e tradotte, vedere le descrizioni dei membri per la struttura CM_PARTIAL_RESOURCE_DESCRIPTOR .
Se l'elenco di risorse tradotte di un dispositivo contiene una risorsa con il membro Type della struttura CM_PARTIAL_RESOURCE_DESCRIPTOR impostata su CmResourceTypeMemory, ogni driver che accede a tale risorsa deve eseguire le operazioni seguenti:
- La funzione di callback EvtDevicePrepareHardware del driver deve chiamare MmMapIoSpace per eseguire il mapping degli indirizzi fisici del sistema agli indirizzi virtuali di sistema.
- La funzione di callback EvtDeviceReleaseHardware del driver deve chiamare MmUnmapIoSpace per annullare il mapping degli indirizzi.
Per altre informazioni sul mapping degli indirizzi relativi al bus, vedere Mapping di indirizzi Bus-Relative a indirizzi virtuali.