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

Last change on this file since 2013 was 1710, checked in by sandervl, 26 years ago

DIBSection changes, EB's file io additions, Jens Weissner's changes to several dlls

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