Comunicación entre procesos entre aplicaciones de 32 y 64 bits
Las técnicas siguientes se pueden usar para la comunicación entre aplicaciones de 32 y 64 bits:
- Las versiones de 64 bits de Windows usan identificadores de 32 bits para la interoperabilidad. Al compartir un identificador entre aplicaciones de 32 y 64 bits, solo los 32 bits inferiores son significativos, por lo que es seguro truncar el controlador (al pasarlo de 64 bits a 32 bits) o extender el identificador (al pasarlo de 32 bits a 64 bits). Los identificadores que se pueden compartir incluyen identificadores para objetos de usuario como ventanas (HWND), identificadores de objetos GDI, como lápices y pinceles (HBRUSH y HPEN), y identificadores para objetos con nombre como exclusiones mutuas, semáforos y identificadores de archivo.
- Se pueden usar llamadas a procedimientos remotos (RPC).
- Los servidores locales COM se pueden usar si se registran archivos DLL de proxy/código auxiliar de 32 y 64 bits para todas las interfaces usadas.
- La memoria compartida se puede usar si los tipos dependientes del puntero se convierten correctamente (o se evitan).
- Las funciones CreateProcess y ShellExecute pueden iniciar procesos de 32 y 64 bits desde procesos de 32 o 64 bits con ciertas limitaciones.
No se puede iniciar un archivo ejecutable de 64 bits ubicado en %windir%\System32 desde un proceso de 32 bits, porque el redirector del sistema de archivos redirige la ruta de acceso. No deshabilite el redireccionamiento para lograr esto; use %windir%\Sysnative en su lugar. Para obtener más información, vea Redirector del sistema de archivos.