32 位和64位應用程式之間的進程間通訊
下列技術可用於 32 位和 64 位應用程式之間的通訊:
- 64 位版本的 Windows 會使用 32 位句柄進行互作性。 在 32 位和 64 位應用程式之間共用句柄時,只有較低的 32 位很重要,因此可以安全地截斷句柄(從 64 位傳遞至 32 位時)或簽署擴充句柄(從 32 位傳遞至 64 位時)。 可共用的句柄包括用戶物件的句柄,例如 windows(HWND)、手寫筆和筆刷等 GDI 物件的句柄(HBRUSH 和 HPEN),以及對具名物件的句柄,例如 mutexes、信號和檔句柄。
- 可以使用遠端過程調用 (RPC)。
- 如果已針對所有使用的介面註冊 32 位和 64 位 Proxy/Stub DLL,就可以使用 COM LocalServers。
- 如果指標相依類型已正確轉換,則可以使用共用記憶體(或避免)。
- CreateProcess 和 ShellExecute 函式可以從 32 位或 64 位進程啟動具有特定限制的 32 位和 64 位進程。
位於 %windir%\System32 之下的 64 位可執行檔無法從 32 位進程啟動,因為文件系統重新導向器會重新導向路徑。 請勿停用重新導向以完成此作業;請改用 \Sysnative %windir%。 如需詳細資訊,請參閱 檔案系統重新導向器。