共用方式為


imagehlp.h) PIMAGEHLP_STATUS_ROUTINE 回呼函式 (

搭配 BindImageEx 函式使用的應用程式定義回呼函式。 在映像系結的程式期間會呼叫狀態例程。

PIMAGEHLP_STATUS_ROUTINE類型會定義這個回呼函式的指標。 StatusRoutine 是應用程式定義函數名稱的佔位元。

語法

PIMAGEHLP_STATUS_ROUTINE PimagehlpStatusRoutine;

BOOL PimagehlpStatusRoutine(
  [in] IMAGEHLP_STATUS_REASON Reason,
  [in] PCSTR ImageName,
  [in] PCSTR DllName,
  [in] ULONG_PTR Va,
  [in] ULONG_PTR Parameter
)
{...}

參數

[in] Reason

系結作業的目前狀態。 此參數可以是下列其中一個值。

意義
BindOutOfMemory
0
記憶體不足。 Parameter 值是配置嘗試中的位元元數目。
BindRvaToVaFailed
1
相對虛擬位址對映像無效。 不會使用 Parameter 值。
BindNoRoomInImage
2
新格式匯入數據表的影像中沒有空間。 不會使用 Parameter 值。
BindImportModuleFailed
3
模組匯入失敗。 不會使用 Parameter 值。
BindImportProcedureFailed
4
程序匯入失敗。 Parameter 值是函式的名稱。
BindImportModule
5
模組匯入正在啟動。 不會使用 Parameter 值。
BindImportProcedure
6
程序匯入正在啟動。 Parameter 值是函式的名稱。
BindForwarder
7
Parameter 值是轉送的函式名稱。
BindForwarderNOT
8
Parameter 值是未轉送的函式名稱。
BindImageModified
9
已修改影像。 不會使用 Parameter 值。
BindExpandFileHeaders
10
展開的檔案標頭。 Parameter 值是位元組數目
BindImageComplete
11
系結已完成。 如需 參數 值的詳細資訊,請參閱下列一節。
BindMismatchedSymbols
12
總和檢查碼不相符。 Parameter 值是符號檔的名稱。
BindSymbolsNotUpdated
13
符號檔未更新。 Parameter 值是未更新的符號檔名稱。

[in] ImageName

要系結的檔名。 此值可以是檔名、部分路徑或完整路徑。

[in] DllName

DLL 的名稱。

[in] Va

計算的虛擬位址。

[in] Parameter

任何其他狀態資訊。 此值取決於 Reason 參數的值。 如需詳細資訊,請參閱下列一節中的代碼段。

傳回值

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

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

備註

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

下列代碼段描述當狀態為 BindImageComplete 時,如何使用 Va 值。

case BindImageComplete:
    if (fVerbose) {
        fprintf(stderr, "BIND: Details of binding %s\n", ImageName );
        NewImports = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)Va;
        NewImport = NewImports;
        while (NewImport->OffsetModuleName) {
            fprintf( stderr, "    Import from %s [%x]",
                     (LPSTR)NewImports + NewImport->OffsetModuleName,
                     NewImport->TimeDateStamp
                   );
            if (NewImport->NumberOfModuleForwarderRefs != 0) {
                fprintf( stderr, " with %u forwarders", NewImport-> 
                         NumberOfModuleForwarderRefs );
            }
            fprintf( stderr, "\n" );
            NewForwarder = (PIMAGE_BOUND_FORWARDER_REF)(NewImport+1);
            for (i=0; i<NewImport->NumberOfModuleForwarderRefs; i++) 
            {
                fprintf( stderr, "        Forward to %s [%x]\n",
                   (LPSTR)NewImports + NewForwarder->OffsetModuleName,
                   NewForwarder->TimeDateStamp);
                NewForwarder += 1;
            }
            NewImport = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)NewForwarder;
        }
    }
    break;

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 imagehlp.h

另請參閱

BindImageEx

ImageHlp 函式