2009-10-27 3 views
1

Windows에서는 CreateFile()을 통해 장치 및 볼륨을 열 수 있습니다. 이 장치를 사용하여 전에 ReadFile() 장치에서 성공적으로했지만 지금은 메모리 매핑을 전환하고 싶습니다. 다음 코드에서 b의 값은 INVALID_HANDLE_VALUE이고 c87, ERROR_INVALID_PARAMETER으로 설정됩니다.메모리 매핑 실제 디스크 및 볼륨

HANDLE a = ::CreateFileA("\\\\.\\h:", GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY | FILE_FLAG_NO_BUFFERING, NULL); 
HANDLE b = ::CreateFileMappingA(a, NULL, PAGE_READONLY, 0, 0, NULL); 
DWORD c = ::GetLastError(); 

어떻게 작동합니까?

답변

6

수 없습니다. CreateFileMapping은 파일에 대한 매핑 만 만들 수 있습니다. ReadFile에 대한 hFile 매개 변수와 CreateFileMapping에 대한 hFile 매개 변수의 차이점을 살펴보십시오. ReadFile에는 받아 들일 수있는 모든 종류의 핸들 (장치 포함)이 나열됩니다. CreateFileMapping에는 파일 만 나열됩니다.

+0

결정적이지는 않지만 아무것도 아닌 것보다 :) –

관련 문제