FreeRDP
Loading...
Searching...
No Matches
include/winpr/memory.h
1
20#ifndef WINPR_MEMORY_H
21#define WINPR_MEMORY_H
22
23#include <stdio.h>
24#include <stdlib.h>
25#include <string.h>
26
27#include <winpr/winpr.h>
28#include <winpr/wtypes.h>
29
30#include <winpr/crt.h>
31#include <winpr/file.h>
32
33#ifndef _WIN32
34
35#ifdef __cplusplus
36extern "C"
37{
38#endif
39
40 WINPR_ATTR_MALLOC(CloseHandle, 1)
41 WINPR_API HANDLE CreateFileMappingA(HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes,
42 DWORD flProtect, DWORD dwMaximumSizeHigh,
43 DWORD dwMaximumSizeLow, LPCSTR lpName);
44
45 WINPR_ATTR_MALLOC(CloseHandle, 1)
46 WINPR_API HANDLE CreateFileMappingW(HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes,
47 DWORD flProtect, DWORD dwMaximumSizeHigh,
48 DWORD dwMaximumSizeLow, LPCWSTR lpName);
49
50 WINPR_ATTR_MALLOC(CloseHandle, 1)
51 WINPR_API HANDLE OpenFileMappingA(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName);
52
53 WINPR_ATTR_MALLOC(CloseHandle, 1)
54 WINPR_API HANDLE OpenFileMappingW(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName);
55
56 WINPR_ATTR_NODISCARD
57 WINPR_API LPVOID MapViewOfFile(HANDLE hFileMappingObject, DWORD dwDesiredAccess,
58 DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow,
59 size_t dwNumberOfBytesToMap);
60
61 WINPR_ATTR_NODISCARD
62 WINPR_API LPVOID MapViewOfFileEx(HANDLE hFileMappingObject, DWORD dwDesiredAccess,
63 DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow,
64 size_t dwNumberOfBytesToMap, LPVOID lpBaseAddress);
65
66 WINPR_ATTR_NODISCARD
67 WINPR_API BOOL FlushViewOfFile(LPCVOID lpBaseAddress, size_t dwNumberOfBytesToFlush);
68
69 WINPR_ATTR_NODISCARD
70 WINPR_API BOOL UnmapViewOfFile(LPCVOID lpBaseAddress);
71
72#ifdef __cplusplus
73}
74#endif
75
76#ifdef UNICODE
77#define CreateFileMapping CreateFileMappingW
78#define OpenFileMapping OpenFileMappingW
79#else
80#define CreateFileMapping CreateFileMappingA
81#define OpenFileMapping OpenFileMappingA
82#endif
83
84#endif
85
86#endif /* WINPR_MEMORY_H */