Communication interprocess entre les applications 32 bits et 64 bits
Les techniques suivantes peuvent être utilisées pour la communication entre les applications 32 bits et 64 bits :
- Les versions 64 bits de Windows utilisent des handles 32 bits pour l’interopérabilité. Lors du partage d’un handle entre les applications 32 bits et 64 bits, seuls les 32 bits inférieurs sont significatifs. Il est donc sûr de tronquer le handle (lors du passage de 64 bits à 32 bits) ou d’étendre le handle (lors du passage de 32 bits à 64 bits). Les handles qui peuvent être partagés incluent des handles pour les objets utilisateur tels que les fenêtres (HWND), les handles vers des objets GDI tels que des stylos et des pinceaux (HBRUSH et HPEN), et gère des objets nommés tels que des mutexes, des sémaphores et des handles de fichiers.
- Les appels de procédure distante (RPC) peuvent être utilisés.
- Les serveurs locaux COM peuvent être utilisés si les DLL proxy/stub 32 bits et 64 bits sont inscrites pour toutes les interfaces utilisées.
- La mémoire partagée peut être utilisée si les types dépendants du pointeur sont convertis correctement (ou évités).
- Les fonctions CreateProcess et ShellExecute peuvent lancer des processus 32 bits et 64 bits à partir de processus 32 bits ou 64 bits avec certaines limitations.
Un fichier exécutable 64 bits situé sous %windir%\System32 ne peut pas être lancé à partir d’un processus 32 bits, car le redirecteur du système de fichiers redirige le chemin d’accès. Ne désactivez pas la redirection pour y parvenir ; utilisez %windir%\Sysnative à la place. Pour plus d’informations, consultez redirecteur de système de fichiers.