?//獲取當前操作系統的分配粒度
?SYSTEM_INFO sinf;
?GetSystemInfo(&sinf);
?DWORD dwAllocationGranularity = sinf.dwAllocationGranularity;
?//GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ這兩個參數如果設置錯誤將導致錯誤
?HANDLE hFile = CreateFile("join", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ,
??NULL, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
?//PAGE_READWRITE這個屬性必須和GENERIC_WRITE | GENERIC_READ屬性對應
?HANDLE hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0,
??0x4000000, NULL);
?
?CloseHandle(hFile);
?__int64 qwFileSize = 0x4000000;
?__int64 qwFileOffset = 0;
?__int64 T = 600 * sinf.dwAllocationGranularity;
?DWORD dwBytesInBlock = 1000 * sinf.dwAllocationGranularity;
?//qwFileOffset>>32 取64位高位
?//qwFileOffset&0xFFFFFFFF 取64位低位
?//FILE_MAP_ALL_ACCESS這個屬性與CreateFile和CreateFileMapping屬性必須匹配
?PBYTE pbFile = (PBYTE)MapViewOfFile(hFileMapping, FILE_MAP_ALL_ACCESS,
??(DWORD)(qwFileOffset>>32), (DWORD)(qwFileOffset&0xFFFFFFFF), dwBytesInBlock);
?memcpy(pbFile, "123", 3);
?char temp[3];
?memcpy(temp, pbFile, 3);
?UnmapViewOfFile(pbFile);