SymFindFileInPath-Funktion (dbghelp.h)

Sucht eine Symboldatei oder ein ausführbares Bild.

Syntax

BOOL IMAGEAPI SymFindFileInPath(
  [in]           HANDLE                  hprocess,
  [in, optional] PCSTR                   SearchPath,
  [in]           PCSTR                   FileName,
  [in, optional] PVOID                   id,
  [in]           DWORD                   two,
  [in]           DWORD                   three,
  [in]           DWORD                   flags,
  [out]          PSTR                    FoundFile,
  [in, optional] PFINDFILEINPATHCALLBACK callback,
  [in, optional] PVOID                   context
);

Parameter

[in] hprocess

Ein Handle für den Prozess, der ursprünglich an die SymInitialize-Funktion übergeben wurde.

[in, optional] SearchPath

Der Suchpfad. Dies kann mehrere Pfade sein, die durch Semikolons getrennt werden. Sie kann sowohl Verzeichnisse als auch Symbolserver enthalten. Wenn dieser Parameter NULL ist, verwendet die Funktion den Suchpfad, der mithilfe der Funktion SymSetSearchPath oder SymInitialize festgelegt wurde.

[in] FileName

Der Name der Datei. Sie können einen Pfad angeben; Allerdings wird nur der Dateiname verwendet.

[in, optional] id

Die ersten von drei identifizierenden Parametern (siehe Hinweise).

[in] two

Die zweite von drei identifizierenden Parametern (siehe Hinweise).

[in] three

Das dritte von drei identifizierenden Parametern (siehe Hinweise).

[in] flags

Das Format des ID-Parameters . Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
SSRVOPT_DWORD
0x0002
Der ID-Parameter ist ein DWORD.
SSRVOPT_DWORDPTR
0x0004
Der ID-Parameter ist ein Zeiger auf ein DWORD.
SSRVOPT_GUIDPTR
0x0008
Der ID-Parameter ist ein Zeiger auf eine GUID.

[out] FoundFile

Ein Zeiger auf einen Puffer, der den vollqualifizierten Pfad zur Symboldatei empfängt. Dieser Puffer muss mindestens MAX_PATH+1 Zeichen sein.

[in, optional] callback

Eine SymFindFileInPathProc-Rückruffunktion .

[in, optional] context

Ein benutzerdefinierter Wert oder NULL. Dieser Wert wird einfach an die Rückruffunktion übergeben. Dieser Parameter wird in der Regel von einer Anwendung verwendet, um einen Zeiger an eine Datenstruktur zu übergeben, die einen Kontext für die Rückruffunktion bereitstellt.

Rückgabewert

Wenn der Server eine gültige Symboldatei findet, wird WAHR zurückgegeben. andernfalls wird FALSE zurückgegeben, und GetLastError gibt einen Wert zurück, der angibt, warum die Symboldatei nicht zurückgegeben wurde.

Bemerkungen

Die identifizierenden Parameter werden wie folgt ausgefüllt:

  • Wenn DbgHelp nach einer PDB-Datei sucht, gibt der ID-Parameter die PDB-Signatur an, wie im Codeview-Debugverzeichnis des ursprünglichen Bilds zu finden. Parameter 2 gibt das PDB-Alter an. Parameter 3 ist nicht verwendet und auf Null festgelegt.
  • Wenn DbgHelp nach einem anderen Bildtyp sucht, z. B. eine ausführbare Datei oder DBG-Datei, gibt der ID-Parameter den TimeDateStamp des ursprünglichen Bilds an, wie in seinem PE-Header zu finden. Parameter 2 gibt das SizeOfImage-Feld an, das auch aus dem PE-Header extrahiert wird. Parameter 3 ist nicht verwendet und auf Null festgelegt.
Alle diese Werte können durch Aufrufen von SymSrvGetFileIndexInfo abgerufen werden.

Beim Durchsuchen eines Verzeichnisses überprüft diese Funktion nicht, ob die Symbolbezeichner standardmäßig übereinstimmen. Rufen Sie die SymSetOptions-Funktion mit SYMOPT_EXACT_SYMBOLS auf, um sicherzustellen, dass sich die übereinstimmenden Symboldateien befinden.

Alle DbgHelp-Funktionen, z. B. diese, sind single threaded. Daher führen Aufrufe von mehr als einem Thread zu dieser Funktion wahrscheinlich zu unerwartetem Verhalten oder Speicherbeschädigung. Um dies zu vermeiden, müssen Sie alle gleichzeitigen Aufrufe von mehr als einem Thread mit dieser Funktion synchronisieren.

Um die Unicode-Version dieser Funktion aufzurufen, definieren Sie DBGHELP_TRANSLATE_TCHAR.

Requirements

Anforderung Wert
Zielplattform Windows
Header dbghelp.h
Bibliothek DbgHelp.lib
DLL DbgHelp.dll
Weiterverteilbar DbgHelp.dll 5.1 oder höher

Siehe auch

DbgHelp-Funktionen

SymFindFileInPathProc

SymInitialize

SymSetSearchPath

SymSrvGetFileIndexInfo