質問

Windowsでは、 CreateFile()を介してデバイスとボリュームを開くことができます。私はこれをデバイスから ReadFile()に使用することに成功しましたが、今はメモリマッピングに切り替えたいと思います。次のコードでは、 b の値に対して INVALID_HANDLE_VALUE を受け取り、 c 87 に設定され、< code> 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();

これを機能させるにはどうすればよいですか

役に立ちましたか?

解決

できません。 CreateFileMappingは、ファイルへのマッピングのみを作成できます。 ReadFile および CreateFileMapping 。 ReadFileでは、受け入れるデバイス(デバイスを含む)のすべての異なるタイプのハンドルがリストされ、CreateFileMappingでは、ファイルのみがリストされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top