物理ディスクとボリュームのメモリマッピング
-
06-07-2019 - |
質問
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では、ファイルのみがリストされます。
所属していません StackOverflow