source: trunk/src/imagehlp/imagehlp.cpp@ 1036

Last change on this file since 1036 was 1012, checked in by sandervl, 26 years ago

Jens Weissner's changes to crtdll + others

File size: 27.2 KB
Line 
1/* $Id: imagehlp.cpp,v 1.2 1999-09-23 09:38:04 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
15DEFAULT_DEBUG_CHANNEL(imagehlp)
16
17
18/***********************************************************************
19 * Data
20 */
21
22static PLOADED_IMAGE IMAGEHLP_pFirstLoadedImage=NULL;
23static PLOADED_IMAGE IMAGEHLP_pLastLoadedImage=NULL;
24
25static 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
43HANDLE IMAGEHLP_hHeap = (HANDLE) NULL;
44
45static API_VERSION IMAGEHLP_ApiVersion = { 4, 0, 0, 5 };
46
47/***********************************************************************
48 * IMAGEHLP_LibMain (IMAGEHLP.init)
49 */
50BOOL 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 * BindImage (IMAGEHLP.1)
75 */
76BOOL WINAPI BindImage(
77 LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath)
78{
79#ifdef DEBUG
80 dprintf(("IMAGEHLP: BindImage\n"));
81#endif
82 return BindImageEx(0, ImageName, DllPath, SymbolPath, NULL);
83}
84
85
86/***********************************************************************
87 * BindImageEx (IMAGEHLP.2)
88 */
89BOOL WINAPI BindImageEx(
90 DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
91 PIMAGEHLP_STATUS_ROUTINE StatusRoutine)
92{
93#ifdef DEBUG
94 dprintf(("IMAGEHLP: BindImageEx not implemented\n"));
95#endif
96 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
97 return FALSE;
98}
99
100/***********************************************************************
101 * CheckSumMappedFile (IMAGEHLP.3)
102 */
103PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
104 LPVOID BaseAddress, DWORD FileLength,
105 LPDWORD HeaderSum, LPDWORD CheckSum)
106{
107#ifdef DEBUG
108 dprintf(("IMAGEHLP: CheckSumMappedFile not implemented\n"));
109#endif
110 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
111 return NULL;
112}
113
114
115/***********************************************************************
116 * EnumerateLoadedModules (IMAGEHLP.4)
117 */
118BOOL WINAPI EnumerateLoadedModules(
119 HANDLE hProcess,
120 PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
121 PVOID UserContext)
122{
123#ifdef DEBUG
124 dprintf(("IMAGEHLP: EnumerateLoadedModules not implemented\n"));
125#endif
126 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
127 return FALSE;
128}
129
130
131/***********************************************************************
132 * FindDebugInfoFile (IMAGEHLP.5)
133 */
134HANDLE WINAPI FindDebugInfoFile(
135 LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath)
136{
137#ifdef DEBUG
138 dprintf(("IMAGEHLP: FindDebugInfoFile not implemented\n"));
139#endif
140 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
141 return (HANDLE) NULL;
142}
143
144
145/***********************************************************************
146 * FindExecutableImage (IMAGEHLP.6)
147 */
148HANDLE WINAPI FindExecutableImage(
149 LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath)
150{
151#ifdef DEBUG
152 dprintf(("IMAGEHLP: FindExecutableImage not implemented\n"));
153#endif
154 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
155 return (HANDLE) NULL;
156}
157
158
159/***********************************************************************
160 * GetImageConfigInformation (IMAGEHLP.7)
161 */
162BOOL WINAPI GetImageConfigInformation(
163 PLOADED_IMAGE LoadedImage,
164 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation)
165{
166#ifdef DEBUG
167 dprintf(("IMAGEHLP: GetImageConfigInformation not implemented\n"));
168#endif
169 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
170 return FALSE;
171}
172
173
174/***********************************************************************
175 * GetImageUnusedHeaderBytes (IMAGEHLP.8)
176 */
177DWORD WINAPI GetImageUnusedHeaderBytes(
178 PLOADED_IMAGE LoadedImage,
179 LPDWORD SizeUnusedHeaderBytes)
180{
181#ifdef DEBUG
182 dprintf(("IMAGEHLP: GetImageUnusedHeaderBytes not implemented\n"));
183#endif
184 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
185 return 0;
186}
187
188
189/***********************************************************************
190 * GetTimestampForLoadedLibrary (IMAGEHLP.9)
191 */
192DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE Module)
193{
194#ifdef DEBUG
195 dprintf(("IMAGEHLP: GetTimestampForLoadedLibrary not implemented\n"));
196#endif
197 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
198 return 0;
199}
200
201
202/***********************************************************************
203 * ImageAddCertificate (IMAGEHLP.10)
204 */
205
206BOOL WINAPI ImageAddCertificate(
207 HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index)
208{
209#ifdef DEBUG
210 dprintf(("IMAGEHLP: ImageAddCertificate not implemented\n"));
211#endif
212 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
213 return FALSE;
214}
215
216/***********************************************************************
217 * ImageDirectoryEntryToData (IMAGEHLP.11)
218 */
219PVOID WINAPI ImageDirectoryEntryToData(
220 PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size)
221{
222#ifdef DEBUG
223 dprintf(("IMAGEHLP: ImageDirectoryEntryToData not implemented\n"));
224#endif
225 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
226 return NULL;
227}
228
229/***********************************************************************
230 * ImageEnumerateCertificates (IMAGEHLP.12)
231 */
232BOOL WINAPI ImageEnumerateCertificates(
233 HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
234 PDWORD Indices, DWORD IndexCount)
235{
236#ifdef DEBUG
237 dprintf(("IMAGEHLP: ImageEnumerateCertificates not implemented\n"));
238#endif
239 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
240 return FALSE;
241}
242
243/***********************************************************************
244 * ImageGetCertificateData (IMAGEHLP.13)
245 */
246BOOL WINAPI ImageGetCertificateData(
247 HANDLE FileHandle, DWORD CertificateIndex,
248 PWIN_CERTIFICATE Certificate, PDWORD RequiredLength)
249{
250#ifdef DEBUG
251 dprintf(("IMAGEHLP: ImageGetCertificateData not implemented\n"));
252#endif
253 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
254 return FALSE;
255}
256
257/***********************************************************************
258 * ImageGetCertificateHeader (IMAGEHLP.14)
259 */
260BOOL WINAPI ImageGetCertificateHeader(
261 HANDLE FileHandle, DWORD CertificateIndex,
262 PWIN_CERTIFICATE Certificateheader)
263{
264#ifdef DEBUG
265 dprintf(("IMAGEHLP: ImageGetCertificateHeader not implemented\n"));
266#endif
267 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
268 return FALSE;
269}
270
271/***********************************************************************
272 * ImageGetDigestStream (IMAGEHLP.15)
273 */
274BOOL WINAPI ImageGetDigestStream(
275 HANDLE FileHandle, DWORD DigestLevel,
276 DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle)
277{
278#ifdef DEBUG
279 dprintf(("IMAGEHLP: ImageGetDigestStream not implemented\n"));
280#endif
281 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
282 return FALSE;
283}
284
285/***********************************************************************
286 * ImageLoad (IMAGEHLP.16)
287 */
288PLOADED_IMAGE WINAPI ImageLoad(LPSTR DllName, LPSTR DllPath)
289{
290#ifdef DEBUG
291 dprintf(("IMAGEHLP: ImageLoad not implemented\n"));
292#endif
293// FIXME-JW PLOADED_IMAGE pLoadedImage = HeapAlloc (IMAGEHLP_hHeap, 0, sizeof(LOADED_IMAGE));
294// FIXME-JW return pLoadedImage;
295 return NULL;
296}
297
298/***********************************************************************
299 * ImageNtHeader (IMAGEHLP.17)
300 */
301PIMAGE_NT_HEADERS WINAPI ImageNtHeader(PVOID Base)
302{
303#ifdef DEBUG
304 dprintf(("IMAGEHLP: ImageNtHeader\n"));
305#endif
306 return (PIMAGE_NT_HEADERS)
307 ((LPBYTE) Base + ((PIMAGE_DOS_HEADER) Base)->e_lfanew);
308}
309
310/***********************************************************************
311 * ImageRemoveCertificate (IMAGEHLP.18)
312 */
313BOOL WINAPI ImageRemoveCertificate(HANDLE FileHandle, DWORD Index)
314{
315#ifdef DEBUG
316 dprintf(("IMAGEHLP: ImageRemoveCertificate not implemented\n"));
317#endif
318 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
319 return FALSE;
320}
321
322/***********************************************************************
323 * ImageRvaToSection (IMAGEHLP.19)
324 */
325PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
326 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva)
327{
328#ifdef DEBUG
329 dprintf(("IMAGEHLP: ImageRvaToSection not implemented\n"));
330#endif
331 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
332 return NULL;
333}
334
335/***********************************************************************
336 * ImageRvaToVa (IMAGEHLP.20)
337 */
338PVOID WINAPI ImageRvaToVa(
339 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
340 PIMAGE_SECTION_HEADER *LastRvaSection)
341{
342#ifdef DEBUG
343 dprintf(("IMAGEHLP: ImageRvaToVa not implemented\n"));
344#endif
345 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
346 return NULL;
347}
348
349/***********************************************************************
350 * ImageUnload (IMAGEHLP.21)
351 */
352BOOL WINAPI ImageUnload(PLOADED_IMAGE pLoadedImage)
353{
354#ifdef DEBUG
355 dprintf(("IMAGEHLP: ImageUnload\n"));
356#endif
357 LIST_ENTRY *pCurrent, *pFind;
358 if(!IMAGEHLP_pFirstLoadedImage || !pLoadedImage)
359 {
360 /* No image loaded or null pointer */
361 SetLastError(ERROR_INVALID_PARAMETER);
362 return FALSE;
363 }
364
365 pFind=&pLoadedImage->Links;
366 pCurrent=&IMAGEHLP_pFirstLoadedImage->Links;
367 while((pCurrent != pFind) &&
368 (pCurrent != NULL))
369 pCurrent = pCurrent->Flink;
370 if(!pCurrent)
371 {
372 /* Not found */
373 SetLastError(ERROR_INVALID_PARAMETER);
374 return FALSE;
375 }
376
377 if(pCurrent->Blink)
378 pCurrent->Blink->Flink = pCurrent->Flink;
379 else
380 IMAGEHLP_pFirstLoadedImage = pCurrent->Flink?CONTAINING_RECORD(
381 pCurrent->Flink, LOADED_IMAGE, Links):NULL;
382
383 if(pCurrent->Flink)
384 pCurrent->Flink->Blink = pCurrent->Blink;
385 else
386 IMAGEHLP_pLastLoadedImage = pCurrent->Blink?CONTAINING_RECORD(
387 pCurrent->Blink, LOADED_IMAGE, Links):NULL;
388
389 return FALSE;
390}
391
392
393/***********************************************************************
394 * ImagehlpApiVersion (IMAGEHLP.22)
395 */
396PAPI_VERSION WINAPI ImagehlpApiVersion()
397{
398#ifdef DEBUG
399 dprintf(("IMAGEHLP: ImagehlpApiVersion\n"));
400#endif
401 return &IMAGEHLP_ApiVersion;
402}
403
404/***********************************************************************
405 * ImagehlpApiVersionEx (IMAGEHLP.23)
406 */
407PAPI_VERSION WINAPI ImagehlpApiVersionEx(PAPI_VERSION AppVersion)
408{
409#ifdef DEBUG
410 dprintf(("IMAGEHLP: ImagehlpApiVersionEx\n"));
411#endif
412 if(!AppVersion)
413 return NULL;
414
415 AppVersion->MajorVersion = IMAGEHLP_ApiVersion.MajorVersion;
416 AppVersion->MinorVersion = IMAGEHLP_ApiVersion.MinorVersion;
417 AppVersion->Revision = IMAGEHLP_ApiVersion.Revision;
418 AppVersion->Reserved = IMAGEHLP_ApiVersion.Reserved;
419
420 return AppVersion;
421}
422
423/***********************************************************************
424 * MakeSureDirectoryPathExists (IMAGEHLP.24)
425 */
426BOOL WINAPI MakeSureDirectoryPathExists(LPCSTR DirPath)
427{
428#ifdef DEBUG
429 dprintf(("IMAGEHLP: MakeSureDirectoryPathExists not implemented\n"));
430#endif
431 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
432 return FALSE;
433}
434
435/***********************************************************************
436 * MapAndLoad (IMAGEHLP.25)
437 */
438BOOL WINAPI MapAndLoad(
439 LPSTR pszImageName, LPSTR pszDllPath, PLOADED_IMAGE pLoadedImage,
440 BOOL bDotDll, BOOL bReadOnly)
441{
442#ifdef DEBUG
443 dprintf(("IMAGEHLP: MapAndLoad\n"));
444#endif
445 CHAR szFileName[MAX_PATH];
446 HANDLE hFile = (HANDLE) NULL;
447 HANDLE hFileMapping = (HANDLE) NULL;
448 HMODULE hModule = (HMODULE) NULL;
449 PIMAGE_NT_HEADERS pNtHeader = NULL;
450
451 /* PathCombine(&szFileName, pszDllPath, pszImageName); */
452 /* PathRenameExtension(&szFileName, bDotDll?:"dll":"exe"); */
453
454 /* FIXME: Check if the file already loaded (use IMAGEHLP_pFirstLoadedImage32) */
455 if(!(hFile = CreateFileA(
456 szFileName, GENERIC_READ, 1, /* FIXME: FILE_SHARE_READ not defined */
457 NULL, OPEN_EXISTING, 0, (HANDLE) NULL)))
458 {
459 SetLastError(ERROR_FILE_NOT_FOUND);
460 goto Error;
461 }
462
463 if(!(hFileMapping = CreateFileMappingA(
464 hFile, NULL, PAGE_READONLY | SEC_COMMIT, 0, 0, NULL)))
465 {
466 DWORD dwLastError = GetLastError();
467#ifdef DEBUG
468 dprintf(("CreateFileMapping: Error = %ld\n", dwLastError));
469#endif
470 SetLastError(dwLastError);
471 goto Error;
472 }
473 CloseHandle(hFile);
474 hFile = (HANDLE) NULL;
475
476 if(!(hModule = (HMODULE) MapViewOfFile(
477 hFileMapping, FILE_MAP_READ, 0, 0, 0)))
478 {
479 DWORD dwLastError = GetLastError();
480#ifdef DEBUG
481 dprintf(("MapViewOfFile: Error = %ld\n", dwLastError));
482#endif
483 SetLastError(dwLastError);
484 goto Error;
485 }
486
487 CloseHandle(hFileMapping);
488 hFileMapping=(HANDLE) NULL;
489
490 pLoadedImage = (PLOADED_IMAGE) HeapAlloc(
491 IMAGEHLP_hHeap, 0, sizeof(LOADED_IMAGE)
492 );
493
494 pNtHeader = ImageNtHeader((PVOID) hModule);
495
496 pLoadedImage->ModuleName =
497 HEAP_strdupA(IMAGEHLP_hHeap, 0, pszDllPath); /* FIXME: Correct? */
498 pLoadedImage->hFile = hFile;
499 pLoadedImage->MappedAddress = (PUCHAR) hModule;
500 pLoadedImage->FileHeader = pNtHeader;
501 pLoadedImage->Sections = (PIMAGE_SECTION_HEADER)
502 ((LPBYTE) &pNtHeader->OptionalHeader +
503 pNtHeader->FileHeader.SizeOfOptionalHeader);
504 pLoadedImage->NumberOfSections =
505 pNtHeader->FileHeader.NumberOfSections;
506 pLoadedImage->SizeOfImage =
507 pNtHeader->OptionalHeader.SizeOfImage;
508 pLoadedImage->Characteristics =
509 pNtHeader->FileHeader.Characteristics;
510 pLoadedImage->LastRvaSection = pLoadedImage->Sections;
511
512 pLoadedImage->fSystemImage = FALSE; /* FIXME */
513 pLoadedImage->fDOSImage = FALSE; /* FIXME */
514
515 /* FIXME: Make thread safe */
516 pLoadedImage->Links.Flink = NULL;
517 pLoadedImage->Links.Blink = &IMAGEHLP_pLastLoadedImage->Links;
518 if(IMAGEHLP_pLastLoadedImage)
519 IMAGEHLP_pLastLoadedImage->Links.Flink = &pLoadedImage->Links;
520 IMAGEHLP_pLastLoadedImage = pLoadedImage;
521 if(!IMAGEHLP_pFirstLoadedImage)
522 IMAGEHLP_pFirstLoadedImage = pLoadedImage;
523
524 return TRUE;
525
526Error:
527 if(hModule)
528 UnmapViewOfFile((PVOID) hModule);
529 if(hFileMapping)
530 CloseHandle(hFileMapping);
531 if(hFile)
532 CloseHandle(hFile);
533 return FALSE;
534}
535
536/***********************************************************************
537 * MapDebugInformation (IMAGEHLP.26)
538 */
539PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
540 HANDLE FileHandle, LPSTR FileName,
541 LPSTR SymbolPath, DWORD ImageBase)
542{
543#ifdef DEBUG
544 dprintf(("IMAGEHLP: MapDebugInformation not implemented\n"));
545#endif
546 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
547 return NULL;
548}
549
550/***********************************************************************
551 * MapFileAndCheckSumA (IMAGEHLP.27)
552 */
553DWORD WINAPI MapFileAndCheckSumA(
554 LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum)
555{
556#ifdef DEBUG
557 dprintf(("IMAGEHLP: MapFileAndCheckSumA not implemented\n"));
558#endif
559 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
560 return CHECKSUM_OPEN_FAILURE;
561}
562
563/***********************************************************************
564 * MapFileAndCheckSumW (IMAGEHLP.28)
565 */
566DWORD WINAPI MapFileAndCheckSumW(
567 LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum)
568{
569#ifdef DEBUG
570 dprintf(("IMAGEHLP: MapFileAndCheckSumW not implemented\n"));
571#endif
572 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
573 return CHECKSUM_OPEN_FAILURE;
574}
575
576/***********************************************************************
577 * MarkImageAsRunFromSwap (IMAGEHLP.29)
578 * FIXME
579 * No documentation available.
580 */
581
582/***********************************************************************
583 * ReBaseImage (IMAGEHLP.30)
584 */
585BOOL WINAPI ReBaseImage(
586 LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase,
587 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
588 ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
589 ULONG *NewImageBase, ULONG TimeStamp)
590{
591#ifdef DEBUG
592 dprintf(("IMAGEHLP: ReBaseImage not implemented\n"));
593#endif
594 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
595 return FALSE;
596}
597
598/***********************************************************************
599 * RemovePrivateCvSymbolic (IMAGEHLP.31)
600 */
601BOOL WINAPI RemovePrivateCvSymbolic(
602 PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize)
603{
604#ifdef DEBUG
605 dprintf(("IMAGEHLP: RemovePrivateCvSymbolic not implemented\n"));
606#endif
607 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
608 return FALSE;
609}
610
611/***********************************************************************
612 * RemoveRelocations (IMAGEHLP.32)
613 */
614VOID WINAPI RemoveRelocations(PCHAR ImageName)
615{
616#ifdef DEBUG
617 dprintf(("IMAGEHLP: RemoveRelocations not implemented\n"));
618#endif
619 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
620}
621
622
623/***********************************************************************
624 * SearchTreeForFile (IMAGEHLP.33)
625 */
626BOOL WINAPI SearchTreeForFile(
627 LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer)
628{
629#ifdef DEBUG
630 dprintf(("IMAGEHLP: SearchTreeForFile not implemented\n"));
631#endif
632 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
633 return FALSE;
634}
635
636/***********************************************************************
637 * SetImageConfigInformation (IMAGEHLP.34)
638 */
639BOOL WINAPI SetImageConfigInformation(
640 PLOADED_IMAGE LoadedImage,
641 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation)
642{
643#ifdef DEBUG
644 dprintf(("IMAGEHLP: SetImageConfigInformation not implemented\n"));
645#endif
646 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
647 return FALSE;
648}
649
650/***********************************************************************
651 * SplitSymbols (IMAGEHLP.35)
652 */
653BOOL WINAPI SplitSymbols(
654 LPSTR ImageName, LPSTR SymbolsPath,
655 LPSTR SymbolFilePath, DWORD Flags)
656{
657#ifdef DEBUG
658 dprintf(("IMAGEHLP: SplitSymbols not implemented\n"));
659#endif
660 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
661 return FALSE;
662}
663
664/***********************************************************************
665 * StackWalk (IMAGEHLP.36)
666 */
667BOOL WINAPI StackWalk(
668 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
669 PSTACKFRAME StackFrame, PVOID ContextRecord,
670 PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
671 PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
672 PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
673 PTRANSLATE_ADDRESS_ROUTINE TranslateAddress)
674{
675#ifdef DEBUG
676 dprintf(("IMAGEHLP: StackWalk not implemented\n"));
677#endif
678 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
679 return FALSE;
680}
681
682/***********************************************************************
683 * SymCleanup (IMAGEHLP.37)
684 */
685BOOL WINAPI SymCleanup(HANDLE hProcess)
686{
687#ifdef DEBUG
688 dprintf(("IMAGEHLP: SymCleanup not implemented\n"));
689#endif
690 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
691 return FALSE;
692}
693
694/***********************************************************************
695 * SymEnumerateModules (IMAGEHLP.38)
696 */
697
698BOOL WINAPI SymEnumerateModules(
699 HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
700 PVOID UserContext)
701{
702#ifdef DEBUG
703 dprintf(("IMAGEHLP: SymEnumerateModules not implemented\n"));
704#endif
705 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
706 return FALSE;
707}
708
709/***********************************************************************
710 * SymEnumerateSymbols (IMAGEHLP.39)
711 */
712BOOL WINAPI SymEnumerateSymbols(
713 HANDLE hProcess, DWORD BaseOfDll,
714 PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext)
715{
716#ifdef DEBUG
717 dprintf(("IMAGEHLP: SymEnumerateSymbols not implemented\n"));
718#endif
719 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
720 return FALSE;
721}
722
723/***********************************************************************
724 * SymFunctionTableAccess (IMAGEHLP.40)
725 */
726PVOID WINAPI SymFunctionTableAccess(HANDLE hProcess, DWORD AddrBase)
727{
728#ifdef DEBUG
729 dprintf(("IMAGEHLP: SymFunctionTableAccess not implemented\n"));
730#endif
731 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
732 return FALSE;
733}
734
735/***********************************************************************
736 * SymGetModuleBase (IMAGEHLP.41)
737 */
738DWORD WINAPI SymGetModuleBase(HANDLE hProcess, DWORD dwAddr)
739{
740#ifdef DEBUG
741 dprintf(("IMAGEHLP: SymGetModuleBase not implemented\n"));
742#endif
743 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
744 return 0;
745}
746
747/***********************************************************************
748 * SymGetModuleInfo (IMAGEHLP.42)
749 */
750BOOL WINAPI SymGetModuleInfo(
751 HANDLE hProcess, DWORD dwAddr,
752 PIMAGEHLP_MODULE ModuleInfo)
753{
754#ifdef DEBUG
755 dprintf(("IMAGEHLP: SymGetModuleInfo not implemented\n"));
756#endif
757 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
758 return FALSE;
759}
760
761/***********************************************************************
762 * SymGetOptions (IMAGEHLP.43)
763 */
764DWORD WINAPI SymGetOptions()
765{
766#ifdef DEBUG
767 dprintf(("IMAGEHLP: SymGetOptions not implemented\n"));
768#endif
769 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
770 return 0;
771}
772
773/***********************************************************************
774 * SymGetSearchPath (IMAGEHLP.44)
775 */
776BOOL WINAPI SymGetSearchPath(
777 HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength)
778{
779#ifdef DEBUG
780 dprintf(("IMAGEHLP: SymGetSearchPath not implemented\n"));
781#endif
782 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
783 return FALSE;
784}
785
786/***********************************************************************
787 * SymGetSymFromAddr (IMAGEHLP.45)
788 */
789BOOL WINAPI SymGetSymFromAddr(
790 HANDLE hProcess, DWORD dwAddr,
791 PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol)
792{
793#ifdef DEBUG
794 dprintf(("IMAGEHLP: SymGetSymFromAddr not implemented\n"));
795#endif
796 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
797 return FALSE;
798}
799
800/***********************************************************************
801 * SymGetSymFromName (IMAGEHLP.46)
802 */
803BOOL WINAPI SymGetSymFromName(
804 HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol)
805{
806#ifdef DEBUG
807 dprintf(("IMAGEHLP: SymGetSymFromName not implemented\n"));
808#endif
809 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
810 return FALSE;
811}
812
813/***********************************************************************
814 * SymGetSymNext (IMAGEHLP.47)
815 */
816BOOL WINAPI SymGetSymNext(
817 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
818{
819#ifdef DEBUG
820 dprintf(("IMAGEHLP: SymGetSymNext not implemented\n"));
821#endif
822 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
823 return FALSE;
824}
825
826/***********************************************************************
827 * SymGetSymPrev (IMAGEHLP.48)
828 */
829
830BOOL WINAPI SymGetSymPrev(
831 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
832{
833#ifdef DEBUG
834 dprintf(("IMAGEHLP: SymGetSymPrev not implemented\n"));
835#endif
836 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
837 return FALSE;
838}
839
840/***********************************************************************
841 * SymInitialize (IMAGEHLP.49)
842 */
843BOOL WINAPI SymInitialize(
844 HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess)
845{
846#ifdef DEBUG
847 dprintf(("IMAGEHLP: SymInitialize not implemented\n"));
848#endif
849 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
850 return FALSE;
851}
852
853/***********************************************************************
854 * SymLoadModule (IMAGEHLP.50)
855 */
856
857BOOL WINAPI SymLoadModule(
858 HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
859 DWORD BaseOfDll, DWORD SizeOfDll)
860{
861#ifdef DEBUG
862 dprintf(("IMAGEHLP: SymLoadModule not implemented\n"));
863#endif
864 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
865 return FALSE;
866}
867
868/***********************************************************************
869 * SymRegisterCallback (IMAGEHLP.51)
870 */
871BOOL WINAPI SymRegisterCallback(
872 HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
873 PVOID UserContext)
874{
875#ifdef DEBUG
876 dprintf(("IMAGEHLP: SymRegisterCallback not implemented\n"));
877#endif
878 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
879 return FALSE;
880}
881
882/***********************************************************************
883 * SymSetOptions (IMAGEHLP.52)
884 */
885DWORD WINAPI SymSetOptions(DWORD SymOptions)
886{
887#ifdef DEBUG
888 dprintf(("IMAGEHLP: SymSetOptions not implemented\n"));
889#endif
890 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
891 return 0;
892}
893
894/***********************************************************************
895 * SymSetSearchPath (IMAGEHLP.53)
896 */
897BOOL WINAPI SymSetSearchPath(HANDLE hProcess, LPSTR szSearchPath)
898{
899#ifdef DEBUG
900 dprintf(("IMAGEHLP: SymSetSearchPath not implemented\n"));
901#endif
902 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
903 return FALSE;
904}
905
906/***********************************************************************
907 * SymUnDName (IMAGEHLP.54)
908 */
909BOOL WINAPI SymUnDName(
910 PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength)
911{
912#ifdef DEBUG
913 dprintf(("IMAGEHLP: SymUnDName not implemented\n"));
914#endif
915 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
916 return FALSE;
917}
918
919/***********************************************************************
920 * SymUnloadModule (IMAGEHLP.55)
921 */
922BOOL WINAPI SymUnloadModule(
923 HANDLE hProcess, DWORD BaseOfDll)
924{
925#ifdef DEBUG
926 dprintf(("IMAGEHLP: SymUnloadModule not implemented\n"));
927#endif
928 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
929 return FALSE;
930}
931
932/***********************************************************************
933 * TouchFileTimes (IMAGEHLP.56)
934 */
935BOOL WINAPI TouchFileTimes(
936 HANDLE FileHandle, LPSYSTEMTIME lpSystemTime)
937{
938#ifdef DEBUG
939 dprintf(("IMAGEHLP: TouchFileTimes not implemented\n"));
940#endif
941 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
942 return FALSE;
943}
944
945/***********************************************************************
946 * UnDecorateSymbolName (IMAGEHLP.57)
947 */
948DWORD WINAPI UnDecorateSymbolName(
949 LPCSTR DecoratedName, LPSTR UnDecoratedName,
950 DWORD UndecoratedLength, DWORD Flags)
951{
952#ifdef DEBUG
953 dprintf(("IMAGEHLP: UnDecorateSymbolName not implemented\n"));
954#endif
955 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
956 return 0;
957}
958
959/***********************************************************************
960 * UnMapAndLoad (IMAGEHLP.58)
961 */
962BOOL WINAPI UnMapAndLoad(PLOADED_IMAGE LoadedImage)
963{
964#ifdef DEBUG
965 dprintf(("IMAGEHLP: UnMapAndLoad not implemented\n"));
966#endif
967 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
968 return FALSE;
969}
970
971/***********************************************************************
972 * UnmapDebugInformation (IMAGEHLP.59)
973 */
974
975BOOL WINAPI UnmapDebugInformation(
976 PIMAGE_DEBUG_INFORMATION DebugInfo)
977{
978#ifdef DEBUG
979 dprintf(("IMAGEHLP: UnmapDebugInformation not implemented\n"));
980#endif
981 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
982 return FALSE;
983}
984
985/***********************************************************************
986 * UpdateDebugInfoFile (IMAGEHLP.60)
987 */
988BOOL WINAPI UpdateDebugInfoFile(
989 LPSTR ImageFileName, LPSTR SymbolPath,
990 LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders)
991{
992#ifdef DEBUG
993 dprintf(("IMAGEHLP: UpdateDebugInfoFile not implemented\n"));
994#endif
995 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
996 return FALSE;
997}
998
999/***********************************************************************
1000 * UpdateDebugInfoFileEx (IMAGEHLP.?)
1001 * FIXME
1002 * Function has no ordinal.
1003 */
1004BOOL WINAPI UpdateDebugInfoFileEx(
1005 LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
1006 PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum)
1007{
1008#ifdef DEBUG
1009 dprintf(("IMAGEHLP: UpdateDebugInfoFileEx not implemented\n"));
1010#endif
1011 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
1012 return FALSE;
1013}
1014
Note: See TracBrowser for help on using the repository browser.