|
利用CreateFileMapping函数的可扩展文件大小的特性,创建指定大小的空文件 /* * 创建指定大小的空文件,支持超大文件(16EB),小于4GB时, * 参数dwHigh可传入0, * 成功返回0, 失败返回错误代码 */ BOOL CreateNullFile(DWORD dwHigh, DWORD dwLow, LPCTSTR lpcszFileName) { BOOL bResult = FALSE; HANDLE hFile = ::CreateFile(lpcszFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (INVALID_HANDLE_VALUE == hFile) { return (BOOL)::GetLastError(); } HANDLE hFileMap = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE, dwHigh, dwLow, NULL); if (NULL == hFileMap) { return (BOOL)::GetLastError(); }
::CloseHandle(hFileMap); ::CloseHandle(hFile);
return bResult; } |