ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/patchapi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 9742 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5 #ifndef _PATCHAPI_H_
6 #define _PATCHAPI_H_
7
8 #include <_mingw_unicode.h>
9 #include <winapifamily.h>
10
11 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 #ifdef IMPORTING_PATCHAPI_DLL
18 #define PATCHAPI WINAPI __declspec(dllimport)
19 #else
20 #define PATCHAPI WINAPI
21 #endif
22
23 #define PATCH_OPTION_USE_BEST 0x0
24 #define PATCH_OPTION_USE_LZX_A 0x1
25 #define PATCH_OPTION_USE_LZX_B 0x2
26 #define PATCH_OPTION_USE_LZX_BEST 0x3
27 #define PATCH_OPTION_USE_LZX_LARGE 0x4
28
29 #define PATCH_OPTION_NO_BINDFIX 0x00010000
30 #define PATCH_OPTION_NO_LOCKFIX 0x00020000
31 #define PATCH_OPTION_NO_REBASE 0x00040000
32 #define PATCH_OPTION_FAIL_IF_SAME_FILE 0x00080000
33 #define PATCH_OPTION_FAIL_IF_BIGGER 0x00100000
34 #define PATCH_OPTION_NO_CHECKSUM 0x00200000
35 #define PATCH_OPTION_NO_RESTIMEFIX 0x00400000
36 #define PATCH_OPTION_NO_TIMESTAMP 0x00800000
37 #define PATCH_OPTION_SIGNATURE_MD5 0x01000000
38 #define PATCH_OPTION_INTERLEAVE_FILES 0x40000000
39 #define PATCH_OPTION_RESERVED1 0x80000000
40
41 #define PATCH_OPTION_VALID_FLAGS 0xc0ff0007
42
43 #define PATCH_SYMBOL_NO_IMAGEHLP 0x00000001
44 #define PATCH_SYMBOL_NO_FAILURES 0x00000002
45 #define PATCH_SYMBOL_UNDECORATED_TOO 0x00000004
46 #define PATCH_SYMBOL_RESERVED1 0x80000000
47
48 #define PATCH_TRANSFORM_PE_RESOURCE_2 0x00000100
49 #define PATCH_TRANSFORM_PE_IRELOC_2 0x00000200
50
51 #define APPLY_OPTION_FAIL_IF_EXACT 0x00000001
52 #define APPLY_OPTION_FAIL_IF_CLOSE 0x00000002
53 #define APPLY_OPTION_TEST_ONLY 0x00000004
54 #define APPLY_OPTION_VALID_FLAGS 0x00000007
55
56 #define ERROR_PATCH_ENCODE_FAILURE 0xC00E3101
57 #define ERROR_PATCH_INVALID_OPTIONS 0xC00E3102
58 #define ERROR_PATCH_SAME_FILE 0xC00E3103
59 #define ERROR_PATCH_RETAIN_RANGES_DIFFER 0xC00E3104
60 #define ERROR_PATCH_BIGGER_THAN_COMPRESSED 0xC00E3105
61 #define ERROR_PATCH_IMAGEHLP_FAILURE 0xC00E3106
62
63 #define ERROR_PATCH_DECODE_FAILURE 0xC00E4101
64 #define ERROR_PATCH_CORRUPT 0xC00E4102
65 #define ERROR_PATCH_NEWER_FORMAT 0xC00E4103
66 #define ERROR_PATCH_WRONG_FILE 0xC00E4104
67 #define ERROR_PATCH_NOT_NECESSARY 0xC00E4105
68 #define ERROR_PATCH_NOT_AVAILABLE 0xC00E4106
69
70 typedef WINBOOL (CALLBACK PATCH_PROGRESS_CALLBACK)(PVOID CallbackContext,ULONG CurrentPosition,ULONG MaximumPosition);
71 typedef PATCH_PROGRESS_CALLBACK *PPATCH_PROGRESS_CALLBACK;
72 typedef WINBOOL (CALLBACK PATCH_SYMLOAD_CALLBACK)(ULONG WhichFile,LPCSTR SymbolFileName,ULONG SymType,ULONG SymbolFileCheckSum,ULONG SymbolFileTimeDate,ULONG ImageFileCheckSum,ULONG ImageFileTimeDate,PVOID CallbackContext);
73 typedef PATCH_SYMLOAD_CALLBACK *PPATCH_SYMLOAD_CALLBACK;
74
75 typedef struct _PATCH_IGNORE_RANGE {
76 ULONG OffsetInOldFile;
77 ULONG LengthInBytes;
78 } PATCH_IGNORE_RANGE,*PPATCH_IGNORE_RANGE;
79
80 typedef struct _PATCH_RETAIN_RANGE {
81 ULONG OffsetInOldFile;
82 ULONG LengthInBytes;
83 ULONG OffsetInNewFile;
84 } PATCH_RETAIN_RANGE,*PPATCH_RETAIN_RANGE;
85
86 typedef struct _PATCH_OLD_FILE_INFO_A {
87 ULONG SizeOfThisStruct;
88 LPCSTR OldFileName;
89 ULONG IgnoreRangeCount;
90 PPATCH_IGNORE_RANGE IgnoreRangeArray;
91 ULONG RetainRangeCount;
92 PPATCH_RETAIN_RANGE RetainRangeArray;
93 } PATCH_OLD_FILE_INFO_A,*PPATCH_OLD_FILE_INFO_A;
94
95 typedef struct _PATCH_OLD_FILE_INFO_W {
96 ULONG SizeOfThisStruct;
97 LPCWSTR OldFileName;
98 ULONG IgnoreRangeCount;
99 PPATCH_IGNORE_RANGE IgnoreRangeArray;
100 ULONG RetainRangeCount;
101 PPATCH_RETAIN_RANGE RetainRangeArray;
102 } PATCH_OLD_FILE_INFO_W,*PPATCH_OLD_FILE_INFO_W;
103
104 typedef struct _PATCH_OLD_FILE_INFO_H {
105 ULONG SizeOfThisStruct;
106 HANDLE OldFileHandle;
107 ULONG IgnoreRangeCount;
108 PPATCH_IGNORE_RANGE IgnoreRangeArray;
109 ULONG RetainRangeCount;
110 PPATCH_RETAIN_RANGE RetainRangeArray;
111 } PATCH_OLD_FILE_INFO_H,*PPATCH_OLD_FILE_INFO_H;
112
113 typedef struct _PATCH_OLD_FILE_INFO {
114 ULONG SizeOfThisStruct;
115 __C89_NAMELESS union {
116 LPCSTR OldFileNameA;
117 LPCWSTR OldFileNameW;
118 HANDLE OldFileHandle;
119 };
120 ULONG IgnoreRangeCount;
121 PPATCH_IGNORE_RANGE IgnoreRangeArray;
122 ULONG RetainRangeCount;
123 PPATCH_RETAIN_RANGE RetainRangeArray;
124 } PATCH_OLD_FILE_INFO,*PPATCH_OLD_FILE_INFO;
125
126 typedef struct _PATCH_INTERLEAVE_MAP {
127 ULONG CountRanges;
128 struct {
129 ULONG OldOffset;
130 ULONG OldLength;
131 ULONG NewLength;
132 } Range[1];
133 } PATCH_INTERLEAVE_MAP, *PPATCH_INTERLEAVE_MAP;
134
135 typedef struct _PATCH_OPTION_DATA {
136 ULONG SizeOfThisStruct;
137 ULONG SymbolOptionFlags;
138 LPCSTR NewFileSymbolPath;
139 LPCSTR *OldFileSymbolPathArray;
140 ULONG ExtendedOptionFlags;
141 PPATCH_SYMLOAD_CALLBACK SymLoadCallback;
142 PVOID SymLoadContext;
143 PPATCH_INTERLEAVE_MAP *InterleaveMapArray;
144 ULONG MaxLzxWindowSize;
145 } PATCH_OPTION_DATA,*PPATCH_OPTION_DATA;
146
147 WINBOOL PATCHAPI CreatePatchFileA(LPCSTR OldFileName,LPCSTR NewFileName,LPCSTR PatchFileName,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData);
148 WINBOOL PATCHAPI CreatePatchFileW(LPCWSTR OldFileName,LPCWSTR NewFileName,LPCWSTR PatchFileName,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData);
149 #define CreatePatchFile __MINGW_NAME_AW(CreatePatchFile)
150
151 WINBOOL PATCHAPI CreatePatchFileExA(ULONG OldFileCount,PPATCH_OLD_FILE_INFO_A OldFileInfoArray,LPCSTR NewFileName,LPCSTR PatchFileName,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
152 WINBOOL PATCHAPI CreatePatchFileExW(ULONG OldFileCount,PPATCH_OLD_FILE_INFO_W OldFileInfoArray,LPCWSTR NewFileName,LPCWSTR PatchFileName,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
153 #define CreatePatchFileEx __MINGW_NAME_AW(CreatePatchFileEx)
154
155 WINBOOL PATCHAPI ExtractPatchHeaderToFileA(LPCSTR PatchFileName,LPCSTR PatchHeaderFileName);
156 WINBOOL PATCHAPI ExtractPatchHeaderToFileW(LPCWSTR PatchFileName,LPCWSTR PatchHeaderFileName);
157 #define ExtractPatchHeaderToFile __MINGW_NAME_AW(ExtractPatchHeaderToFile)
158
159 WINBOOL PATCHAPI TestApplyPatchToFileA(LPCSTR PatchFileName,LPCSTR OldFileName,ULONG ApplyOptionFlags);
160 WINBOOL PATCHAPI TestApplyPatchToFileW(LPCWSTR PatchFileName,LPCWSTR OldFileName,ULONG ApplyOptionFlags);
161 #define TestApplyPatchToFile __MINGW_NAME_AW(TestApplyPatchToFile)
162
163 WINBOOL PATCHAPI ApplyPatchToFileA(LPCSTR PatchFileName,LPCSTR OldFileName,LPCSTR NewFileName,ULONG ApplyOptionFlags);
164 WINBOOL PATCHAPI ApplyPatchToFileW(LPCWSTR PatchFileName,LPCWSTR OldFileName,LPCWSTR NewFileName,ULONG ApplyOptionFlags);
165 #define ApplyPatchToFile __MINGW_NAME_AW(ApplyPatchToFile)
166
167 WINBOOL PATCHAPI ApplyPatchToFileExA(LPCSTR PatchFileName,LPCSTR OldFileName,LPCSTR NewFileName,ULONG ApplyOptionFlags,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
168 WINBOOL PATCHAPI ApplyPatchToFileExW(LPCWSTR PatchFileName,LPCWSTR OldFileName,LPCWSTR NewFileName,ULONG ApplyOptionFlags,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
169 #define ApplyPatchToFileEx __MINGW_NAME_AW(ApplyPatchToFileEx)
170
171 WINBOOL PATCHAPI GetFilePatchSignatureA(LPCSTR FileName,ULONG OptionFlags,PVOID OptionData,ULONG IgnoreRangeCount,PPATCH_IGNORE_RANGE IgnoreRangeArray,ULONG RetainRangeCount,PPATCH_RETAIN_RANGE RetainRangeArray,ULONG SignatureBufferSize,PVOID SignatureBuffer);
172 WINBOOL PATCHAPI GetFilePatchSignatureW(LPCWSTR FileName,ULONG OptionFlags,PVOID OptionData,ULONG IgnoreRangeCount,PPATCH_IGNORE_RANGE IgnoreRangeArray,ULONG RetainRangeCount,PPATCH_RETAIN_RANGE RetainRangeArray,ULONG SignatureBufferSizeInBytes,PVOID SignatureBuffer);
173 #define GetFilePatchSignature __MINGW_NAME_AW(GetFilePatchSignature)
174
175 WINBOOL PATCHAPI GetFilePatchSignatureByHandle(HANDLE FileHandle,ULONG OptionFlags,PVOID OptionData,ULONG IgnoreRangeCount,PPATCH_IGNORE_RANGE IgnoreRangeArray,ULONG RetainRangeCount,PPATCH_RETAIN_RANGE RetainRangeArray,ULONG SignatureBufferSize,PVOID SignatureBuffer);
176 WINBOOL PATCHAPI CreatePatchFileByHandles(HANDLE OldFileHandle,HANDLE NewFileHandle,HANDLE PatchFileHandle,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData);
177 WINBOOL PATCHAPI CreatePatchFileByHandlesEx(ULONG OldFileCount,PPATCH_OLD_FILE_INFO_H OldFileInfoArray,HANDLE NewFileHandle,HANDLE PatchFileHandle,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
178 WINBOOL PATCHAPI ExtractPatchHeaderToFileByHandles(HANDLE PatchFileHandle,HANDLE PatchHeaderFileHandle);
179 WINBOOL PATCHAPI TestApplyPatchToFileByHandles(HANDLE PatchFileHandle,HANDLE OldFileHandle,ULONG ApplyOptionFlags);
180 WINBOOL PATCHAPI ApplyPatchToFileByHandles(HANDLE PatchFileHandle,HANDLE OldFileHandle,HANDLE NewFileHandle,ULONG ApplyOptionFlags);
181 WINBOOL PATCHAPI ApplyPatchToFileByHandlesEx(HANDLE PatchFileHandle,HANDLE OldFileHandle,HANDLE NewFileHandle,ULONG ApplyOptionFlags,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
182
183 WINBOOL PATCHAPI GetFilePatchSignatureByBuffer(PBYTE FileBufferWritable, ULONG FileSize, ULONG OptionFlags, PVOID OptionData, ULONG IgnoreRangeCount, PPATCH_IGNORE_RANGE IgnoreRangeArray, ULONG RetainRangeCount, PPATCH_RETAIN_RANGE RetainRangeArray, ULONG SignatureBufferSize, LPSTR SignatureBuffer);
184 WINBOOL PATCHAPI ApplyPatchToFileByBuffers(PBYTE PatchFileMapped, ULONG PatchFileSize, PBYTE OldFileMapped, ULONG OldFileSize, PBYTE *NewFileBuffer, ULONG NewFileBufferSize, ULONG *NewFileActualSize, FILETIME *NewFileTime, ULONG ApplyOptionFlags, PPATCH_PROGRESS_CALLBACK ProgressCallback, PVOID CallbackContext);
185 WINBOOL PATCHAPI TestApplyPatchToFileByBuffers(PBYTE PatchFileBuffer, ULONG PatchFileSize, PBYTE OldFileBuffer, ULONG OldFileSize, ULONG *NewFileSize, ULONG ApplyOptionFlags);
186
187 #ifdef __cplusplus
188 }
189 #endif
190
191 #endif
192 #endif