SymFindFileInPath Function

Debug Help Library

SymFindFileInPath Function

Locates a symbol file or executable image.

BOOL WINAPI SymFindFileInPath(
  __in          HANDLE hProcess,
  __in          PCTSTR SearchPath,
  __in          PCTSTR FileName,
  __in          PVOID id,
  __in          DWORD two,
  __in          DWORD three,
  __in          DWORD flags,
  __out         PTSTR FilePath,
  __in          PFINDFILEINPATHCALLBACK callback,
  __in          PVOID context
);

Parameters

hProcess

A handle to the process that was originally passed to the SymInitialize function.

SearchPath

The search path. This can be multiple paths separated by semicolons. It can include both directories and symbol servers. If this parameter is NULL, the function uses the search path set using the SymSetSearchPath or SymInitialize function.

FileName

The name of the file. You can specify a path; however, only the file name is used.

id

The first of three identifying parameters (see Remarks).

two

The second of three identifying parameters (see Remarks).

three

The third of three identifying parameters (see Remarks).

flags

The format of the id parameter. This parameter can be one of the following values.

Value Meaning

SSRVOPT_DWORD
0x0002

The id parameter is a DWORD.

SSRVOPT_DWORDPTR
0x0004

The id parameter is a pointer to a DWORD.

SSRVOPT_GUIDPTR
0x0008

The id parameter is a pointer to a GUID.

FilePath

A pointer to a buffer that receives the fully qualified path to the symbol file. This buffer must be at least MAX_PATH characters.

callback

A SymFindFileInPathProc callback function.

context

A user-defined value or NULL. This value is simply passed to the callback function. This parameter is typically used by an application to pass a pointer to a data structure that provides some context for the callback function.

Return Value

If the server locates a valid symbol file, it returns TRUE; otherwise, it returns FALSE and GetLastError returns a value that indicates why the symbol file was not returned.

Remarks

The identifying parameters are filled in as follows:

  • If DbgHelp is looking for a .pdb file, the id parameter specifies the PDB signature as found in the codeview debug directory of the original image. Parameter two specifies the PDB age. Parameter three is unused and set to zero.
  • If DbgHelp is looking for any other type of image, such as an executable file or .dbg file, the id parameter specifies the TimeDateStamp of the original image as found in its PE header. Parameter two specifies the SizeOfImage field, also extracted from the PE header. Parameter three is unused and set to zero.

When searching a directory, this function does not verify that the symbol identifiers match by default. To ensure the matching symbol files are located, call the SymSetOptions function with SYMOPT_EXACT_SYMBOLS.

All DbgHelp functions, such as this one, are single threaded. Therefore, calls from more than one thread to this function will likely result in unexpected behavior or memory corruption. To avoid this, you must synchronize all concurrent calls from more than one thread to this function.

To call the Unicode version of this function, define DBGHELP_TRANSLATE_TCHAR.

Requirements

Redistributable

Requires DbgHelp.dll 5.1 or later.

Header

Declared in Dbghelp.h.

Library

Use Dbghelp.lib.

DLL

Requires Dbghelp.dll.

Unicode

Implemented as SymFindFileInPathW (Unicode) and SymFindFileInPath (ANSI).

See Also

DbgHelp Functions
SymFindFileInPathProc
SymInitialize
SymSetSearchPath


Send comments about this topic to Microsoft

Build date: 9/25/2007

© 2007 Microsoft Corporation. All rights reserved.