Recherche et mappage de ressources matérielles dans les pilotes UMDF 1.x

Avertissement

UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2.

Les exemples UMDF 1 archivés sont disponibles dans la Windows 11, version 22H2 - Mise à jour des exemples de pilotes de mai 2022.

Pour plus d’informations, consultez Prise en main avec UMDF.

Si vous utilisez UMDF version 2.0 ou ultérieure, consultez Recherche et mappage de ressources matérielles.

Un pilote UMDF 1.x reçoit des ressources matérielles dans sa méthode de rappel IPnpCallbackHardware2::OnPrepareHardware . Le pilote utilise l’interface IWDFCmResourceList pour passer en revue la liste de ressources traduite et identifier les registres mappés en mémoire, les ports d’E/S et les interruptions.

Le pilote effectue une itération dans la liste des ressources en appelant IWDFCmResourceList::GetCount et IWDFCmResourceList::GetDescriptor.

Si le pilote reçoit des registres mappés en mémoire, il doit appeler IWDFDevice3::MapIoSpace pour mapper les registres avant de pouvoir y accéder. En règle générale, un pilote mappe ses registres dans sa méthode IPnpCallbackHardware2::OnPrepareHardware . Le pilote annule le mappage des registres dans son rappel IPnpCallbackHardware2::OnReleaseHardware en appelant IWDFDevice3::UnmapIoSpace. Notez que le mappage n’est pas nécessaire pour les ports d’E/S.

Pour obtenir un exemple montrant comment un pilote recherche et mappe des ressources de registre mappées en mémoire, consultez IWDFDevice3::MapIoSpace.