Sdílet prostřednictvím


Komunikace mezi procesy mezi 32bitovou a 64bitovou aplikací

Pro komunikaci mezi 32bitovými a 64bitovými aplikacemi je možné použít následující techniky:

  • 64bitové verze Systému Windows používají 32bitové popisovače pro interoperabilitu. Při sdílení úchytu mezi 32bitovými a 64bitovými aplikacemi jsou důležité pouze nižší 32bitové bity, takže je bezpečné zkrátit popisovač (při jeho předání z 64bitové na 32bitovou) nebo znaménko rozšířit popisovač (při jeho předání z 32bitové na 64bitovou). Úchyty, které lze sdílet, zahrnují úchyty pro uživatelské objekty, jako jsou okna (HWND) a úchyty pro objekty GDI, jako jsou pera a štětce (HBRUSH a HPEN).
  • Pojmenované objekty vytvořené z 32bitového procesu mohou být přístupné 64bitovými procesy a naopak (podle obvyklých pravidel zabezpečení). Pojmenované objekty zahrnují objekty, jako jsou mutexy, semafory a popisovače souborů.
  • Lze použít vzdálená volání procedur (RPC).
  • Místní servery COM lze použít, pokud jsou pro všechna používaná rozhraní zaregistrovaná 32bitová i 64bitová knihovny DLL proxy/stub.
  • Sdílenou paměť lze použít, pokud jsou správně převedeny typy závislé na ukazatelích (nebo se jim vyhnete).
  • Funkce CreateProcess a ShellExecute mohou spouštět 32bitové a 64bitové procesy z 32bitových nebo 64bitových procesů s určitými omezeními.

64bitový spustitelný soubor umístěný v %windir%\System32 nelze spustit z 32bitového procesu, protože přesměrovač systému souborů přesměruje cestu. Nezakažujte přesměrování, abyste toho dosáhli; místo toho použijte %windir%\Sysnative. Další informace naleznete v tématu systému souborů redirector.