内存映射物理磁盘和卷
问题描述:
在Windows中,可以通过CreateFile()
打开设备和卷。我之前已经成功地将这个设备用于ReadFile()
,但现在我想切换到内存映射。在下面的代码中,我收到INVALID_HANDLE_VALUE
的值为b
,并且c
设置为87
,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的hFile参数与CreateFileMapping之间的文档差异。对于ReadFile,它列出它接受的所有不同类型的句柄(其中包括设备),对于CreateFileMapping它只列出文件。
不确定,但总比没有好:) – 2009-10-27 08:51:56