Partager via


Hiérarchie d’objets framework

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 mise à jour des exemples de pilotes Windows 11, version 22H2 - Mai 2022.

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

L’illustration suivante montre la hiérarchie d’objets framework parent-enfant.

umdf hiérarchie d’objets parent-enfant.

L’étendue de durée de vie des objets d’infrastructure est déterminée par leur emplacement dans la hiérarchie et la façon dont les objets sont créés. L’étendue de durée de vie des objets framework appartient à l’une des catégories suivantes :

  • L’infrastructure contrôle la création et la destruction des objets.

    L’infrastructure crée et détruit des objets, tels que l’objet pilote et l’objet de périphérique, en réponse aux événements système. Lorsqu’un pilote en mode utilisateur appelle la méthode IWDFDriver::CreateDevice pour créer l’objet de périphérique, le pilote peut éventuellement s’inscrire pour être averti par l’infrastructure avant la destruction de l’objet de périphérique.

  • L’infrastructure crée l’objet ; toutefois, le pilote contrôle le moment où l’objet est libéré.

    L’objet de demande d’E/S suit ce modèle lorsque les E/S sont présentées au pilote. L’infrastructure crée l’objet de requête et la durée de vie de l’objet de requête est valide jusqu’à ce que le pilote appelle la méthode IWDFIoRequest::Complete .

  • Le pilote crée l’objet et associe l’objet à un autre objet framework.

    Certains objets d’infrastructure sont créés par une méthode exposée par un objet d’infrastructure parent instance auquel les objets doivent être associés à des fins de gestion de la durée de vie. La méthode IWDFDevice::CreateIoQueue est un exemple de ce modèle. Si un appel à IWDFDevice::CreateIoQueue réussit, la file d’attente d’E/S nouvellement créée est associée à l’appareil instance que représente l’interface IWDFDevice. Lorsque l’objet parent est détruit, l’infrastructure nettoie automatiquement les instances enfants. Les pilotes sont avertis de ces événements si les pilotes inscrivent des fonctions de rappel appropriées auprès de l’infrastructure.