Comunicazione interprocesso tra applicazioni a 32 bit e a 64 bit
Le tecniche seguenti possono essere usate per la comunicazione tra applicazioni a 32 bit e a 64 bit:
- Le versioni a 64 bit di Windows usano handle a 32 bit per l'interoperabilità. Quando si condivide un handle tra applicazioni a 32 bit e a 64 bit, solo i 32 bit inferiori sono significativi, quindi è sicuro troncare l'handle (quando lo passa da 64 bit a 32 bit) o si estende l'handle (quando lo passa da 32 bit a 64 bit). Handle che possono essere condivisi includono handle agli oggetti utente, ad esempio windows (HWND), handle per oggetti GDI, ad esempio penne e pennelli (HBRUSH e HPEN) e handle per oggetti denominati, ad esempio mutex, semafori e handle di file.
- È possibile usare le chiamate di routine remote (RPC).
- È possibile usare i server locali COM se le DLL proxy/stub a 32 bit e a 64 bit vengono registrate per tutte le interfacce usate.
- La memoria condivisa può essere usata se i tipi dipendenti dal puntatore vengono convertiti correttamente (o evitati).
- Le funzioni CreateProcess e ShellExecute possono avviare processi a 32 bit e a 64 bit da processi a 32 bit o a 64 bit con determinate limitazioni.
Non è possibile avviare un file eseguibile a 64 bit in %windir%\System32 da un processo a 32 bit, perché il reindirizzamento del file system reindirizza il percorso. Non disabilitare il reindirizzamento per eseguire questa operazione; usare invece %windir%\Sysnative. Per altre informazioni, vedere Reindirizzamento file system.