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

Windows Discussion :

Exécution d'un programme sous WOW64 à partir d'un programme x64


Sujet :

Windows

  1. #1
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut Exécution d'un programme sous WOW64 à partir d'un programme x64


    J'aurai juste besoin d'une petite confirmation.
    Si j'ai un exe A compilé en x86 qui lance un exe B compilé en x64 via CreateProcess ou ShellExecute, est-ce que B sera bien exécuté normalement en mode 64 bits ?
    Inversement, est-ce qu'un exécutable x64 qui lance un exe x86 lance automatiquement ce dernier avec WOW64 ?
    Et tout ça, sans jamais aucun problème de compatibilité ?

    Je sais, cette question peut paraître stupide mais plutôt que de continuer dans une quasi certitude, autant éliminer une bonne fois pour toute tout possible doute.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Un exécutable 64 bits ne tourne jamais en WOW64, à ma connaissance.
    http://blogs.msdn.com/oldnewthing/ar...2/9244582.aspx

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Je te parle pas de x64 sur WOW64, mais des différentes manière de lancer en douce WOW64 pour émuler un programme x86 quand il est lancé à partir d'un programme x86 ou x64 en fonction du mode de lancement CreateProcess, ShellExecute, et s'il y a la possibilité d'un quelconque problème par exemple en lançant un exe 64 bits à partir d'un exe 32 bits alors que ce dernier tourne sous WOW64 ...

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Je comprends que le lien de Medinoc ait pu laisser smyley sur sa faim et ses questions.

    A toute fin utile, "juste au cas où...", voici au moins deux liens vers des ressources de ce site [NTCore], de Daniel Pistelli, qui peuvent intéresser sur ces questions Windows, disons, "32 vs. 64" :

    http://ntcore.com/Files/vista_x64.htm

    http://ntcore.com/Files/nthookengine.htm

    Bonne lecture.

    [NTCore] http://ntcore.com/

    'HTH

    ps : ntcore m'intéresse surtout pour les articles .NET, mais je pense que les autres doivent être pas mal instructifs aussi..

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    On dirait que j'avais déjà vu ces liens, c'est vraiment des trucs de malade

    Mais en fait ce qui me chagrine, c'est vraiment la transition vers WOW64. En fait je vais être plus explicite.
    Par défaut si j'ai bien compris, une application .NET se lance sur le mode sur lequel le processeur est, donc la même application .NET se lance en 64bits sur un processeur 64bits, 32bits sur un processeur 32bits.
    Sauf qu'à coté, j'ai des exes codés en C++ natif qui eux le sont en 32bits. J'avais déjà eu des problèmes avec DreamShield à avoir des cheveux blancs avant de comprendre qu'une dll en C++/CLI 32bits ne pouvait pas être chargée à partir d'une application .NET qui elle démarre en 64bits.
    Maintenant que ce point a été élucidé, il reste toujours un Setup.exe natif 32bits qui appelle un UserSetup.exe .NET qui va probablement démarrer en 64 bits qui peut ensuite rappeler un exe 32bits ...
    Et c'est donc là que je veux être sur que ça marche toujours, que le Setup.exe et l'exe voulu soient bien exécutés sur WOW64 mais que le Setup managé lui reste bien en 64bits.
    Et vu que je n'ai pas de PC 64bits sous la main, je ne peut pas vérifier moi même...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par smyley Voir le message
    On dirait que j'avais déjà vu ces liens, c'est vraiment des trucs de malade
    Certes. ça me rappelle les bestioles affreuses de "thunking" 16 bits vers/depuis 32 bits à l'epoque heroique de la transition Windows 3.x vers Win95 / NT 4, yaddayadda..

    Citation Envoyé par smyley Voir le message
    Mais en fait ce qui me chagrine, c'est vraiment la transition vers WOW64. [...]
    Maintenant que ce point a été élucidé, il reste toujours un Setup.exe natif 32bits qui appelle un UserSetup.exe .NET qui va probablement démarrer en 64 bits qui peut ensuite rappeler un exe 32bits ...
    Et c'est donc là que je veux être sur que ça marche toujours, que le Setup.exe et l'exe voulu soient bien exécutés sur WOW64 mais que le Setup managé lui reste bien en 64bits.
    Et vu que je n'ai pas de PC 64bits sous la main, je ne peut pas vérifier moi même...
    Hmm.. moui, sans "machine" pour eprouver le cas dans la réalité des choses MS, je reconnais que ça va pas être evident de le "prédire" soi même a partir de ressources techniques comme celles de Pistelli, aussi justes / précises soient elles..

    Bon courage.

    'HTH

    ps : et j'ai pas de 64bits sous la main non plus bien sûr, dsl.. sinon, on aurait pu essayer un POC, je l'aurais proposé volontiers, ne serait ce que pour ma culture générale

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Ah, je n'avais pas pigé que tu t'interrogeais sur les rapports entre WOW64 et .Net. Je ne pensais qu'en natif...

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2011, 16h45
  2. Exécution programme non oracle à partir de forms 6
    Par erwan_56 dans le forum Forms
    Réponses: 4
    Dernier message: 21/05/2008, 17h07
  3. Recherche sous windows à partir d'un programme
    Par goldspear dans le forum C#
    Réponses: 2
    Dernier message: 21/04/2008, 18h21
  4. executé un programme C a partir d'un programme Perl
    Par chaabane dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 11h10
  5. Réponses: 5
    Dernier message: 01/02/2006, 22h55

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