Développement de Drivers Windows avec WDM et WDF

Partager par email

×

Code Titre Durée Prix HT
DXP200 Développement de Drivers Windows avec WDM et WDF 5 jours Nous consulter

Objectifs

  • Découvrir et maîtriser les différents environnements de développement de drivers proposés par Microsoft pour les systèmes Windows 2000, XP, Server 2003 et 2008, Vista et Seven.
  • Connaître et comprendre le développement de drivers en mode utilisateur (UMDF) ou de drivers en mode noyau (WDM et KMDF).

Public

Développeurs de drivers

Pré-requis

Bonne connaissance de la programmation Windows et du langage C++.

Post-Formation

Méthodes

50% Pratique 50% Théorique

Programme

Introduction

  • Les drivers Windows
  • Objets noyau et structures de données
  • Le modèle d'entrées/sorties de windows
  • Le plug&play et la gestion de l'alimentation
  • Les bases de la programmation noyau
  • Architecture du noyau Windows
  • Vocabulaire de base
  • Les fondamentaux de WDM et WDF
  • Historique: NT, VxD, WDM et WDF
  • Le modèle objet WDF: KMDF et UMDF
  • Le modèle d'entrée/sortie
  • Plug&play et gestion de l'alimentation
  • Sécurité
  • Support vérification,trace et débogage
  • Gestion de version

Le framework

  • Introduction aux frameworks de drivers
  • L'architecture de WDF
  • L'infrastructure d'UMDF
  • L'infrastructure de KMDF
  • Le support des Drivers et Devices dans WDF
  • Le modèle objet WDF
  • Vue d'ensemble du modèle objet
  • L'implémentation du modèle objet UMDF
  • L'implémentation du modèle objet KMDF
  • Création d'objets
  • Hiérarchie et durée de vie des objets
  • Les context area des objets
  • Structure et initialisation des drivers
  • Les composants obligatoires
  • Le «Driver Object»
  • Le «Device Object»
  • Les files et autres objets support
  • Les interfaces de périphériques
  • Création et initialisation d'un device UMDF
  • Création et initialisation d'un device KMDF
  • Enumération des devices fils
  • Technique de nommage des drivers KMDF

Mise en euvre des fondamentaux

  • Gestion plug&play et alimentation
  • Introduction
  • Support dans WDF
  • Les séquences de call-back
  • Comment implémenter le support PnP et alimentation
  • Cas des drivers «logiciel seul»
  • Cas d'un matériel simple
  • Gestion avancée dans les drivers KMDF
  • Le flot et la répartition des entrées/sorties
  • Types communs de requêtes d'E/S
  • Types de transferts d'E/S
  • Objets de requête d'E/S
  • Files d'E/S
  • Callbacks d'événements d'E/S
  • Finaliser une E/S
  • Requêtes annulées et suspendues
  • Timeout adaptatifs dans UMDF
  • Les E/S auto gérées
  • Les cibles E/S
  • Création et gestion d'une cible d'E/S
  • Création d'une requête d'E/S
  • Les objets mémoire et les buffers pour les requêtes d'E/S
  • Formatage des requêtes d'E/S
  • Comment envoyer une requête d'E/S
  • Gestion des requêtes d'E/S dans les drivers UMDF
  • Les requêtes d'E/S USB
  • Synchronisation
  • Quand la synchronisation est-elle requise?
  • Les fonctionalités de synchro de WDF
  • Sérialisation des E/S
  • Les Wait locks et Spin locks de KMDF
  • Synchronisation et annulation des requêtes d'E/S KMDF
  • Bonnes pratiques
  • Tracage et diagnostique de drivers
  • Les bases du tracage de logiciel
  • Les fonctions et macros de tracage
  • Support du tracage dans un driver
  • Les outils de tracage
  • Exécution d'une session de tracage de logiciel
  • Bonnes pratiques
  • Les objets support de WDF
  • Allocation mémoire
  • Accès au registre
  • Objets généraux
  • Les collections KMDF
  • Les timers KMDF
  • Le support WMI dans KMDF
  • Le template de driver UMDF
  • Description du squelette exemple
  • Comment personnaliser le squelette exemple
  • Comment personnaliser le build et les fichiers de support à l'installation

Spécificités des drivers KMDF

  • Au delà du framework
  • Comment utiliser les services système derrière le framework
  • Comment gérer les requêtes qui ne sont pas prises en charge par le framework
  • Ordonnancement, contexte de Threads et IRQL
  • Les threads
  • Les niveaux d'interruption (IRQL)
  • Les work items et les threads dans le driver
  • Bonnes pratiques, pièges
  • Les ressources et interruptions matérielles
  • Les ressources matérielles
  • Les interruptions et le service des interruptions
  • DMA
  • Les bases et la terminologie
  • Informations DMA spécifiques au périphérique
  • L'abstraction DMA de Windows
  • Implémenter un driver DMA
  • Test d'un driver DMA
  • Bonnes pratiques
  • Introduction à COM
  • Aper&ccedilu de COM
  • Comment utiliser les objets COM UMDF
  • Implémenter l'infrastructure de DLL
  • Implémenter les objets callback

Construire, installer et tester les drivers WDF

  • Construire les drivers WDF
  • Considérations générales sur la construction
  • Cas des drivers UMDF
  • Cas des drivers KMDF
  • Installation
  • Les bases de l'installation
  • Création d'un INF
  • Signature et distribution des packages de drivers
  • Installation d'un driver
  • Dépanner les problèmes d'installation
  • Outils de tests
  • Généralités sur le test de drivers
  • Le «Driver Verifier»
  • KMDF Verifier
  • UMDF Verifier
  • Application Verifier
  • Bonnes pratiques
  • Debogage des drivers
  • Principes de débogage de drivers
  • Présentation de Windbg
  • Préparer un driver pour le debogage
  • Visualiser les messages de trace avec Windbg
  • Visualiser le log KMDF avec Windbg

Environnement

Windows

Mot-clés

DXP200 developpement drivers Windows WDM WDF DXP200

Commander