Partager via


WDF Architecture

WDF fournit des interfaces basées sur des objets pour les pilotes. Les interfaces d’objet définies par l’infrastructure se composent des éléments suivants :

Méthodes d’objet
Les méthodes sont des fonctions qu’un pilote peut appeler pour effectuer une opération sur l’objet ou pour obtenir ou définir une propriété d’objet. Les méthodes sont nommées WdfObjectAction, où Object décrit l’objet et Action indique ce que fait la fonction. Par exemple, WdfDeviceCreate crée un objet d’appareil.

Fonctions de rappel d’événement d’objet
Les fonctions de rappel d’événements sont des fonctions qu’un pilote fournit. Chaque fonction de rappel d’événement est associée à un événement spécifique qui peut se produire sur un objet. L’infrastructure appelle la fonction de rappel d’événement lorsque l’événement associé se produit. Par convention, les espaces réservés pour les fonctions de rappel d’événements sont appelés EvtObjectEvent, même si vous pouvez nommer ces rappels tout ce que vous choisissez dans votre pilote. Par exemple, un pilote inscrit le rappel d’événement EvtDeviceD0Entry pour être averti lorsque son appareil entre dans l’état de fonctionnement.

Propriétés de l’objet
Les propriétés sont des valeurs stockées dans un objet et qu’un pilote peut obtenir (c’est-à-dire obtenir) et définir (autrement dit, modifier). Dans de nombreux cas, les propriétés sont mappées directement aux champs dans les objets WDM correspondants. Les propriétés qui ne peuvent pas échouer sont nommées WdfObjectGetValue et WdfObjectSetValue, et les propriétés qui peuvent échouer sont nommées WdfObjectRetrieveValue et WdfObjectAssignValue. Object décrit l’objet et Value identifie les données que la fonction définit ou retourne. Par exemple, WdfDeviceGetDriver retourne un handle à l’objet pilote associé à l’objet d’appareil.

Handles d’objet
Un pilote basé sur l’infrastructure n’accède jamais directement aux objets d’infrastructure. Au lieu de cela, le pilote reçoit des handles d’objet, qu’il peut passer aux méthodes d’un objet.

L’infrastructure définit plusieurs types d’objets que les pilotes basés sur l’infrastructure utilisent :

  • Un objet de pilote d’infrastructure représente chaque pilote.

  • Un objet d’appareil framework représente chaque appareil pris en charge par un pilote.

  • Les objets de file d’attente framework représentent les files d’attente d’E/S qui reçoivent les demandes d’E/S d’un appareil.

  • Les objets de demande d’infrastructure représentent les demandes d’E/S que chaque file d’attente d’E/S reçoit.

Pour obtenir la liste de tous les objets que le framework définit, consultez Résumé des objets d’infrastructure.