Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

programme qui tourne sous win98 et plante sous win xp



  1. #1
    serrepate

    programme qui tourne sous win98 et plante sous win xp


    ------

    bonjour à tous,
    tout d'abord,
    le sujet.
    un collègue, a fabriqué, pour moi, un .exe en vb4, celui ci fait appelle à une dll, écrite en assembleur (masm32), le tous fonctionne bien sous win98, mais "plante" sous win xp.

    but du prog:
    interrogation de l'état de la broche 6 (DSR) du port com1, à une fréquence élévée, au delà des capacités de réponse, de l'api win xp dédiée. ce qui explique que l'on n'y fasse pas appelle.

    le programme "plante" lors de l'instruction "in" notament (boucle1 dans le .asm utiliser pour la dll) mais pas seulement.

    l'explication mon collègue la connait:

    on essaye de récupérer des informations, à des "emplacements" où il nous est "interdit d'accèder" par xp (protection)

    la question maintenant:
    comment devrait-on faire pour obtenir le résultat souhaité, tout en respectant les règles de programmation sous xp.
    j'espère avoir été clair dans mon explication.
    je place ci-dessous le contenu du .asm utilisé pour plus de clareté.
    merci d'avance
    cordialement
    ;
    Code:
    «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
    
      comment * -----------------------------------------------------
              début fonction MESURE:
    Cette fonction renvoie le nb changements etats de DSR (com1) [DWORD] ,pendant le 
    temps "nb_cycl" passé en argument [WORD] .
              ------------------------------------------------------- *
              
    mesure PROC nb_cycl:WORD    ;nb_cycl contient nb pas de 54.9 ms
    
    LOCAL   com_prec :BYTE
    LOCAL   count_fin :WORD  ;heure fin
    LOCAL   count_deb :WORD  ;heure debut
    LOCAL   count_com :DWORD ;nb changements etats DSR (com1)
    
    pushcontext all
    pushfd
    
    
        ;debut time dans bx
    push ds
    mov bx,040h
    mov ds,bx
    mov bx,word ptr ds:[06Ch]
    pop ds
        ;fin time dans bx
    mov count_deb,bx
    
    
    .while count_deb==bx       ;synchro compteur temps.
        ;debut time dans bx
    push ds
    mov bx,040h
    mov ds,bx
    mov bx,word ptr ds:[06Ch]
    pop ds
        ;fin time dans bx
    .endw
    
    add bx,nb_cycl
    mov count_fin,bx
    mov count_com,0
    
    
    ;debut mesure nb cycles
    
    push ds
    mov dx,040h
    mov ds,dx
    mov dx,word ptr ds:[0000h] ; met adresse de COM1 dans dx.
    pop ds
    
    add dx,6 ; met adresse du registre d'etat de COM1 dans dx.
    in al,dx
    and al,20h  ;mesure le bit 5 de COM1
    mov com_prec,al
    
    
    boucle1 LABEL near           ;entree du test
    
    in al,dx
    and al,20h  ;mesure le bit 5 de COM1
    
    .if al != com_prec
    mov com_prec,al
    inc count_com
    .endif
    
    
        ;debut time dans bx
    push ds
    mov bx,040h
    mov ds,bx
    mov bx,word ptr ds:[06Ch]
    pop ds
        ;fin time dans bx
    .if bx != count_fin
    jmp boucle1
    .endif
    
    
    popfd
    popcontext all
    
    return count_com 
    
    mesure ENDP

    -----
    Dernière modification par yoda1234 ; 23/06/2007 à 11h54. Motif: ajout de balise

  2. Publicité
  3. #2
    archeos
    Modérateur

    Re : programme qui tourne sous win98 et plante sous win xp

    "Bonsoir,
    As-tu essayé le "Mode de compatibilté Windows 98"?

  4. #3
    serrepate

    Re : programme qui tourne sous win98 et plante sous win xp

    bonjour,
    merci de cette réponse, effectivement, ce type de tentatives, on les a expérimentées, sans succès.
    cordialement

  5. #4
    archeos
    Modérateur

    Re : programme qui tourne sous win98 et plante sous win xp

    Désolé!!!

  6. A voir en vidéo sur Futura
  7. #5
    serrepate

    Re : programme qui tourne sous win98 et plante sous win xp

    re,
    il n'y a pas de quoi, merci qd même.
    cordialement

  8. #6
    JPL
    Responsable des forums

    Re : programme qui tourne sous win98 et plante sous win xp

    Partant du principe que le noyau NT (commun à tous les Windows récents) interdit à tout programme l'accès direct au matériel mais nécessite de l'attaquer à travers des drivers ou API spécifiques de l'OS je crains que tu sois mal à moins que quelqu'un t'explique comment recréer une API dédiée que Windows accepterait.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  9. Publicité
  10. #7
    serrepate

    Re : programme qui tourne sous win98 et plante sous win xp

    bonjour,
    c'est pas gagné, tout reste à apprendre.
    merci
    cordialement

Discussions similaires

  1. Pare Feu sous Win98
    Par pmdec dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 23/12/2008, 12h28
  2. win sous linux
    Par Brikkhe dans le forum Logiciel - Software - Open Source
    Réponses: 13
    Dernier message: 03/06/2007, 16h01
  3. Disque invisible sous win 98
    Par fishingmanager dans le forum Matériel - Hardware
    Réponses: 8
    Dernier message: 24/03/2006, 21h53
  4. Ma machine sous win 2000 server plante
    Par Edy dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 13/08/2004, 22h50
  5. Probleme Modem Sagem fast 800 sous win98
    Par Shagrate dans le forum Matériel - Hardware
    Réponses: 9
    Dernier message: 19/03/2004, 18h08
Découvrez nos comparatifs produits sur l'informatique et les technologies.