Condividi tramite


Funzione SymEnumSymbolsW (dbghelp.h)

Enumera tutti i simboli in un processo.

Sintassi

BOOL IMAGEAPI SymEnumSymbolsW(
  [in]           HANDLE                          hProcess,
  [in]           ULONG64                         BaseOfDll,
  [in, optional] PCWSTR                          Mask,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
  [in, optional] PVOID                           UserContext
);

Parametri

[in] hProcess

Handle per un processo. Questo handle deve essere stato passato in precedenza alla funzione SymInitialize.

[in] BaseOfDll

Indirizzo di base del modulo. Se questo valore è zero e Mask contiene un punto esclamativo (!), la funzione cerca tra i moduli. Se questo valore è zero e Mask non contiene un punto esclamativo, la funzione utilizza l'ambito stabilito dalla funzione SymSetContext.

[in, optional] Mask

Stringa con caratteri jolly che indica i nomi dei simboli da enumerare. Il testo può facoltativamente contenere caratteri jolly, "*" e "?".

Per specificare un modulo o un set specifico di moduli, iniziare il testo con una stringa con caratteri jolly che specifica il modulo, seguito da un punto esclamativo. Quando si specifica un modulo, BaseOfDll viene ignorato.

Valore Significato
foo
Se baseOfDll non è zero, SymEnumSymbols cercherà un simbolo globale denominato "foo".

Se baseOfDll è zero, SymEnumSymbols cercherà un simbolo locale denominato "foo" nell'ambito stabilito dalla chiamata più recente alla funzione SymSetContext.

foo?
Se baseOfDll non è zero, SymEnumSymbols cercherà un simbolo globale che inizia con "foo" e contiene successivamente un carattere aggiuntivo, ad esempio "fool" e "foot".

Se baseOfDll è zero, SymEnumSymbols cercherà un simbolo che inizia con "foo" e contiene successivamente un carattere aggiuntivo, ad esempio "fool" e "foot". La ricerca si trova nell'ambito stabilito dalla chiamata più recente alla funzione SymSetContext.

foo*!bar
SymEnumSymbols cercherà in ogni modulo caricato che inizia con il testo "foo" per un simbolo denominato "bar". Potrebbe trovare corrispondenze come queste, "foot!bar", "footlocker!bar" e "fool!bar".
*!*
SymEnumSymbols enumererà ogni simbolo in ogni modulo caricato.

[in] EnumSymbolsCallback

Una SymEnumSymbolsProc funzione di callback che riceve le informazioni sul simbolo.

[in, optional] UserContext

Valore definito dall'utente passato alla funzione di callback o NULL. Questo parametro viene in genere usato da un'applicazione per passare un puntatore a una struttura di dati che fornisce il contesto per la funzione di callback.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione non riesce, il valore restituito viene FALSE. Per recuperare informazioni sull'errore estese, chiamare GetLastError.

Osservazioni

Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Pertanto, le chiamate da più thread a questa funzione genereranno probabilmente un comportamento imprevisto o un danneggiamento della memoria. Per evitare questo problema, è necessario sincronizzare tutte le chiamate simultanee da più thread a questa funzione.

Per chiamare la versione Unicode di questa funzione, definire DBGHELP_TRANSLATE_TCHAR.

Esempi

Per un esempio, vedere 'enumerazione dei simboli.

Nota

L'intestazione dbghelp.h definisce SymEnumSymbols come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
piattaforma di destinazione Finestre
intestazione dbghelp.h
libreria Dbghelp.lib
dll Dbghelp.dll
Ridistribuibile DbgHelp.dll 5.1 o versione successiva

Vedere anche

DbgHelp Functions

SymEnumSymbolsProc