1 | /* $Id: imagehlp.cpp,v 1.1 1999-08-29 14:54:54 sandervl Exp $ */
|
---|
2 | /*
|
---|
3 | * IMAGEHLP library
|
---|
4 | *
|
---|
5 | * Copyright 1998 Patrik Stridvall
|
---|
6 | * Copyright 1999 Jens Wiessner
|
---|
7 | */
|
---|
8 |
|
---|
9 | #include <os2win.h>
|
---|
10 | #include <debugdefs.h>
|
---|
11 | #include <imagehlp.h>
|
---|
12 | #include <heapstring.h>
|
---|
13 | #include "debugtools.h"
|
---|
14 |
|
---|
15 | DEFAULT_DEBUG_CHANNEL(imagehlp)
|
---|
16 |
|
---|
17 |
|
---|
18 | /***********************************************************************
|
---|
19 | * Data
|
---|
20 | */
|
---|
21 |
|
---|
22 | static PLOADED_IMAGE IMAGEHLP_pFirstLoadedImage=NULL;
|
---|
23 | static PLOADED_IMAGE IMAGEHLP_pLastLoadedImage=NULL;
|
---|
24 |
|
---|
25 | static LOADED_IMAGE IMAGEHLP_EmptyLoadedImage = {
|
---|
26 | NULL, /* ModuleName */
|
---|
27 | 0xffffffff, /* hFile */
|
---|
28 | NULL, /* MappedAddress */
|
---|
29 | NULL, /* FileHeader */
|
---|
30 | NULL, /* LastRvaSection */
|
---|
31 | 0, /* NumberOfSections */
|
---|
32 | NULL, /* Sections */
|
---|
33 | 1, /* Characteristics */
|
---|
34 | FALSE, /* fSystemImage */
|
---|
35 | FALSE, /* fDOSImage */
|
---|
36 | { &IMAGEHLP_EmptyLoadedImage.Links, &IMAGEHLP_EmptyLoadedImage.Links }, /* Links */
|
---|
37 | 148, /* SizeOfImage; */
|
---|
38 | };
|
---|
39 |
|
---|
40 |
|
---|
41 | /**********************************************************************/
|
---|
42 |
|
---|
43 | HANDLE IMAGEHLP_hHeap = (HANDLE) NULL;
|
---|
44 |
|
---|
45 | static API_VERSION IMAGEHLP_ApiVersion = { 4, 0, 0, 5 };
|
---|
46 |
|
---|
47 | /***********************************************************************
|
---|
48 | * IMAGEHLP_LibMain (IMAGEHLP.init)
|
---|
49 | */
|
---|
50 | BOOL WINAPI IMAGEHLP_LibMain(
|
---|
51 | HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
---|
52 | {
|
---|
53 | switch(fdwReason)
|
---|
54 | {
|
---|
55 | case DLL_PROCESS_ATTACH:
|
---|
56 | IMAGEHLP_hHeap = HeapCreate(0, 0x10000, 0);
|
---|
57 | break;
|
---|
58 | case DLL_PROCESS_DETACH:
|
---|
59 | HeapDestroy(IMAGEHLP_hHeap);
|
---|
60 | IMAGEHLP_hHeap = (HANDLE) NULL;
|
---|
61 | break;
|
---|
62 | case DLL_THREAD_ATTACH:
|
---|
63 | break;
|
---|
64 | case DLL_THREAD_DETACH:
|
---|
65 | break;
|
---|
66 | default:
|
---|
67 | break;
|
---|
68 | }
|
---|
69 | return TRUE;
|
---|
70 | }
|
---|
71 |
|
---|
72 |
|
---|
73 | /***********************************************************************
|
---|
74 | * BindImage32 (IMAGEHLP.1)
|
---|
75 | */
|
---|
76 | BOOL WINAPI BindImage(
|
---|
77 | LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath)
|
---|
78 | {
|
---|
79 | return BindImageEx(0, ImageName, DllPath, SymbolPath, NULL);
|
---|
80 | }
|
---|
81 |
|
---|
82 | /***********************************************************************
|
---|
83 | * BindImageEx32 (IMAGEHLP.2)
|
---|
84 | */
|
---|
85 | BOOL WINAPI BindImageEx(
|
---|
86 | DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
|
---|
87 | PIMAGEHLP_STATUS_ROUTINE StatusRoutine)
|
---|
88 | {
|
---|
89 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
90 | return FALSE;
|
---|
91 | }
|
---|
92 |
|
---|
93 | /***********************************************************************
|
---|
94 | * CheckSumMappedFile32 (IMAGEHLP.3)
|
---|
95 | */
|
---|
96 | PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
|
---|
97 | LPVOID BaseAddress, DWORD FileLength,
|
---|
98 | LPDWORD HeaderSum, LPDWORD CheckSum)
|
---|
99 | {
|
---|
100 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
101 | return NULL;
|
---|
102 | }
|
---|
103 |
|
---|
104 | /***********************************************************************
|
---|
105 | * EnumerateLoadedModules32 (IMAGEHLP.4)
|
---|
106 | */
|
---|
107 | BOOL WINAPI EnumerateLoadedModules(
|
---|
108 | HANDLE hProcess,
|
---|
109 | PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
|
---|
110 | PVOID UserContext)
|
---|
111 | {
|
---|
112 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
113 | return FALSE;
|
---|
114 | }
|
---|
115 |
|
---|
116 | /***********************************************************************
|
---|
117 | * FindDebugInfoFile32 (IMAGEHLP.5)
|
---|
118 | */
|
---|
119 | HANDLE WINAPI FindDebugInfoFile(
|
---|
120 | LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath)
|
---|
121 | {
|
---|
122 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
123 | return (HANDLE) NULL;
|
---|
124 | }
|
---|
125 |
|
---|
126 | /***********************************************************************
|
---|
127 | * FindExecutableImage32 (IMAGEHLP.6)
|
---|
128 | */
|
---|
129 | HANDLE WINAPI FindExecutableImage(
|
---|
130 | LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath)
|
---|
131 | {
|
---|
132 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
133 | return (HANDLE) NULL;
|
---|
134 | }
|
---|
135 |
|
---|
136 | /***********************************************************************
|
---|
137 | * GetImageConfigInformation32 (IMAGEHLP.7)
|
---|
138 | */
|
---|
139 | BOOL WINAPI GetImageConfigInformation(
|
---|
140 | PLOADED_IMAGE LoadedImage,
|
---|
141 | PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation)
|
---|
142 | {
|
---|
143 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
144 | return FALSE;
|
---|
145 | }
|
---|
146 |
|
---|
147 | /***********************************************************************
|
---|
148 | * GetImageUnusedHeaderBytes32 (IMAGEHLP.8)
|
---|
149 | */
|
---|
150 | DWORD WINAPI GetImageUnusedHeaderBytes(
|
---|
151 | PLOADED_IMAGE LoadedImage,
|
---|
152 | LPDWORD SizeUnusedHeaderBytes)
|
---|
153 | {
|
---|
154 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
155 | return 0;
|
---|
156 | }
|
---|
157 |
|
---|
158 | /***********************************************************************
|
---|
159 | * GetTimestampForLoadedLibrary32 (IMAGEHLP.9)
|
---|
160 | */
|
---|
161 | DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE Module)
|
---|
162 | {
|
---|
163 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
164 | return 0;
|
---|
165 | }
|
---|
166 |
|
---|
167 | /***********************************************************************
|
---|
168 | * ImageAddCertificate32 (IMAGEHLP.10)
|
---|
169 | */
|
---|
170 |
|
---|
171 | BOOL WINAPI ImageAddCertificate(
|
---|
172 | HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index)
|
---|
173 | {
|
---|
174 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
175 | return FALSE;
|
---|
176 | }
|
---|
177 |
|
---|
178 | /***********************************************************************
|
---|
179 | * ImageDirectoryEntryToData32 (IMAGEHLP.11)
|
---|
180 | */
|
---|
181 | PVOID WINAPI ImageDirectoryEntryToData(
|
---|
182 | PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size)
|
---|
183 | {
|
---|
184 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
185 | return NULL;
|
---|
186 | }
|
---|
187 |
|
---|
188 | /***********************************************************************
|
---|
189 | * ImageEnumerateCertificates32 (IMAGEHLP.12)
|
---|
190 | */
|
---|
191 | BOOL WINAPI ImageEnumerateCertificates(
|
---|
192 | HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
|
---|
193 | PDWORD Indices, DWORD IndexCount)
|
---|
194 | {
|
---|
195 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
196 | return FALSE;
|
---|
197 | }
|
---|
198 |
|
---|
199 | /***********************************************************************
|
---|
200 | * ImageGetCertificateData32 (IMAGEHLP.13)
|
---|
201 | */
|
---|
202 | BOOL WINAPI ImageGetCertificateData(
|
---|
203 | HANDLE FileHandle, DWORD CertificateIndex,
|
---|
204 | PWIN_CERTIFICATE Certificate, PDWORD RequiredLength)
|
---|
205 | {
|
---|
206 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
207 | return FALSE;
|
---|
208 | }
|
---|
209 |
|
---|
210 | /***********************************************************************
|
---|
211 | * ImageGetCertificateHeader32 (IMAGEHLP.14)
|
---|
212 | */
|
---|
213 | BOOL WINAPI ImageGetCertificateHeader(
|
---|
214 | HANDLE FileHandle, DWORD CertificateIndex,
|
---|
215 | PWIN_CERTIFICATE Certificateheader)
|
---|
216 | {
|
---|
217 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
218 | return FALSE;
|
---|
219 | }
|
---|
220 |
|
---|
221 | /***********************************************************************
|
---|
222 | * ImageGetDigestStream32 (IMAGEHLP.15)
|
---|
223 | */
|
---|
224 | BOOL WINAPI ImageGetDigestStream(
|
---|
225 | HANDLE FileHandle, DWORD DigestLevel,
|
---|
226 | DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle)
|
---|
227 | {
|
---|
228 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
229 | return FALSE;
|
---|
230 | }
|
---|
231 |
|
---|
232 | /***********************************************************************
|
---|
233 | * ImageLoad32 (IMAGEHLP.16)
|
---|
234 | */
|
---|
235 | PLOADED_IMAGE WINAPI ImageLoad(LPSTR DllName, LPSTR DllPath)
|
---|
236 | {
|
---|
237 | // FIXME-JW PLOADED_IMAGE pLoadedImage = HeapAlloc (IMAGEHLP_hHeap, 0, sizeof(LOADED_IMAGE));
|
---|
238 | // FIXME-JW return pLoadedImage;
|
---|
239 | return NULL;
|
---|
240 | }
|
---|
241 |
|
---|
242 | /***********************************************************************
|
---|
243 | * ImageNtHeader32 (IMAGEHLP.17)
|
---|
244 | */
|
---|
245 | PIMAGE_NT_HEADERS WINAPI ImageNtHeader(PVOID Base)
|
---|
246 | {
|
---|
247 | return (PIMAGE_NT_HEADERS)
|
---|
248 | ((LPBYTE) Base + ((PIMAGE_DOS_HEADER) Base)->e_lfanew);
|
---|
249 | }
|
---|
250 |
|
---|
251 | /***********************************************************************
|
---|
252 | * ImageRemoveCertificate32 (IMAGEHLP.18)
|
---|
253 | */
|
---|
254 | BOOL WINAPI ImageRemoveCertificate(HANDLE FileHandle, DWORD Index)
|
---|
255 | {
|
---|
256 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
257 | return FALSE;
|
---|
258 | }
|
---|
259 |
|
---|
260 | /***********************************************************************
|
---|
261 | * ImageRvaToSection32 (IMAGEHLP.19)
|
---|
262 | */
|
---|
263 | PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
|
---|
264 | PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva)
|
---|
265 | {
|
---|
266 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
267 | return NULL;
|
---|
268 | }
|
---|
269 |
|
---|
270 | /***********************************************************************
|
---|
271 | * ImageRvaToVa32 (IMAGEHLP.20)
|
---|
272 | */
|
---|
273 | PVOID WINAPI ImageRvaToVa(
|
---|
274 | PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
|
---|
275 | PIMAGE_SECTION_HEADER *LastRvaSection)
|
---|
276 | {
|
---|
277 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
278 | return NULL;
|
---|
279 | }
|
---|
280 |
|
---|
281 | /***********************************************************************
|
---|
282 | * ImageUnload32 (IMAGEHLP.21)
|
---|
283 | */
|
---|
284 | BOOL WINAPI ImageUnload(PLOADED_IMAGE pLoadedImage)
|
---|
285 | {
|
---|
286 | LIST_ENTRY *pCurrent, *pFind;
|
---|
287 | if(!IMAGEHLP_pFirstLoadedImage || !pLoadedImage)
|
---|
288 | {
|
---|
289 | /* No image loaded or null pointer */
|
---|
290 | SetLastError(ERROR_INVALID_PARAMETER);
|
---|
291 | return FALSE;
|
---|
292 | }
|
---|
293 |
|
---|
294 | pFind=&pLoadedImage->Links;
|
---|
295 | pCurrent=&IMAGEHLP_pFirstLoadedImage->Links;
|
---|
296 | while((pCurrent != pFind) &&
|
---|
297 | (pCurrent != NULL))
|
---|
298 | pCurrent = pCurrent->Flink;
|
---|
299 | if(!pCurrent)
|
---|
300 | {
|
---|
301 | /* Not found */
|
---|
302 | SetLastError(ERROR_INVALID_PARAMETER);
|
---|
303 | return FALSE;
|
---|
304 | }
|
---|
305 |
|
---|
306 | if(pCurrent->Blink)
|
---|
307 | pCurrent->Blink->Flink = pCurrent->Flink;
|
---|
308 | else
|
---|
309 | IMAGEHLP_pFirstLoadedImage = pCurrent->Flink?CONTAINING_RECORD(
|
---|
310 | pCurrent->Flink, LOADED_IMAGE, Links):NULL;
|
---|
311 |
|
---|
312 | if(pCurrent->Flink)
|
---|
313 | pCurrent->Flink->Blink = pCurrent->Blink;
|
---|
314 | else
|
---|
315 | IMAGEHLP_pLastLoadedImage = pCurrent->Blink?CONTAINING_RECORD(
|
---|
316 | pCurrent->Blink, LOADED_IMAGE, Links):NULL;
|
---|
317 |
|
---|
318 | return FALSE;
|
---|
319 | }
|
---|
320 |
|
---|
321 |
|
---|
322 | /***********************************************************************
|
---|
323 | * ImagehlpApiVersion32 (IMAGEHLP.22)
|
---|
324 | */
|
---|
325 | PAPI_VERSION WINAPI ImagehlpApiVersion()
|
---|
326 | {
|
---|
327 | return &IMAGEHLP_ApiVersion;
|
---|
328 | }
|
---|
329 |
|
---|
330 | /***********************************************************************
|
---|
331 | * ImagehlpApiVersionEx32 (IMAGEHLP.23)
|
---|
332 | */
|
---|
333 | PAPI_VERSION WINAPI ImagehlpApiVersionEx(PAPI_VERSION AppVersion)
|
---|
334 | {
|
---|
335 | if(!AppVersion)
|
---|
336 | return NULL;
|
---|
337 |
|
---|
338 | AppVersion->MajorVersion = IMAGEHLP_ApiVersion.MajorVersion;
|
---|
339 | AppVersion->MinorVersion = IMAGEHLP_ApiVersion.MinorVersion;
|
---|
340 | AppVersion->Revision = IMAGEHLP_ApiVersion.Revision;
|
---|
341 | AppVersion->Reserved = IMAGEHLP_ApiVersion.Reserved;
|
---|
342 |
|
---|
343 | return AppVersion;
|
---|
344 | }
|
---|
345 |
|
---|
346 | /***********************************************************************
|
---|
347 | * MakeSureDirectoryPathExists32 (IMAGEHLP.24)
|
---|
348 | */
|
---|
349 | BOOL WINAPI MakeSureDirectoryPathExists(LPCSTR DirPath)
|
---|
350 | {
|
---|
351 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
352 | return FALSE;
|
---|
353 | }
|
---|
354 |
|
---|
355 | /***********************************************************************
|
---|
356 | * MapAndLoad32 (IMAGEHLP.25)
|
---|
357 | */
|
---|
358 | BOOL WINAPI MapAndLoad(
|
---|
359 | LPSTR pszImageName, LPSTR pszDllPath, PLOADED_IMAGE pLoadedImage,
|
---|
360 | BOOL bDotDll, BOOL bReadOnly)
|
---|
361 | {
|
---|
362 | CHAR szFileName[MAX_PATH];
|
---|
363 | HANDLE hFile = (HANDLE) NULL;
|
---|
364 | HANDLE hFileMapping = (HANDLE) NULL;
|
---|
365 | HMODULE hModule = (HMODULE) NULL;
|
---|
366 | PIMAGE_NT_HEADERS pNtHeader = NULL;
|
---|
367 |
|
---|
368 | /* PathCombine(&szFileName, pszDllPath, pszImageName); */
|
---|
369 | /* PathRenameExtension(&szFileName, bDotDll?:"dll":"exe"); */
|
---|
370 |
|
---|
371 | /* FIXME: Check if the file already loaded (use IMAGEHLP_pFirstLoadedImage32) */
|
---|
372 | if(!(hFile = CreateFileA(
|
---|
373 | szFileName, GENERIC_READ, 1, /* FIXME: FILE_SHARE_READ not defined */
|
---|
374 | NULL, OPEN_EXISTING, 0, (HANDLE) NULL)))
|
---|
375 | {
|
---|
376 | SetLastError(ERROR_FILE_NOT_FOUND);
|
---|
377 | goto Error;
|
---|
378 | }
|
---|
379 |
|
---|
380 | if(!(hFileMapping = CreateFileMappingA(
|
---|
381 | hFile, NULL, PAGE_READONLY | SEC_COMMIT, 0, 0, NULL)))
|
---|
382 | {
|
---|
383 | DWORD dwLastError = GetLastError();
|
---|
384 | // WARN("CreateFileMapping: Error = %ld\n", dwLastError);
|
---|
385 | SetLastError(dwLastError);
|
---|
386 | goto Error;
|
---|
387 | }
|
---|
388 | CloseHandle(hFile);
|
---|
389 | hFile = (HANDLE) NULL;
|
---|
390 |
|
---|
391 | if(!(hModule = (HMODULE) MapViewOfFile(
|
---|
392 | hFileMapping, FILE_MAP_READ, 0, 0, 0)))
|
---|
393 | {
|
---|
394 | DWORD dwLastError = GetLastError();
|
---|
395 | // WARN("MapViewOfFile: Error = %ld\n", dwLastError);
|
---|
396 | SetLastError(dwLastError);
|
---|
397 | goto Error;
|
---|
398 | }
|
---|
399 |
|
---|
400 | CloseHandle(hFileMapping);
|
---|
401 | hFileMapping=(HANDLE) NULL;
|
---|
402 |
|
---|
403 | pLoadedImage = (PLOADED_IMAGE) HeapAlloc(
|
---|
404 | IMAGEHLP_hHeap, 0, sizeof(LOADED_IMAGE)
|
---|
405 | );
|
---|
406 |
|
---|
407 | pNtHeader = ImageNtHeader((PVOID) hModule);
|
---|
408 |
|
---|
409 | pLoadedImage->ModuleName =
|
---|
410 | HEAP_strdupA(IMAGEHLP_hHeap, 0, pszDllPath); /* FIXME: Correct? */
|
---|
411 | pLoadedImage->hFile = hFile;
|
---|
412 | pLoadedImage->MappedAddress = (PUCHAR) hModule;
|
---|
413 | pLoadedImage->FileHeader = pNtHeader;
|
---|
414 | pLoadedImage->Sections = (PIMAGE_SECTION_HEADER)
|
---|
415 | ((LPBYTE) &pNtHeader->OptionalHeader +
|
---|
416 | pNtHeader->FileHeader.SizeOfOptionalHeader);
|
---|
417 | pLoadedImage->NumberOfSections =
|
---|
418 | pNtHeader->FileHeader.NumberOfSections;
|
---|
419 | pLoadedImage->SizeOfImage =
|
---|
420 | pNtHeader->OptionalHeader.SizeOfImage;
|
---|
421 | pLoadedImage->Characteristics =
|
---|
422 | pNtHeader->FileHeader.Characteristics;
|
---|
423 | pLoadedImage->LastRvaSection = pLoadedImage->Sections;
|
---|
424 |
|
---|
425 | pLoadedImage->fSystemImage = FALSE; /* FIXME */
|
---|
426 | pLoadedImage->fDOSImage = FALSE; /* FIXME */
|
---|
427 |
|
---|
428 | /* FIXME: Make thread safe */
|
---|
429 | pLoadedImage->Links.Flink = NULL;
|
---|
430 | pLoadedImage->Links.Blink = &IMAGEHLP_pLastLoadedImage->Links;
|
---|
431 | if(IMAGEHLP_pLastLoadedImage)
|
---|
432 | IMAGEHLP_pLastLoadedImage->Links.Flink = &pLoadedImage->Links;
|
---|
433 | IMAGEHLP_pLastLoadedImage = pLoadedImage;
|
---|
434 | if(!IMAGEHLP_pFirstLoadedImage)
|
---|
435 | IMAGEHLP_pFirstLoadedImage = pLoadedImage;
|
---|
436 |
|
---|
437 | return TRUE;
|
---|
438 |
|
---|
439 | Error:
|
---|
440 | if(hModule)
|
---|
441 | UnmapViewOfFile((PVOID) hModule);
|
---|
442 | if(hFileMapping)
|
---|
443 | CloseHandle(hFileMapping);
|
---|
444 | if(hFile)
|
---|
445 | CloseHandle(hFile);
|
---|
446 | return FALSE;
|
---|
447 | }
|
---|
448 |
|
---|
449 | /***********************************************************************
|
---|
450 | * MapDebugInformation32 (IMAGEHLP.26)
|
---|
451 | */
|
---|
452 | PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
|
---|
453 | HANDLE FileHandle, LPSTR FileName,
|
---|
454 | LPSTR SymbolPath, DWORD ImageBase)
|
---|
455 | {
|
---|
456 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
457 | return NULL;
|
---|
458 | }
|
---|
459 |
|
---|
460 | /***********************************************************************
|
---|
461 | * MapFileAndCheckSum32A (IMAGEHLP.27)
|
---|
462 | */
|
---|
463 | DWORD WINAPI MapFileAndCheckSumA(
|
---|
464 | LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum)
|
---|
465 | {
|
---|
466 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
467 | return CHECKSUM_OPEN_FAILURE;
|
---|
468 | }
|
---|
469 |
|
---|
470 | /***********************************************************************
|
---|
471 | * MapFileAndCheckSum32W (IMAGEHLP.28)
|
---|
472 | */
|
---|
473 | DWORD WINAPI MapFileAndCheckSumW(
|
---|
474 | LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum)
|
---|
475 | {
|
---|
476 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
477 | return CHECKSUM_OPEN_FAILURE;
|
---|
478 | }
|
---|
479 |
|
---|
480 | /***********************************************************************
|
---|
481 | * MarkImageAsRunFromSwap (IMAGEHLP.29)
|
---|
482 | * FIXME
|
---|
483 | * No documentation available.
|
---|
484 | */
|
---|
485 |
|
---|
486 | /***********************************************************************
|
---|
487 | * ReBaseImage32 (IMAGEHLP.30)
|
---|
488 | */
|
---|
489 | BOOL WINAPI ReBaseImage(
|
---|
490 | LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase,
|
---|
491 | BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
|
---|
492 | ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
|
---|
493 | ULONG *NewImageBase, ULONG TimeStamp)
|
---|
494 | {
|
---|
495 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
496 | return FALSE;
|
---|
497 | }
|
---|
498 |
|
---|
499 | /***********************************************************************
|
---|
500 | * RemovePrivateCvSymbolic32 (IMAGEHLP.31)
|
---|
501 | */
|
---|
502 | BOOL WINAPI RemovePrivateCvSymbolic(
|
---|
503 | PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize)
|
---|
504 | {
|
---|
505 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
506 | return FALSE;
|
---|
507 | }
|
---|
508 |
|
---|
509 | /***********************************************************************
|
---|
510 | * RemoveRelocations32 (IMAGEHLP.32)
|
---|
511 | */
|
---|
512 | VOID WINAPI RemoveRelocations(PCHAR ImageName)
|
---|
513 | {
|
---|
514 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
515 | }
|
---|
516 |
|
---|
517 |
|
---|
518 | /***********************************************************************
|
---|
519 | * SearchTreeForFile32 (IMAGEHLP.33)
|
---|
520 | */
|
---|
521 | BOOL WINAPI SearchTreeForFile(
|
---|
522 | LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer)
|
---|
523 | {
|
---|
524 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
525 | return FALSE;
|
---|
526 | }
|
---|
527 |
|
---|
528 | /***********************************************************************
|
---|
529 | * SetImageConfigInformation32 (IMAGEHLP.34)
|
---|
530 | */
|
---|
531 | BOOL WINAPI SetImageConfigInformation(
|
---|
532 | PLOADED_IMAGE LoadedImage,
|
---|
533 | PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation)
|
---|
534 | {
|
---|
535 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
536 | return FALSE;
|
---|
537 | }
|
---|
538 |
|
---|
539 | /***********************************************************************
|
---|
540 | * SplitSymbols32 (IMAGEHLP.35)
|
---|
541 | */
|
---|
542 | BOOL WINAPI SplitSymbols(
|
---|
543 | LPSTR ImageName, LPSTR SymbolsPath,
|
---|
544 | LPSTR SymbolFilePath, DWORD Flags)
|
---|
545 | {
|
---|
546 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
547 | return FALSE;
|
---|
548 | }
|
---|
549 |
|
---|
550 | /***********************************************************************
|
---|
551 | * StackWalk32 (IMAGEHLP.36)
|
---|
552 | */
|
---|
553 | BOOL WINAPI StackWalk(
|
---|
554 | DWORD MachineType, HANDLE hProcess, HANDLE hThread,
|
---|
555 | PSTACKFRAME StackFrame, PVOID ContextRecord,
|
---|
556 | PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
|
---|
557 | PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
|
---|
558 | PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
|
---|
559 | PTRANSLATE_ADDRESS_ROUTINE TranslateAddress)
|
---|
560 | {
|
---|
561 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
562 | return FALSE;
|
---|
563 | }
|
---|
564 |
|
---|
565 | /***********************************************************************
|
---|
566 | * SymCleanup32 (IMAGEHLP.37)
|
---|
567 | */
|
---|
568 | BOOL WINAPI SymCleanup(HANDLE hProcess)
|
---|
569 | {
|
---|
570 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
571 | return FALSE;
|
---|
572 | }
|
---|
573 |
|
---|
574 | /***********************************************************************
|
---|
575 | * SymEnumerateModules32 (IMAGEHLP.38)
|
---|
576 | */
|
---|
577 |
|
---|
578 | BOOL WINAPI SymEnumerateModules(
|
---|
579 | HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
|
---|
580 | PVOID UserContext)
|
---|
581 | {
|
---|
582 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
583 | return FALSE;
|
---|
584 | }
|
---|
585 |
|
---|
586 | /***********************************************************************
|
---|
587 | * SymEnumerateSymbols32 (IMAGEHLP.39)
|
---|
588 | */
|
---|
589 | BOOL WINAPI SymEnumerateSymbols(
|
---|
590 | HANDLE hProcess, DWORD BaseOfDll,
|
---|
591 | PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext)
|
---|
592 | {
|
---|
593 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
594 | return FALSE;
|
---|
595 | }
|
---|
596 |
|
---|
597 | /***********************************************************************
|
---|
598 | * SymFunctionTableAccess32 (IMAGEHLP.40)
|
---|
599 | */
|
---|
600 | PVOID WINAPI SymFunctionTableAccess(HANDLE hProcess, DWORD AddrBase)
|
---|
601 | {
|
---|
602 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
603 | return FALSE;
|
---|
604 | }
|
---|
605 |
|
---|
606 | /***********************************************************************
|
---|
607 | * SymGetModuleBase32 (IMAGEHLP.41)
|
---|
608 | */
|
---|
609 | DWORD WINAPI SymGetModuleBase(HANDLE hProcess, DWORD dwAddr)
|
---|
610 | {
|
---|
611 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
612 | return 0;
|
---|
613 | }
|
---|
614 |
|
---|
615 | /***********************************************************************
|
---|
616 | * SymGetModuleInfo32 (IMAGEHLP.42)
|
---|
617 | */
|
---|
618 | BOOL WINAPI SymGetModuleInfo(
|
---|
619 | HANDLE hProcess, DWORD dwAddr,
|
---|
620 | PIMAGEHLP_MODULE ModuleInfo)
|
---|
621 | {
|
---|
622 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
623 | return FALSE;
|
---|
624 | }
|
---|
625 |
|
---|
626 | /***********************************************************************
|
---|
627 | * SymGetOptions32 (IMAGEHLP.43)
|
---|
628 | */
|
---|
629 | DWORD WINAPI SymGetOptions()
|
---|
630 | {
|
---|
631 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
632 | return 0;
|
---|
633 | }
|
---|
634 |
|
---|
635 | /***********************************************************************
|
---|
636 | * SymGetSearchPath32 (IMAGEHLP.44)
|
---|
637 | */
|
---|
638 | BOOL WINAPI SymGetSearchPath(
|
---|
639 | HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength)
|
---|
640 | {
|
---|
641 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
642 | return FALSE;
|
---|
643 | }
|
---|
644 |
|
---|
645 | /***********************************************************************
|
---|
646 | * SymGetSymFromAddr32 (IMAGEHLP.45)
|
---|
647 | */
|
---|
648 | BOOL WINAPI SymGetSymFromAddr(
|
---|
649 | HANDLE hProcess, DWORD dwAddr,
|
---|
650 | PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol)
|
---|
651 | {
|
---|
652 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
653 | return FALSE;
|
---|
654 | }
|
---|
655 |
|
---|
656 | /***********************************************************************
|
---|
657 | * SymGetSymFromName32 (IMAGEHLP.46)
|
---|
658 | */
|
---|
659 | BOOL WINAPI SymGetSymFromName(
|
---|
660 | HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol)
|
---|
661 | {
|
---|
662 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
663 | return FALSE;
|
---|
664 | }
|
---|
665 |
|
---|
666 | /***********************************************************************
|
---|
667 | * SymGetSymNext32 (IMAGEHLP.47)
|
---|
668 | */
|
---|
669 | BOOL WINAPI SymGetSymNext(
|
---|
670 | HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
|
---|
671 | {
|
---|
672 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
673 | return FALSE;
|
---|
674 | }
|
---|
675 |
|
---|
676 | /***********************************************************************
|
---|
677 | * SymGetSymPrev32 (IMAGEHLP.48)
|
---|
678 | */
|
---|
679 |
|
---|
680 | BOOL WINAPI SymGetSymPrev(
|
---|
681 | HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
|
---|
682 | {
|
---|
683 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
684 | return FALSE;
|
---|
685 | }
|
---|
686 |
|
---|
687 | /***********************************************************************
|
---|
688 | * SymInitialize32 (IMAGEHLP.49)
|
---|
689 | */
|
---|
690 | BOOL WINAPI SymInitialize(
|
---|
691 | HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess)
|
---|
692 | {
|
---|
693 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
694 | return FALSE;
|
---|
695 | }
|
---|
696 |
|
---|
697 | /***********************************************************************
|
---|
698 | * SymLoadModule32 (IMAGEHLP.50)
|
---|
699 | */
|
---|
700 |
|
---|
701 | BOOL WINAPI SymLoadModule(
|
---|
702 | HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
|
---|
703 | DWORD BaseOfDll, DWORD SizeOfDll)
|
---|
704 | {
|
---|
705 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
706 | return FALSE;
|
---|
707 | }
|
---|
708 |
|
---|
709 | /***********************************************************************
|
---|
710 | * SymRegisterCallback32 (IMAGEHLP.51)
|
---|
711 | */
|
---|
712 | BOOL WINAPI SymRegisterCallback(
|
---|
713 | HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
|
---|
714 | PVOID UserContext)
|
---|
715 | {
|
---|
716 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
717 | return FALSE;
|
---|
718 | }
|
---|
719 |
|
---|
720 | /***********************************************************************
|
---|
721 | * SymSetOptions32 (IMAGEHLP.52)
|
---|
722 | */
|
---|
723 | DWORD WINAPI SymSetOptions(DWORD SymOptions)
|
---|
724 | {
|
---|
725 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
726 | return 0;
|
---|
727 | }
|
---|
728 |
|
---|
729 | /***********************************************************************
|
---|
730 | * SymSetSearchPath32 (IMAGEHLP.53)
|
---|
731 | */
|
---|
732 | BOOL WINAPI SymSetSearchPath(HANDLE hProcess, LPSTR szSearchPath)
|
---|
733 | {
|
---|
734 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
735 | return FALSE;
|
---|
736 | }
|
---|
737 |
|
---|
738 | /***********************************************************************
|
---|
739 | * SymUnDName32 (IMAGEHLP.54)
|
---|
740 | */
|
---|
741 | BOOL WINAPI SymUnDName(
|
---|
742 | PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength)
|
---|
743 | {
|
---|
744 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
745 | return FALSE;
|
---|
746 | }
|
---|
747 |
|
---|
748 | /***********************************************************************
|
---|
749 | * SymUnloadModule32 (IMAGEHLP.55)
|
---|
750 | */
|
---|
751 | BOOL WINAPI SymUnloadModule(
|
---|
752 | HANDLE hProcess, DWORD BaseOfDll)
|
---|
753 | {
|
---|
754 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
755 | return FALSE;
|
---|
756 | }
|
---|
757 |
|
---|
758 | /***********************************************************************
|
---|
759 | * TouchFileTimes32 (IMAGEHLP.56)
|
---|
760 | */
|
---|
761 | BOOL WINAPI TouchFileTimes(
|
---|
762 | HANDLE FileHandle, LPSYSTEMTIME lpSystemTime)
|
---|
763 | {
|
---|
764 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
765 | return FALSE;
|
---|
766 | }
|
---|
767 |
|
---|
768 | /***********************************************************************
|
---|
769 | * UnDecorateSymbolName32 (IMAGEHLP.57)
|
---|
770 | */
|
---|
771 | DWORD WINAPI UnDecorateSymbolName(
|
---|
772 | LPCSTR DecoratedName, LPSTR UnDecoratedName,
|
---|
773 | DWORD UndecoratedLength, DWORD Flags)
|
---|
774 | {
|
---|
775 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
776 | return 0;
|
---|
777 | }
|
---|
778 |
|
---|
779 | /***********************************************************************
|
---|
780 | * UnMapAndLoad32 (IMAGEHLP.58)
|
---|
781 | */
|
---|
782 | BOOL WINAPI UnMapAndLoad(PLOADED_IMAGE LoadedImage)
|
---|
783 | {
|
---|
784 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
785 | return FALSE;
|
---|
786 | }
|
---|
787 |
|
---|
788 | /***********************************************************************
|
---|
789 | * UnmapDebugInformation32 (IMAGEHLP.59)
|
---|
790 | */
|
---|
791 |
|
---|
792 | BOOL WINAPI UnmapDebugInformation(
|
---|
793 | PIMAGE_DEBUG_INFORMATION DebugInfo)
|
---|
794 | {
|
---|
795 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
796 | return FALSE;
|
---|
797 | }
|
---|
798 |
|
---|
799 | /***********************************************************************
|
---|
800 | * UpdateDebugInfoFile32 (IMAGEHLP.60)
|
---|
801 | */
|
---|
802 | BOOL WINAPI UpdateDebugInfoFile(
|
---|
803 | LPSTR ImageFileName, LPSTR SymbolPath,
|
---|
804 | LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders)
|
---|
805 | {
|
---|
806 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
807 | return FALSE;
|
---|
808 | }
|
---|
809 |
|
---|
810 | /***********************************************************************
|
---|
811 | * UpdateDebugInfoFileEx32 (IMAGEHLP.?)
|
---|
812 | * FIXME
|
---|
813 | * Function has no ordinal.
|
---|
814 | */
|
---|
815 | BOOL WINAPI UpdateDebugInfoFileEx(
|
---|
816 | LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
|
---|
817 | PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum)
|
---|
818 | {
|
---|
819 | SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
---|
820 | return FALSE;
|
---|
821 | }
|
---|
822 |
|
---|