Funzione SymLoadModuleEx (dbghelp.h)

Carica la tabella dei simboli per il modulo specificato.

Sintassi

DWORD64 IMAGEAPI SymLoadModuleEx(
  [in] HANDLE        hProcess,
  [in] HANDLE        hFile,
  [in] PCSTR         ImageName,
  [in] PCSTR         ModuleName,
  [in] DWORD64       BaseOfDll,
  [in] DWORD         DllSize,
  [in] PMODLOAD_DATA Data,
  [in] DWORD         Flags
);

Parametri

[in] hProcess

Handle per il processo passato originariamente alla funzione SymInitialize .

[in] hFile

Handle per il file per l'immagine eseguibile. Questo argomento viene usato principalmente dai debugger, in cui il debugger passa l'handle di file ottenuto da un evento di debug. Un valore NULL indica che hFile non viene usato.

[in] ImageName

Nome dell'immagine eseguibile. Questo nome può contenere un percorso parziale, un percorso completo o nessun percorso. Se il file non può trovarsi in base al nome specificato, viene utilizzato il percorso di ricerca dei simboli.

[in] ModuleName

Nome del collegamento per il modulo. Se il valore del puntatore è NULL, la libreria crea un nome usando il nome di base del file di simboli.

[in] BaseOfDll

Indirizzo di caricamento del modulo. Se il valore è zero, la libreria ottiene l'indirizzo di caricamento dal file di simboli. L'indirizzo di caricamento contenuto nel file di simboli non è necessariamente l'indirizzo di caricamento effettivo. I debugger e altre applicazioni con un indirizzo di carico effettivo devono usare l'indirizzo di caricamento reale quando si chiama questa funzione.

Se l'immagine è un file con estensione pdb, questo parametro non può essere zero.

[in] DllSize

Dimensioni del modulo, in byte. Se il valore è zero, la libreria ottiene le dimensioni dal file di simboli. Le dimensioni contenute nel file di simboli non sono necessariamente le dimensioni effettive. I debugger e altre applicazioni con dimensioni effettive devono usare le dimensioni reali quando si chiama questa funzione.

Se l'immagine è un file con estensione pdb, questo parametro non può essere zero.

[in] Data

Puntatore a una struttura MODLOAD_DATA che rappresenta intestazioni diverse dall'intestazione PE standard. Questo parametro è facoltativo e può essere NULL.

[in] Flags

Questo parametro può essere zero o uno o più dei valori seguenti. Se questo parametro è zero, la funzione carica i moduli e i simboli per il modulo.

Valore Significato
SLMFLAG_NO_SYMBOLS
0x4
Carica il modulo ma non i simboli per il modulo.
SLMFLAG_VIRTUAL
0x1
Crea un modulo virtuale denominato ModuleName nell'indirizzo specificato in BaseOfDll. Per aggiungere simboli a questo modulo, chiamare la funzione SymAddSymbol .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è l'indirizzo di base del modulo caricato.

Se la funzione ha esito negativo, il valore restituito è zero. Per recuperare informazioni sull'errore estese, chiamare GetLastError.

Se il modulo è già caricato, il valore restituito è zero e GetLastError restituisce ERROR_SUCCESS.

Commenti

Il gestore dei simboli crea una voce per il modulo e, se l'opzione di caricamento dei simboli posticipati è disattivata, viene effettuato un tentativo di caricare i simboli. Se il caricamento posticipato dei simboli è abilitato, il modulo viene contrassegnato come posticipato e i simboli non vengono caricati fino a quando non viene eseguito un riferimento a un simbolo nel modulo. È pertanto consigliabile chiamare sempre la funzione SymGetModuleInfo64 dopo aver chiamato SymLoadModuleEx.

Per scaricare la tabella dei simboli, usare la funzione SymUnloadModule64 .

Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Di conseguenza, le chiamate da più thread a questa funzione genereranno 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.

Esempio

Per un esempio, vedere Caricamento di un modulo symbol.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione dbghelp.h
Libreria Dbghelp.lib
DLL Dbghelp.dll
Componente ridistribuibile DbgHelp.dll 6.0 o versione successiva

Vedi anche

Funzioni DbgHelp

MODLOAD_DATA

SymAddSymbol

SymUnloadModule64