Framework File, objet
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’objet de fichier d’infrastructure est exposé aux pilotes par l’interface IWDFFile . Il s’agit de la représentation framework de l’appareil ouvert. Lorsqu’une application ouvre l’appareil via la fonction CreateFile De Microsoft Win32, l’infrastructure crée un objet file pour représenter l’appareil ouvert instance. Par conséquent, l’objet de fichier d’infrastructure est conceptuellement équivalent au handle Win32 retourné à partir de l’appel de l’application à CreateFile. L’infrastructure peut créer plusieurs objets de fichiers associés à un seul appareil. Chaque objet fichier est créé pour chaque appel réussi à CreateFile. Toutes les opérations d’E/S, telles que les lectures et les écritures, sont ciblées sur un instance fichier-objet spécifique.
Note Toutes les requêtes passées aux pilotes UMDF sont associées à des objets fichier. Toutefois, les requêtes passées aux pilotes WDM et KMDF ne sont parfois pas associées à des objets fichier.
Un pilote UMDF peut appeler la méthode IWDFIoRequest::GetFileObject pour obtenir l’objet fichier associé à une requête.
Lorsque votre pilote appelle GetFileObject, l’infrastructure incrémente le nombre de références sur l’interface. Votre pilote est chargé de libérer la référence lorsque vous avez terminé avec le pointeur d’interface. Pour ce faire, utilisez un pointeur intelligent qui décrémente automatiquement le nombre de références lorsque l’objet sort de son contexte, ou appelez Release sur l’interface lorsque vous en avez terminé. Pour obtenir un exemple de code montrant comment utiliser un pointeur intelligent, consultez GetFileObject.