1 #define UNICODE
2 #define _UNICODE
3 #include <windows.h>
4 #include <stdio.h>
5 #include <string.h>
6
7 #include <tchar.h>
8
main(int argc,char * argv[])9 int main(int argc, char* argv[])
10 {
11 HANDLE hFile;
12 HANDLE Section;
13 PVOID BaseAddress;
14
15 printf("Section Test\n");
16
17 hFile = CreateFile(_T("sectest.txt"),
18 GENERIC_READ | GENERIC_WRITE,
19 0,
20 NULL,
21 CREATE_ALWAYS,
22 0,
23 0);
24 if (hFile == INVALID_HANDLE_VALUE)
25 {
26 printf("Failed to create file (err=%ld)", GetLastError());
27 return 1;
28 }
29
30 Section = CreateFileMapping(hFile,
31 NULL,
32 PAGE_READWRITE,
33 0,
34 4096,
35 NULL);
36 if (Section == NULL)
37 {
38 printf("Failed to create section (err=%ld)", GetLastError());
39 return 1;
40 }
41
42 printf("Mapping view of section\n");
43 BaseAddress = MapViewOfFile(Section,
44 FILE_MAP_ALL_ACCESS,
45 0,
46 0,
47 4096);
48 printf("BaseAddress %x\n", (UINT) BaseAddress);
49 if (BaseAddress == NULL)
50 {
51 printf("Failed to map section (%ld)\n", GetLastError());
52 return 1;
53 }
54
55 printf("Clearing section\n");
56 FillMemory(BaseAddress, 4096, ' ');
57 printf("Copying test data to section\n");
58 strcpy(BaseAddress, "test data");
59
60 if (!UnmapViewOfFile(BaseAddress))
61 {
62 printf("Failed to unmap view of file (%ld)\n", GetLastError());
63 return 1;
64 }
65
66 if (!CloseHandle(hFile))
67 {
68 printf("Failed to close file (%ld)\n", GetLastError());
69 return 1;
70 }
71
72 return 0;
73 }
74
75