comparison fuhtark_test/include/winapi/patchapi.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _PATCHAPI_H_
7 #define _PATCHAPI_H_
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 #define PATCH_OPTION_USE_BEST 0x00000000
14
15 #define PATCH_OPTION_USE_LZX_BEST 0x00000003
16 #define PATCH_OPTION_USE_LZX_A 0x00000001
17 #define PATCH_OPTION_USE_LZX_B 0x00000002
18 #define PATCH_OPTION_USE_LZX_LARGE 0x00000004
19
20 #define PATCH_OPTION_NO_BINDFIX 0x00010000
21 #define PATCH_OPTION_NO_LOCKFIX 0x00020000
22 #define PATCH_OPTION_NO_REBASE 0x00040000
23 #define PATCH_OPTION_FAIL_IF_SAME_FILE 0x00080000
24 #define PATCH_OPTION_FAIL_IF_BIGGER 0x00100000
25 #define PATCH_OPTION_NO_CHECKSUM 0x00200000
26 #define PATCH_OPTION_NO_RESTIMEFIX 0x00400000
27 #define PATCH_OPTION_NO_TIMESTAMP 0x00800000
28 #define PATCH_OPTION_SIGNATURE_MD5 0x01000000
29 #define PATCH_OPTION_RESERVED1 0x80000000
30
31 #define PATCH_OPTION_VALID_FLAGS 0x80FF0007
32
33 #define PATCH_SYMBOL_NO_IMAGEHLP 0x00000001
34 #define PATCH_SYMBOL_NO_FAILURES 0x00000002
35 #define PATCH_SYMBOL_UNDECORATED_TOO 0x00000004
36 #define PATCH_SYMBOL_RESERVED1 0x80000000
37
38 #define APPLY_OPTION_FAIL_IF_EXACT 0x00000001
39 #define APPLY_OPTION_FAIL_IF_CLOSE 0x00000002
40 #define APPLY_OPTION_TEST_ONLY 0x00000004
41 #define APPLY_OPTION_VALID_FLAGS 0x00000007
42
43 #define ERROR_PATCH_ENCODE_FAILURE 0xC00E3101
44 #define ERROR_PATCH_INVALID_OPTIONS 0xC00E3102
45 #define ERROR_PATCH_SAME_FILE 0xC00E3103
46 #define ERROR_PATCH_RETAIN_RANGES_DIFFER 0xC00E3104
47 #define ERROR_PATCH_BIGGER_THAN_COMPRESSED 0xC00E3105
48 #define ERROR_PATCH_IMAGEHLP_FAILURE 0xC00E3106
49
50 #define ERROR_PATCH_DECODE_FAILURE 0xC00E4101
51 #define ERROR_PATCH_CORRUPT 0xC00E4102
52 #define ERROR_PATCH_NEWER_FORMAT 0xC00E4103
53 #define ERROR_PATCH_WRONG_FILE 0xC00E4104
54 #define ERROR_PATCH_NOT_NECESSARY 0xC00E4105
55 #define ERROR_PATCH_NOT_AVAILABLE 0xC00E4106
56
57 typedef WINBOOL (CALLBACK PATCH_PROGRESS_CALLBACK)(PVOID CallbackContext,ULONG CurrentPosition,ULONG MaximumPosition);
58 typedef PATCH_PROGRESS_CALLBACK *PPATCH_PROGRESS_CALLBACK;
59 typedef WINBOOL (CALLBACK PATCH_SYMLOAD_CALLBACK)(ULONG WhichFile,LPCSTR SymbolFileName,ULONG SymType,ULONG SymbolFileCheckSum,ULONG SymbolFileTimeDate,ULONG ImageFileCheckSum,ULONG ImageFileTimeDate,PVOID CallbackContext);
60 typedef PATCH_SYMLOAD_CALLBACK *PPATCH_SYMLOAD_CALLBACK;
61
62 typedef struct _PATCH_IGNORE_RANGE {
63 ULONG OffsetInOldFile;
64 ULONG LengthInBytes;
65 } PATCH_IGNORE_RANGE,*PPATCH_IGNORE_RANGE;
66
67 typedef struct _PATCH_RETAIN_RANGE {
68 ULONG OffsetInOldFile;
69 ULONG LengthInBytes;
70 ULONG OffsetInNewFile;
71 } PATCH_RETAIN_RANGE,*PPATCH_RETAIN_RANGE;
72
73 typedef struct _PATCH_OLD_FILE_INFO_A {
74 ULONG SizeOfThisStruct;
75 LPCSTR OldFileName;
76 ULONG IgnoreRangeCount;
77 PPATCH_IGNORE_RANGE IgnoreRangeArray;
78 ULONG RetainRangeCount;
79 PPATCH_RETAIN_RANGE RetainRangeArray;
80 } PATCH_OLD_FILE_INFO_A,*PPATCH_OLD_FILE_INFO_A;
81
82 typedef struct _PATCH_OLD_FILE_INFO_W {
83 ULONG SizeOfThisStruct;
84 LPCWSTR OldFileName;
85 ULONG IgnoreRangeCount;
86 PPATCH_IGNORE_RANGE IgnoreRangeArray;
87 ULONG RetainRangeCount;
88 PPATCH_RETAIN_RANGE RetainRangeArray;
89 } PATCH_OLD_FILE_INFO_W,*PPATCH_OLD_FILE_INFO_W;
90
91 typedef struct _PATCH_OLD_FILE_INFO_H {
92 ULONG SizeOfThisStruct;
93 HANDLE OldFileHandle;
94 ULONG IgnoreRangeCount;
95 PPATCH_IGNORE_RANGE IgnoreRangeArray;
96 ULONG RetainRangeCount;
97 PPATCH_RETAIN_RANGE RetainRangeArray;
98 } PATCH_OLD_FILE_INFO_H,*PPATCH_OLD_FILE_INFO_H;
99
100 typedef struct _PATCH_OLD_FILE_INFO {
101 ULONG SizeOfThisStruct;
102 __MINGW_EXTENSION union {
103 LPCSTR OldFileNameA;
104 LPCWSTR OldFileNameW;
105 HANDLE OldFileHandle;
106 };
107 ULONG IgnoreRangeCount;
108 PPATCH_IGNORE_RANGE IgnoreRangeArray;
109 ULONG RetainRangeCount;
110 PPATCH_RETAIN_RANGE RetainRangeArray;
111 } PATCH_OLD_FILE_INFO,*PPATCH_OLD_FILE_INFO;
112
113 typedef struct _PATCH_OPTION_DATA {
114 ULONG SizeOfThisStruct;
115 ULONG SymbolOptionFlags;
116 LPCSTR NewFileSymbolPath;
117 LPCSTR *OldFileSymbolPathArray;
118 ULONG ExtendedOptionFlags;
119 PPATCH_SYMLOAD_CALLBACK SymLoadCallback;
120 PVOID SymLoadContext;
121 } PATCH_OPTION_DATA,*PPATCH_OPTION_DATA;
122
123 #ifdef IMPORTING_PATCHAPI_DLL
124 #define PATCHAPI WINAPI __declspec(dllimport)
125 #else
126 #define PATCHAPI WINAPI
127 #endif
128
129 WINBOOL PATCHAPI CreatePatchFileA(LPCSTR OldFileName,LPCSTR NewFileName,LPCSTR PatchFileName,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData);
130 WINBOOL PATCHAPI CreatePatchFileW(LPCWSTR OldFileName,LPCWSTR NewFileName,LPCWSTR PatchFileName,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData);
131 WINBOOL PATCHAPI CreatePatchFileByHandles(HANDLE OldFileHandle,HANDLE NewFileHandle,HANDLE PatchFileHandle,ULONG OptionFlags,PPATCH_OPTION_DATA OptionData);
132 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);
133 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);
134 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);
135 WINBOOL PATCHAPI ExtractPatchHeaderToFileA(LPCSTR PatchFileName,LPCSTR PatchHeaderFileName);
136 WINBOOL PATCHAPI ExtractPatchHeaderToFileW(LPCWSTR PatchFileName,LPCWSTR PatchHeaderFileName);
137 WINBOOL PATCHAPI ExtractPatchHeaderToFileByHandles(HANDLE PatchFileHandle,HANDLE PatchHeaderFileHandle);
138 WINBOOL PATCHAPI TestApplyPatchToFileA(LPCSTR PatchFileName,LPCSTR OldFileName,ULONG ApplyOptionFlags);
139 WINBOOL PATCHAPI TestApplyPatchToFileW(LPCWSTR PatchFileName,LPCWSTR OldFileName,ULONG ApplyOptionFlags);
140 WINBOOL PATCHAPI TestApplyPatchToFileByHandles(HANDLE PatchFileHandle,HANDLE OldFileHandle,ULONG ApplyOptionFlags);
141 WINBOOL PATCHAPI ApplyPatchToFileA(LPCSTR PatchFileName,LPCSTR OldFileName,LPCSTR NewFileName,ULONG ApplyOptionFlags);
142 WINBOOL PATCHAPI ApplyPatchToFileW(LPCWSTR PatchFileName,LPCWSTR OldFileName,LPCWSTR NewFileName,ULONG ApplyOptionFlags);
143 WINBOOL PATCHAPI ApplyPatchToFileByHandles(HANDLE PatchFileHandle,HANDLE OldFileHandle,HANDLE NewFileHandle,ULONG ApplyOptionFlags);
144 WINBOOL PATCHAPI ApplyPatchToFileExA(LPCSTR PatchFileName,LPCSTR OldFileName,LPCSTR NewFileName,ULONG ApplyOptionFlags,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
145 WINBOOL PATCHAPI ApplyPatchToFileExW(LPCWSTR PatchFileName,LPCWSTR OldFileName,LPCWSTR NewFileName,ULONG ApplyOptionFlags,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
146 WINBOOL PATCHAPI ApplyPatchToFileByHandlesEx(HANDLE PatchFileHandle,HANDLE OldFileHandle,HANDLE NewFileHandle,ULONG ApplyOptionFlags,PPATCH_PROGRESS_CALLBACK ProgressCallback,PVOID CallbackContext);
147 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);
148 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);
149 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);
150
151 #ifdef UNICODE
152 #define CreatePatchFile CreatePatchFileW
153 #define CreatePatchFileEx CreatePatchFileExW
154 #define TestApplyPatchToFile TestApplyPatchToFileW
155 #define ApplyPatchToFile ApplyPatchToFileW
156 #define ApplyPatchToFileEx ApplyPatchToFileExW
157 #define ExtractPatchHeaderToFile ExtractPatchHeaderToFileW
158 #define GetFilePatchSignature GetFilePatchSignatureW
159 #else
160 #define CreatePatchFile CreatePatchFileA
161 #define CreatePatchFileEx CreatePatchFileExA
162 #define TestApplyPatchToFile TestApplyPatchToFileA
163 #define ApplyPatchToFile ApplyPatchToFileA
164 #define ApplyPatchToFileEx ApplyPatchToFileExA
165 #define ExtractPatchHeaderToFile ExtractPatchHeaderToFileA
166 #define GetFilePatchSignature GetFilePatchSignatureA
167 #endif
168
169 #ifdef __cplusplus
170 }
171 #endif
172 #endif