SymEnumerateModules 函式 (dbghelp.h)

列舉 SymLoadModule64SymLoadModuleEx 函式針對進程載入的所有模組。

語法

BOOL IMAGEAPI SymEnumerateModules(
  [in]           HANDLE                    hProcess,
  [in]           PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
  [in, optional] PVOID                     UserContext
);

參數

[in] hProcess

原本傳遞至 SymInitialize 函式之進程的句柄。

[in] EnumModulesCallback

列舉回呼函式。 每個模組會呼叫此函式一次。 如需詳細資訊,請參閱 SymEnumerateModulesProc64

[in, optional] UserContext

用戶定義的值或 NULL。 此值只會傳遞至回調函式。 一般而言,應用程式會使用此參數來傳遞數據結構的指標,讓回呼函式建立某種類型的內容。

傳回值

如果函式成功,則傳回值為 TRUE

如果函式失敗,傳回值為 FALSE。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError

備註

SymEnumerateModules64 函式會列舉 SymLoadModule64 為進程載入的所有模組,即使符號載入延遲也一樣。 列舉回呼函式會針對每個模組呼叫一次,並傳遞模組資訊。

所有 DbgHelp 函式,例如此函式都是單個線程。 因此,從一個以上的線程呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從一個以上的線程同步至此函式。

若要呼叫此函式的 Unicode 版本,請定義DBGHELP_TRANSLATE_TCHAR。 SymEnumerateModulesW64 在 Dbghelp.h 中定義如下。


BOOL
IMAGEAPI
SymEnumerateModulesW64(
    __in HANDLE hProcess,
    __in PSYM_ENUMMODULES_CALLBACKW64 EnumModulesCallback,
    __in_opt PVOID UserContext
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymEnumerateModules64  SymEnumerateModulesW64
#endif

此函式會取代 SymEnumerateModules 函 式。 如需詳細資訊,請參閱 更新的平台支援SymEnumerateModules 在 Dbghelp.h 中定義如下。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymEnumerateModules SymEnumerateModules64
#else
BOOL
IMAGEAPI
SymEnumerateModules(
    __in HANDLE hProcess,
    __in PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
    __in_opt PVOID UserContext
    );
#endif

範例

如需範例,請參閱 列舉符號模組

規格需求

需求
目標平台 Windows
標頭 dbghelp.h
程式庫 Dbghelp.lib
Dll Dbghelp.dll
可轉散發套件 DbgHelp.dll 5.1 或更新版本

另請參閱

DbgHelp 函式

SymEnumerateModulesProc64

SymInitialize

SymLoadModule64