IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Les drivers


Sujet :

C

  1. #1
    Membre confirmé Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Par défaut Les drivers
    Salut tout le monde!

    Je voudrais savoir comment fonctionne un driver? quel est son rôle? et surtout comment en faire en C sous windows? j'ai l'intention d'utiliser des driver pour mes futur projets d'intégrations d'applications je ne sais pas comment on les programme voila pourquoi je vous pose ces questions.

    Merci!

  2. #2
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    je ne vois pas comment tu peux vouloir utiliser de driver si tu ne sais pas ni à quoi ils servent (leur role) ni comment ils fonctionne

  3. #3
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Je voudrais savoir comment fonctionne un driver? quel est son rôle?
    A ces questions, jeter un oeil sur est la premiçère chose à faire:
    Pilote-Wikipedia

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Un driver est une bibliothèque (comme une DLL) qui implémente les appels (d'E/S) de haut niveau comme WriteFile ou ReadFile par exemple. Lorsqu'on on envoie des données à un driver (via WriteFile par exemple), ce dernier doit décider quoi en faire. Pour développer des drivers sous Windows il faut le DDK que tu peux télécharger sur le site de Microsoft.

  5. #5
    Membre chevronné Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Par défaut
    Il faut faire un effort d'abord ???
    mais bon, un driver en générale, c'est une application qui permet de se communiquer avec un pérophérique (matériel ou soft).

    le driver (pilote) offret en générale une interface de communication avec une entité.

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par Melem Voir le message
    Un driver est une bibliothèque (comme une DLL) qui implémente les appels (d'E/S) de haut niveau comme WriteFile ou ReadFile par exemple. Lorsqu'on on envoie des données à un driver (via WriteFile par exemple), ce dernier doit décider quoi en faire. Pour développer des drivers sous Windows il faut le DDK que tu peux télécharger sur le site de Microsoft.
    Non, pas vraiment.

    Un driver n'est pas une librairie: il s'agit d'un programme qui étends les fonctionnalités d'un OS. Généralement, un driver se lie à l'OS en question, et s'insère d'une manière ou d'une autre dans le traitement de certaines fonction. Sous Windows, cette opération est effectuée dans la fonction DriverEntry() l'équivalent du main() d'un programme utilisateur (1).

    Généralement, le driver s'enregistre pour un équipement donné, mais on peut imaginer des drivers qui modifie le fonctionnement de drivers déjà installés (on les appelles des filtres) ou qui ajoute des fonctionnalités à un OS sans pour autant nécessiter l'ajout d'un matériel spécifique (par exemple, un driver qui gère un file system crypté).

    A l'initialisation, après avoir vérifier la présence du matériel si nécessaire (et l'avoir initialisisé le cas échéant), le driver déroute un certain nombre d'appels systèmes. Cela permet d'utiliser une interface abstraite pour accéder au fonctions du driver (par exemple open/close/read/write, ou les équivalents sous Windows (CreateFile/CloseHandle/ReadFile/WriteFile).

    Mais quoi qu'il en soit, un driver reste un programme - pas une librairie. Il fonctionne en permanence, dès le démarrage du système et jusqu'à ce que le système soit éteint. Il reste la plupart du temps en attente d'un événement particulier (soit que le système lui donne la main, soit la réception d'une interruption matérielle, ...).

    (1): certes, une DLL a un DllMain(), mais c'est un artefact lié à l'architecture de Windows. Le point d'entrée d'un driver est nécessaire au niveau conceptuel (on le retrouve sous des formes très similaire quel que soit l'OS).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  7. #7
    Membre confirmé Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Par défaut Les drivers
    J'ai l'impression que je me suis mal exprimé. Je reformule mon problème:je veux apprendre à faire les driver pour intégrer des applications,pas pour autre chose. les driver pour le matériel ne m'intéresse pas. merci de me dire comment faire ça ou de me fournir un code de driver fait en c qui fonctionne sous windows

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Gae,
    Citation Envoyé par Moine Voir le message
    J'ai l'impression que je me suis mal exprimé. Je reformule mon problème:je veux apprendre à faire les driver pour intégrer des applications,pas pour autre chose. les driver pour le matériel ne m'intéresse pas.
    Pourquoi veux-tu un driver pour "intégrer des applications". Ça n'a rien à voir, a priori.

    Tu devrais appliquer la formule citée par ta signature.

  9. #9
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par Emmanuel Deloget
    Citation Envoyé par Melem
    Un driver est une bibliothèque (comme une DLL) qui implémente les appels (d'E/S) de haut niveau comme WriteFile ou ReadFile par exemple. Lorsqu'on on envoie des données à un driver (via WriteFile par exemple), ce dernier doit décider quoi en faire. Pour développer des drivers sous Windows il faut le DDK que tu peux télécharger sur le site de Microsoft.
    Non, pas vraiment.

    Un driver n'est pas une librairie: il s'agit d'un programme qui étend les fonctionnalités d'un OS. Généralement, un driver se lie à l'OS en question, et s'insère d'une manière ou d'une autre dans le traitement de certaines fonction.
    Tu cites le post tout entier pour corriger le mot "bibliothèque" (qui visiblement ne te plait pas), comme quoi ce que j'ai dit était entièrement faux. Pour moi, tu peux appeler ça une bibliothèque, un module, un morceau de code ou un programme, le fait est que son boulot est d'implémenter les demandes d'E/S. WriteFile par exemple. Cette fonction n'écrit pas dans un fichier ni dans quoi que ce soit, elle envoie tout simplement une requête ECRIRE, accompagné des données à "écrire", au driver du "périphérique" (sous Windows un périphérique désigne n'importe quel objet et non forcément un matériel) dont le nom a été fourni dans CreateFile (CreateFile non plus n'ouvre pas de fichier, c'est juste une fonction qui envoie une requête OUVRIR au driver qui a nommé le périphérique que l'utilisateur veut "ouvrir"). C'est le driver qui décide ensuite ce qu'il doit en faire de ces données, sachant que l'utilisateur veut ECRIRE. Pour le pilote du système de fichiers de Windows, l'effet sera d'écrire dans le fichier que l'on a ouvert grâce à CreateFile.

    Généralement, le driver s'enregistre pour un équipement donné, mais on peut imaginer des drivers qui modifie le fonctionnement de drivers déjà installés (on les appelles des filtres) ou qui ajoute des fonctionnalités à un OS sans pour autant nécessiter l'ajout d'un matériel spécifique (par exemple, un driver qui gère un file system crypté).

    A l'initialisation, après avoir vérifier la présence du matériel si nécessaire (et l'avoir initialisisé le cas échéant), le driver déroute un certain nombre d'appels systèmes. Cela permet d'utiliser une interface abstraite pour accéder au fonctions du driver (par exemple open/close/read/write, ou les équivalents sous Windows (CreateFile/CloseHandle/ReadFile/WriteFile).
    On n'a pas besoin de matériel pour créer un driver, comme déjà cité plus haut.

    Mais quoi qu'il en soit, un driver reste un programme - pas une librairie. Il fonctionne en permanence, dès le démarrage du système et jusqu'à ce que le système soit éteint. Il reste la plupart du temps en attente d'un événement particulier (soit que le système lui donne la main, soit la réception d'une interruption matérielle, ...).
    Sous Windows, cela dépend de la manière dont le driver a été enregistré (installé). On peut créer des drivers qu'on peut démarrer/stopper à la demande.

  10. #10
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par Moine Voir le message
    J'ai l'impression que je me suis mal exprimé. Je reformule mon problème:je veux apprendre à faire les driver pour intégrer des applications,pas pour autre chose. les driver pour le matériel ne m'intéresse pas. merci de me dire comment faire ça ou de me fournir un code de driver fait en c qui fonctionne sous windows
    Je comprends bien tu veux faire un driver qui affiche hello world ! par exemple. Mais un driver n'affichera pas hello, world (en tout cas pas avec printf) car il n'a pas accès à la console (tout comme tu n'utilises pas printf dans un programme GUI ...). En tout cas, pour les headers et les .lib nécessaires, la doc, des exemples de code, etc. c'est déjà dans le DDK. Voici la page de téléchargement du DDK pour Windows 2003 SP1, qui permet de développer des drivers pour Windows 2000 à 2003 SP1.

    http://www.microsoft.com/whdc/DevTools/ddk/default.mspx

    Le WDK est le DDK + un bon nombre d'outils supplémentaires (donc plus complet, mais plus lourd à télécharger ...). Il y a un lien dans la page que je t'ai donné.

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Moine Voir le message
    je veux apprendre à faire les driver pour intégrer des applications,pas pour autre chose.
    Ceci n'a aucun sens.
    les driver pour le matériel ne m'intéresse pas.
    Euh, un driver, c'est essentiellement une interface entre l'OS et le matériel.
    Que veux tu faire exactement ?
    merci de me dire comment faire ça ou de me fournir un code de driver fait en c qui fonctionne sous windows
    J'ai l'impression que tu n'utilises pas le bon vocabulaire.


  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Un driver, c'est forcément un truc entre ton application et quelque chose.
    Généralement, ce quelque chose est le matériel. Mais ça peux aussi être un système de fichiers ou un "faux" matériel (périphérique virtuel).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Connection a DB Oracle avec les drivers natif
    Par Psykotik dans le forum Interfaces de programmation
    Réponses: 3
    Dernier message: 07/09/2006, 11h30
  2. [win98]Reboot intempestif avec les drivers nvidia
    Par Michaël dans le forum Windows 2000/Me/98/95
    Réponses: 5
    Dernier message: 29/10/2005, 22h06
  3. Comment afficher dans une combobox les driver des imprimante
    Par lassad dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2005, 08h56
  4. lire les drivers de l'imprimante
    Par lassad dans le forum Langage
    Réponses: 1
    Dernier message: 17/10/2005, 17h00
  5. ENVOYER UN FICHER SUR LPTx sans les drivers
    Par AODRENN dans le forum Langage
    Réponses: 7
    Dernier message: 14/09/2005, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo