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

x86 32-bits / 64-bits Assembleur Discussion :

Driver en ASM


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Driver en ASM
    Salut monde!!!

    Y'a pas des tutos ou des utilitaires gratuits pour programmer des drivers en asm?
    Si vous avez des adresse, passer les moi

  2. #2
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Salut,
    Tu utilises quel OS ?
    si c'est pour du Win$ j'ai laisse tombe depuis un moment

    a+ Francois

  3. #3
    WO
    WO est déconnecté
    Inactif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Pour quel type de matériel ?
    Avant ou après 98SE ?
    @+WO

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    pour 98se, 2000, me, xp et pourquoi pas vista?

    Là, se sera pour la port parallèle, mais j'envisage de modifier mon projet ver l'usb (2.0)

    Si vous n'avez que de liens pour xp, pas grave...

    Vivement que le monde ce mette à linux

  5. #5
    WO
    WO est déconnecté
    Inactif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Bon, tu sais que l'architecture de Zindows a quelque peu évoluée au niveau des drivers avec WDM et que les mécanismes internes sont essentiellement COM. La construction de mini-drivers ou de drivers génériques à été largement simplifiée et permet de conserver les mêmes quel que soit l'OS (M$ bien sûr… mais…).
    Pour Linux, je ne me réjouirais pas autan (déjà que sa gestion des multiprocesseurs était boiteuse, je t'explique pas les multicorps...) C'est un peu une voie sans issue vu que Linux est plus "vendu" par les gentils copains qu'ils ne le font évoluer... La mode rapporte de l'argent.. la technologie aussi, mais… c'est plus de boulot ) C'est comme le Mac sur Intel : Signe des temps.

    L'évolution actuelle étant plutôt hardware que software (ça aussi c'est amusant non ?) Je te conseille de jeter un coup d’œil à http://www.osronline.com/ par exemple (c’est presque un lieu commun) et bien sûr au DDK. Tu imagines aisément que l'USB(2) à aussi tendance à universaliser les protocoles... donc.

    Avant de te lancer dans tous les plans antédiluviens ASM qui traînent par-ci par-là, essaie de bien comprendre ce que M$ fabrique en ce moment, cela t'évitera beaucoup de fausses pistes et de pertes de temps.

    La plupart des technologies qui étaient software sont devenues hardware (OpenGL, DirectX pour prendre des exemples connus et simple à vérifier...). Les objets COM descendent dans le noyau et la réorganisation dynamique des divers calculateurs associés monnaie courante. Donc, plus vraiment de magie dans le driver mais dans la tendance à l'universalité des échanges...

    à suivre...

    @WO

  6. #6
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Bonjour à tous,
    Juste en passant ... de la bonne doc sur les drivers sous NT n'est pas chose facile à trouver. Le sujet est hermétique et ceux qui "savent" parlent peux ... mais je commence à les comprendre ... pas évident d'expliquer le "sujet" à qq qui commence à zéro ... quoi dire ? ... c'est réellement un domaine où il faut s'y coller soi-même ! Il existe divers livres (la plupart en anglais ... je n'en connais qu'un en français ... introuvable, épuisé) ... ces livres vous expliquent, mais vous avez du mal de "comprendre" ... on ne "sent" pas la chose ! Pourquoi ? ... tout simplement parceque l'on a changé de monde ... et que l'on aborde la programmation des drivers avec le mental "user" ! (moi le premier) ... En réalité ... on commence à comprendre réellement les livres qui parlent du sujet ... quand on s'y est frotté soi-même un peu à l'aveuglette. Faire "tourner" un driver minimaliste, en recopiant un exemple trouvé sur le net ... afficher "Hello" en mode kernel via DbgView ... et "ensuite" se dire ... "ça" tourne" ... maintenant, je vais me creuser la tête pour comprendre "pourquoi" ça tourne. Il y a trop de chemins possibles dans la théorie ... en recopier un ... et ensuite se retourner .... ! Analyser le mental "objet" de NT, analyser "Ntddk.h" ... analyser ce qu'est un "IRP", un "MDL" ... Objet_Driver, Objet_Device, Device_Extension ... il faut chercher et comprendre le "pourquoi" des choses... (c'est possible ... je témoigne ! ) ... tout ceci étant dit ... il y a sur le net de la doc étonnante .... faut pas se borner à chercher sur Google "Developing NT drivers" ... y'a des trucs un peu cachés ... des travaux de fin d'études, des tuto, des machins ... regarde ici ... tu trouvera un pdf de 7.6Mo ... va voir à la fin ... page 164 et les autres ....
    ICI ...

  7. #7
    WO
    WO est déconnecté
    Inactif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Je signe des deux mains Robby

    Loi de Dave Small article 1.

    Cependant, attention de ne pas te faire embarquer par les docs (NT)...
    Tu risques de "perdre" du temps (quoique nous soyons d'accord sur le principe même du gain de cette perte ) avec des mécanismes obsolètes (ils marchent, évidement... mais...).

    (Robby) Tu as besoins de quel type de docs ?

    à+WO

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Comme je l’ai dit, je cherche à faire un driver pour un projet actuellement en lpt
    Le problème est que les instructions " IN " et " OUT " de l’asm, " inp "et " outp "de VC6 ne fonctionnent pas sous XP
    Je cherche juste un moyen efficace de communiquer avec ce port sans passer par des dll qui alourdira mon prog (en fait, je cherche surtout à comprendre tous ce que j’utilise)

    Sinon, l'usb, je ne pense l'intégrer à mes projets avant 1 ou 2 ans (y'a pas de problème car à l'univ, tous nos pc on des connect de tous types)

  9. #9
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Alors moi pour contrer ce probleme avec mes programmes DOS
    (et oui, je les utilise encore avec XP)
    J'utilise USERPORT
    Ca permet d'ouvrir des ports sous XP et ca marche pas mal
    (j'ai eu un ou deux plantages mais c'est assez stable)

    a+ Francoi

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Forthman
    Alors moi pour contrer ce probleme avec mes programmes DOS j'utilise USERPORT
    Ca permet d'ouvrir des ports sous XP et ca marche pas mal
    (j'ai eu un ou deux plantages mais c'est assez stable)
    a+ Francoi
    C’est quoi USERPORT, c’est pas une instruction. Alors un api ?
    Peux tu être plus précis et me donner un exemple ?

  11. #11
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    C'est un freeware qui permet de liberer des ports

    a+ Francois

  12. #12
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Mon ami Wo ... de la doc ... j'ai ça (mais c'est top gentil) ... quand je mourrai, faudra venir voir ici ... y'a une mine d'or en bouquins ... tous les introuvables sont ici ... c'est pour ça qu'ils sont introuvables ! hihi .... Bahhh ... j'ai fait une folie, je me suis commandé le book de O'reilly et Nagar ... d'occas, bien entendu ... introuvable ! Je ne cherche plus de la "doc", mais de l'expérience, du vécu.
    Bon ... Wo ... je reviendrai ... juré !
    HadiNET ... tu veux utiliser les instructions "in" et "out" ?
    ok ... faut être en ring0 pour ça ! Crée un driver minimum ... mais réellement minimum .... juste "DriverEntry" ... et juste aprés DriverEntry ... tu pourras faire appel à Write_Port_Uchar (couche Hal) .... ou le faire toi même, y'a rien dans Write_Port_Uchar ! Attention .... ceci n'est pas une "solution" ... mais une indication ... un signe du chemin à suivre ... ensuite tu utiliseras les Major Fonctions dans ton driver ... et ensuite depuis le user, WriteFile ... et ensuite DeviceIoControl ... mais faut y aller molo ... dans le monde des drivers ... tu testes un truc qui tourne ... et quand ça tourne ( boucle 30.000 en surffant en même temps ... le test qui peut te dire ... oui ... c'est stable) ... alors tu te creuses pour comprendre le pourquoi du comment .... et la .... tu avances !

  13. #13
    WO
    WO est déconnecté
    Inactif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Je vois que tu fais la poussière chez toi (cool) donc, je vais pas te pousser à mourrir (y'a pas mal de chance que ça m'arrive avant toi ) je vais te mettre mes docs sur mon testament (bonne idée )

    Et WDM te simplifierait pas la vie (je veux dire le vécu , expérimentable ?)

    Vu que bientôt écrire des drivers ne serait même plus nécessaire d'un OS à l'autre...
    et puis l'échange de données en User/Kernel mode (rings 3/0) étant gourmand... de chez vorace... (les nouveaux mécanismes t'évitent d'y avoir recours et te simplifient le boulot.).

    Je dis ça, juste histoire de t'économiser les yeux et les BSOD harghhhhhhhh.....

    à+WO

  14. #14
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Que ça t'arrive avant moi ? ... t'en sais rien ça !
    Hummm ...
    des nouveaux mécanismes ?
    Tu mets un morceau de chocolat au bout de la ficelle là !
    Je me retrouve sans rien dans les mains tout d'un coup !
    Bein vi que ce genre de phrase m'intéresse !

  15. #15
    WO
    WO est déconnecté
    Inactif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Alors...je tire doucement sur la cifelle... pour pas faire peur à l'animal... il faut prévoir un petit endroit pour qu'il puisse jouer.... et un autre pour faire son nid... et puis se renseigner sur ce que ça mange... et comment ça se reproduit...

    Trèves de plaisanteries, rions un peu...

    Je suis d'accord sur le fait que le DDk est assez amusant : ils exposent tout mais ne te disent rien c'est vraiment des gros malins... ou alors ils te donnent des exemples qui t'entraînent du coté où il y à rien à voir....

    Prenons quelques exemples.... tous les DirectGnia proposent des accès qui simplifient le codage pour nos amis des HLL mais les éloignent de plus en plus du système et coûtent de plus en plus cher en MAJ etc...
    Le fonctionnement de ces API bidons est de plus en plus opaque (La MFC même combat... le gus deviennent spécialistes de trucs qu'ils ignorent !!! et quand tu leur parle API Win32 ils ne comprennent pas vraiment...).
    Là, c'est le même problème. Il y à des gus pour faire de l'ASM 16 bits et utiliser les interruptions... cool... ils font mumuse avec les bouts de ficelles à papa pensant que l'ASM c'est ça.. Cherche l'optimisation dans le code et plus dans la stratégie enfin l'horreur quoi...

    Mais, toutes ces encapsulations (pécuniaires) encapsulent (justement) une réalité de ntoskrnl.exe (il a doublé de volume sous XP64 je t’explique pas sous Vista...). Donc, ou on continue à faire du ring 0 magique... où M$ a mis en place un mécanisme (actualisé objet) au sein de son noyau qui devrait lui permettre d'écrire de moins en moins de code, d'être de plus en plus universel et portable (la fin de Mac (possession de M$ depuis plusieurs années maintenant) sous autre chose qu'Intel devrait faire réfléchir plusieurs...).
    Le format WDM (Model de Driver M$) imposé aux fabricants (les plus gros pour étouffer les plus petits) permet à Bilou de s'assurer le déplacement de la puissance à faible coût. Le Mp n'est plus le centre de l'OS mais un composant parmi d'autre et la puissance se déplace de l’OS/CPU dans les cartes (donc, nouveau formats de buss (Xpressx16 par exemple pour commencer par la vidéo et la suite en audio ....) mode exclusif (accès direct à certaines ressources hard...) etc. Et puis, ça devrait te plaire, le kernel streaming : Le hard gère lui-même les flux dont il à besoin sans passer par le CPU ou la RAM où un quelconque gestionnaire... Il est même possible d'échanger des ressources entre deux cartes... tout-ça... sans écrire de drivers puisque le format est le même pour tout le monde... (hormis mini-drivers pour les spécificités constructeur.. mais bon...).

    A ton avis, un composant comme Graphedit (livré avec le SDK), il marche comment ? Je vais pas tout raconter en publique... on nous écoute... mais bon... Tu devrais peut-être soulever le capot de ce coté là... et puis quel est le rapport entre objet bas niveau, OS, hard, universalité.... le projet XBox dont M$ se fiche pas mal (ils le vendent moins cher que ça leur coûte...) à moins.... à moins... qu'ils fassent un test grandeur nature les cons... n'importe quoi.. n'importe où.. piloté par n'importe qui... le tout identifié par un numéro unique... ça porte un nom cette technologie...?

    @+WO

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] Utilisation Drivers
    Par LAPLACE dans le forum MFC
    Réponses: 4
    Dernier message: 21/12/2002, 10h29
  2. Coloration syntaxique ASM dans un RichEdit
    Par Crick dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/12/2002, 01h53
  3. Allocation dynamique de mémoire en asm
    Par narmataru dans le forum Assembleur
    Réponses: 7
    Dernier message: 17/12/2002, 22h31
  4. Reboot en asm ou C++
    Par Juke dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 17/10/2002, 09h11
  5. [TP]code asm dans une procedure
    Par M.Dlb dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/08/2002, 20h43

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