32비트와 64비트 애플리케이션 간의 프로세스 간 통신
다음 기술은 32비트와 64비트 애플리케이션 간의 통신에 사용할 수 있습니다.
- 64비트 버전의 Windows는 상호 운용성을 위해 32비트 핸들을 사용합니다. 32비트와 64비트 애플리케이션 간에 핸들을 공유하는 경우 하위 32비트만 중요하므로 핸들을 잘리거나(64비트에서 32비트로 전달할 때) 핸들을 32비트에서 64비트로 전달하는 경우 핸들을 기호 확장해도 안전합니다. 공유할 수 있는 핸들에는 창(HWND)과 같은 사용자 개체에 대한 핸들, 펜 및 브러시(HBRUSH 및 HPEN)와 같은 GDI 개체에 대한 핸들, 뮤텍스, 세마포 및 파일 핸들과 같은 명명된 개체에 대한 핸들이 포함됩니다.
- RPC(원격 프로시저 호출)를 사용할 수 있습니다.
- COM LocalServers는 사용되는 모든 인터페이스에 대해 32비트 및 64비트 프록시/스텁 DLL이 모두 등록된 경우 사용할 수 있습니다.
- 포인터 종속 형식이 제대로 변환되거나 방지되는 경우 공유 메모리를 사용할 수 있습니다.
- CreateProcess 및 ShellExecute 함수는 특정 제한 사항이 있는 32비트 또는 64비트 프로세스에서 32비트 및 64비트 프로세스를 시작할 수 있습니다.
파일 시스템 리디렉터에서 경로를 리디렉션하므로 %windir%\System32 아래에 있는 64비트 실행 파일은 32비트 프로세스에서 시작할 수 없습니다. 이 작업을 수행하려면 리디렉션을 사용하지 않도록 설정하지 마세요. 대신 %windir%\Sysnative를 사용합니다. 자세한 내용은 파일 시스템 리디렉션기를 참조하세요.