Création de pilotes KMDF Miniport

Certains pilotes miniport peuvent utiliser Kernel-Mode Driver Framework, si l’architecture port/miniport permet au pilote miniport de communiquer avec d’autres pilotes à l’aide d’interfaces WDM ou framework. Par exemple, les pilotes miniport NDIS avec un bord inférieur WDM peuvent utiliser l’infrastructure pour implémenter le bord inférieur.

Si vous souhaitez que votre pilote miniport utilise le framework, celui-ci doit :

  • Définissez l’indicateur WdfDriverInitNoDispatchOverride dans le membre DriverInitFlags de la structure WDF_DRIVER_CONFIG du pilote avant d’appeler WdfDriverCreate. La définition de cet indicateur permet au pilote de port, au lieu de l’infrastructure, d’intercepter les paquets de demandes d’E/S (IRP) que le gestionnaire d’E/S a dirigés vers le pilote.

  • Appelez WdfDeviceMiniportCreate au lieu de WdfDeviceCreate pour créer des objets d’appareil framework pour les appareils du pilote miniport. Le pilote miniport doit appeler WdfDeviceMiniportCreate lorsque son pilote de port l’informe qu’un appareil est disponible.

  • Appelez WdfObjectDelete pour supprimer l’objet d’appareil créé par WdfDeviceMiniportCreate , lorsque le pilote détermine que l’appareil a été supprimé. (Étant donné que le pilote a défini l’indicateur WdfDriverInitNoDispatchOverride , l’infrastructure ne peut pas déterminer quand l’appareil est supprimé et ne peut pas supprimer l’objet d’appareil.)

  • Appelez WdfDriverMiniportUnload lorsque le pilote de port informe le pilote miniport qu’il est sur le point d’être déchargé.

Un pilote miniport peut utiliser l’infrastructure uniquement si l’appareil sous-jacent prend en charge Plug-and-Play (PnP). Les pilotes miniport ne peuvent pas utiliser les objets de périphérique de contrôle de l’infrastructure.

Des restrictions s’appliquent aux objets d’appareil créés par la méthode WdfDeviceMiniportCreate . Pour obtenir la liste de ces restrictions, consultez WdfDeviceMiniportCreate.