PIMAGEHLP_STATUS_ROUTINE 콜백 함수(imagehlp.h)
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
바인딩 작업의 현재 상태. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
[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 |