본문 바로가기
Development/Visual C++

Console Redirection, CreateProcess 에서 64비트 일 경우 처리

by qWooWp 2022. 7. 12.
반응형

64 bit 운영체제에서 CreateProcess 를 이용하여 Console Redirection 을 하려고 할 때 

Hang-up 이 걸리는 현상이 발생하거나, 결과 값을 정상적으로 가져오지 못하는 경우가 발생을 합니다. 

이 때 아래와 같이 64비트일 경우 처리를 추가 하면 정상적으로 처리가 되는 것을 확인 할 수 있습니다. 

 

저 같은 경우 PnpUtil 을 사용하여 결과값을 가져오려고 할 때 정상적으로 가져오지 못하여 아래 코드 삽입 후 

정상 리턴을 받았습니다. 

 

		if (Is64BitWindows())
		{
			PVOID oldVal = NULL;
			if (!Wow64DisableWow64FsRedirection(&oldVal))
				TRACE("Error %d", GetLastError());
		}

관련 정보는 아래 링크에서 얻었습니다. 

https://docs.microsoft.com/en-us/windows/win32/api/wow64apiset/nf-wow64apiset-wow64disablewow64fsredirection

 

Wow64DisableWow64FsRedirection function (wow64apiset.h) - Win32 apps

Disables file system redirection for the calling thread. File system redirection is enabled by default.

docs.microsoft.com

 

 

반응형

댓글