Partager via


Présentation des objets framework

Les interfaces que windows Driver Frameworks (WDF) fournissent aux pilotes sont basées sur des objets. L’infrastructure définit plusieurs objets. Ces objets exportent des méthodes (fonctions) et des propriétés (données) auxquelles les pilotes peuvent accéder. Les objets framework lancent également des événements, que les pilotes peuvent prendre en charge en fournissant des fonctions de rappel d’événements.

Les pilotes basés sur l’infrastructure n’accèdent jamais directement aux objets d’infrastructure. Au lieu de cela, les pilotes référencent les objets par des handles, que le pilote transmet comme entrée aux méthodes d’objet.

Tous les objets framework ont les caractéristiques suivantes :

Nombre de références
L’infrastructure gère le nombre de références à chaque objet. Lorsque l’infrastructure crée un objet, il définit le nombre de références de l’objet sur un. Lorsque l’infrastructure a terminé d’utiliser un objet, elle décrémente le nombre de références. L’infrastructure ne peut pas supprimer l’objet tant que le nombre de références n’est pas décrémenté à zéro, de sorte que les pilotes peuvent empêcher la suppression d’un objet en incrémentant son nombre de références.

Espace de contexte
Les pilotes basés sur l’infrastructure peuvent créer un espace de contexte spécifique à l’objet pour chaque objet d’infrastructure que le pilote reçoit ou crée. Les pilotes doivent stocker toutes les données spécifiques à un objet dans l’espace de contexte d’un objet. Pour plus d’informations sur l’espace contextuel, consultez Espace de contexte d’objet framework.

Fonctions de rappel de suppression
Les pilotes peuvent inscrire des fonctions de rappel que l’infrastructure appelle lors de la suppression d’un objet. Les fonctions de rappel peuvent supprimer des ressources affectées au pilote, telles que des allocations de mémoire spécifiques à un objet. Pour plus d’informations sur ces fonctions de rappel, consultez Framework Object Life Cycle.

Objet parent
Tous les objets framework peuvent avoir un objet parent. L’infrastructure désigne un objet parent par défaut pour la plupart des objets. Lorsqu’un pilote crée un objet, il peut désigner un objet parent qui remplace l’objet parent par défaut de l’objet. Pour désigner l’objet parent d’un objet, les pilotes définissent le membre ParentObject de la structure WDF_OBJECT_ATTRIBUTES de l’objet . (Pour quelques types d’objets, les pilotes ne peuvent pas remplacer l’objet parent par défaut.) Quand l’infrastructure ou un pilote supprime un objet parent, l’infrastructure supprime également les enfants de l’objet parent.

Pour obtenir une vue d’ensemble de tous les objets définis par WDF, consultez Résumé des objets framework.