1. 程式人生 > WINDOWS開發 >WIN32硬碟檔案對映到記憶體

WIN32硬碟檔案對映到記憶體

#include <stdio.h>
#include <windows.h>


int main()
{
//建立開啟檔案
HANDLE cFile = CreateFile("D:\\filterBufFile.txt",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
//記憶體申請物理頁
HANDLE hMapFile = CreateFileMapping(cFile,NULL,PAGE_READWRITE,"共享對映");
//和虛擬地址對映
LPTSTR lpBuff = (LPTSTR)MapViewOfFile(hMapFile,FILE_MAP_WRITE,0);



//*(PDWORD)lpBuff = 0x12345678;

//getchar();
//讀檔案
printf("%p\n",lpBuff);
printf("%x\n",*(PDWORD)lpBuff);
printf("%x\n",*((PDWORD)lpBuff+1));

//寫檔案
*(PDWORD)lpBuff = 0x41414141;
printf("%x\n",*(PDWORD)lpBuff);
//getchar();
//強制重新整理
//FlushViewOfFile(((PDWORD)lpBuff),4);

//關閉對映
UnmapViewOfFile(lpBuff);
//關閉控制代碼
CloseHandle(hMapFile);

//關閉控制代碼
CloseHandle(cFile);




system("pause");
return(0);
}