Etienne Tremblay - PowerPoint PPT Presentation

1 / 12
About This Presentation
Title:

Etienne Tremblay

Description:

Un pilote de p riph rique est un programme qui g re les acc s un p riph rique. ... Par ailleurs, les pilotes ont la responsabilit de s'assurer qu'un ... – PowerPoint PPT presentation

Number of Views:86
Avg rating:3.0/5.0
Slides: 13
Provided by: Sab70
Category:

less

Transcript and Presenter's Notes

Title: Etienne Tremblay


1
Etienne Tremblay
  • Ordinateurs, Structure et Applications

GIF-16116
Cours 21, Les pilotes de périphériques
Université Laval, Hiver 2007
2
Rôle et Définition
  • Un pilote de périphérique est un programme qui
    gère les accès à un périphérique. Il fournit un
    ensemble de fonctions standards qui permet à une
    application daccéder au matériel.
  • Sous Windows, le gestionnaire de périphérique
    (device manager) est un programme qui gère le
    matériel et les pilotes de périphériques (device
    driver). Ne pas confondre gestionnaire et pilote
    ?.

3
Les types de pilotes
  • Windows 2000 supportent 2 catégories de pilotes
    de périphériques WDM et les autres pilotes
    (device-class-specific pilote models dans le
    jargon de Microsoft). WDM signifie Windows pilote
    Model. Il sagit dun modèle générique de pilote
    de périphérique. Les autres pilotes sont des
    pilotes du style de ceux de Windows NT Un pilote
    port écrit par Microsoft est apparié avec un
    pilote miniport écrit par le vendeur du
    périphérique. Le pilote port exécute la plupart
    des tâches reliées à la classe de périphérique
    alors que le pilote miniport exécute les tâches
    spécifiques au périphérique connecté. Par
    exemple, la pilote de port SCSI gèrera la plupart
    des opérations reliés au port SCSI tandis que le
    pilote miniport soccupera des opérations reliées
    à un type particulier dadaptateur SCSI.
  • Les pilotes WDM supportent le Plug and Play qui
    trouve de nouveaux appareils branchés. Ils
    sinstallent à partir dun fichier INF et il
    existe plusieurs pilotes de base pour des bus ou
    des classes dappareil.
  • Les pilotes de style Windows NT ont besoin dun
    programme dinstallation et cest le pilote qui
    doit trouver les périphériques connectés.
  • Les deux types de pilotes fonctionnent ont un
    fonctionnement interne similaire ils utilisent
    des IRPs (I/O Request Packets), ils ont le même
    modèle de processeur, et ils gèrent la puissance
    (mode veille) ou le WMI de la même manière
    (Windows Management Interface. Il sagit de
    fonctions permettant dobtenir de linformation
    sur les performances des pilotes).

4
Plug And Play (PnP)
  • Le rôle du gestionnaire de Plug And Play est de
    gérer lajout ou le retraits de périphériques. Le
    Plug And Play a les fonctionnalités suivantes
  • Détecter si un appareil est ajouté ou retiré.
  • Charger des pilotes de périphériques au besoin.
  • Gérer les ressources pour les appareils (IRQ,
    DMA, etc.)
  • Envoyer des messages au pilotes pour lui signaler
    des évènements (Addition/retrait dappareil,
    assignement/re-assignement de ressources)

5
Pilotes et sécurité
  • Les pilotes de périphériques sont considérés
    comme sûrs. Alors que les accès à la mémoire et
    aux ressources sont contrôlés pour une
    application, ce nest pas le cas des pilotes de
    périphériques. Ils opèrent en mode noyau et
    peuvent faire planter le système dexploitation.
  • Par ailleurs, les pilotes ont la responsabilité
    de sassurer quun usager non autorisé na pas
    accès à un périphérique. Pour plus de
    renseignement, lire http//www.microsoft.com/whdc/
    pilote/security/drvsecure.mspx.

6
Accès aux I/Os Schéma général (1/3)
7
Accès aux I/Os Schéma général (2/3)
  • Tous les accès aux périphériques sont vus comme
    des accès à un fichier pour les applications
    Windows.
  • Pour communiquer avec un périphérique, une
    application doit ouvrir un lien de communication
    avec le périphérique (Open file), puis faire des
    écritures et des lectures (Read/Write file). Un
    handle est un numéro qui est attribué à un
    fichier lors de son ouverture. Ce numéro sert à
    identifier le fichier/périphérique pour toutes
    les opérations sur le fichier subséquentes.
  • Les requêtes dI/Os sont envoyées à lI/O manager
    (gestionnaire dE/S). Une routine dI/O crée un
    IRP (I/O Request Paquet) qui est envoyé au pilote
    de périphérique approprié. Un IRP dernier est un
    objet décrivant une requête dI/O.
  • Le pilote de périphérique traite le IRP et il
    envoie des commandes au périphérique.
  • Le périphérique reçoit les commandes du pilote de
    périphérique. Il les exécute, puis signale
    quelles sont terminées par une(des)
    interruption(s).
  • La routine dinterruption (ISR) redonne le
    contrôle au pilote de périphérique qui termine le
    transfert de donnée du/vers le périphérique.
  • Le pilote de périphérique signale à la routine
    dI/O que lopération est complétée. La routine
    dI/O, à son tour, signale au processus qu
    lopération est complétée.

8
Accès aux I/Os Schéma général (3/3)
Tiré des notes de cours de IFT-10544, Université
Laval, session A04. Modifié par Etienne Tremblay
9
WDM driver stack
  • Un pilote de périphérique est habituellement
    constitué de plusieurs pilotes de périphériques
    disposé en couches des pilotes haut niveau
    communique les IRP vers des pilotes bas niveau
    qui remonte ensuite le résultat de la transaction
    avec le périphérique. Chaque couche de la pile
    de pilote de périphérique implémente de
    nouvelles fonctionnalité pour le périphérique. Un
    pilote nayant quune seule couche est dit
    monolithique.
  • Il y a 3 types de couches de pilotes filtre,
    fonction/classe et bus. Les couches filtres
    ajoutent une fonctionnalité sans changer le mode
    dopération du périphérique. Exemple Gestion de
    puissance. Les couches Functions/Classes
    décrivent les fonctionnalités dun périphérique
    en particulier. Exemple HID (Voir prochain
    cours!). Les couches BUS gèrent les bus du PC.
    Elles sont déjà implémentées dans Windows. Liste
    des pilotes de bus standard Port, IEEE1394
    (Firewire), USB, SCSI, ACPI, PCI, PnPISA.

10
Exemple de driver stack Clavier HID USB
11
Fonctions dun pilote de périph.
  • Un pilote de périphérique est constitué dun
    ensemble de routines. Ces routines sont appelées
    par le système dexploitation lors de certains
    évènements (pour traiter un IRP par exemple). On
    dit que les routines sont callback , parce
    quelle sont appelées par le noyau sous certaines
    circonstances, pas par le pilote de périphérique.
  • Le pilote de périphérique doit sinitialiser et
    se retirer de la mémoire proprement. Par exemple,
    il doit faire le lien entre ses routines et les
    circonstances décrites plus bas lors de son
    initialisation.
  • Un pilote de périphérique doit gérer lajout ou
    le retrait de périphérique.
  • Un pilote de périphérique doit traiter les IRPs
    faisant des accès au périphérique (Create, Read,
    Write, Close, Contrôle de I/O). Les routines pour
    de tels IRP sont appelées routines de dispatch
    car elle ne font souvent quun pré traitement
    comme de la vérification de paramètres avant de
    dispatcher lexécution de la requête à une autre
    partie du pilote.
  • Un pilote de périphérique doit sassurer que les
    requêtes arrivent une à une au périphérique.
  • Un pilote de périphérique doit gérer certains
    aspects du matériel comme les interruptions, le
    DMA et les appels de procédure différé (DPC, voir
    plus loin)
  • Un pilote de périphérique doit aussi gérer la
    puissance et supporter le WMI.
  • La liste des fonctions dun pilote pourrait
    sallonger

12
Références et exercices
  • Références
  • Writing Windows WDM Device pilotes, Chris Cant
  • http//www.scotsmist.co.uk/acpi.html
  • http//www.microsoft.com/whdc/pilote/security/drvs
    ecure.mspx.
  • http//www.microsoft.com/whdc/pilote/kernel/mem-mg
    mt.mspx
  • http//www.microsoft.com/whdc/devtools/ddk/default
    .mspx
  • http//www.microsoft.com/whdc/pilote/kernel/IRPs.m
    spx
  • http//www.microsoft.com/whdc/hwdev/pilote/LOCKS.m
    spx
  • http//www.microsoft.com/whdc/pilote/security/thre
    atmodel.mspx
  • http//www.microsoft.com/whdc/pilote/kernel/IRQL.
    mspx, Scheduling, Thread Context, and IRQLs
Write a Comment
User Comments (0)
About PowerShow.com