다음을 통해 공유


RtlGetUnloadEventTraceEx 함수

현재 프로세스에 대해 동적으로 언로드된 모듈 목록의 크기와 위치를 검색합니다.

구문

VOID WINAPI RtlGetUnloadEventTraceEx(
  _Out_ PULONG *ElementSize,
  _Out_ PULONG *ElementCount,
  _Out_ PVOID  *EventTrace
);

매개 변수

ElementSize [out]

목록에 있는 요소의 크기를 포함하는 변수에 대한 포인터입니다.

ElementCount [out]

목록의 요소 수를 포함하는 변수에 대한 포인터입니다.

EventTrace [out]

RTL_UNLOAD_EVENT_TRACE 구조체의 배열에 대한 포인터입니다. 자세한 내용은 설명 부분을 참조하세요.

반환 값

이 함수는 값을 반환하지 않습니다.

설명

로더는 Ntdll.dll 모든 프로세스의 동일한 기본 주소에 로드된다는 사실을 활용하여 프로세스 간에 읽을 수 있는 위치에 언로드된 이벤트 정보를 저장합니다. 디버거가 언로드된 모듈 정보를 쿼리해야 하는 경우 이 함수를 호출하여 변수가 있는 주소를 확인한 다음, 해당 주소의 대상 프로세스에서 가상 메모리를 쿼리하여 실제 값을 읽습니다.

목록의 각 요소는 다음과 같이 정의됩니다.

typedef struct _RTL_UNLOAD_EVENT_TRACE {
    PVOID BaseAddress;   // Base address of dll
    SIZE_T SizeOfImage;  // Size of image
    ULONG Sequence;      // Sequence number for this event
    ULONG TimeDateStamp; // Time and date of image
    ULONG CheckSum;      // Image checksum
    WCHAR ImageName[32]; // Image name
} RTL_UNLOAD_EVENT_TRACE, *PRTL_UNLOAD_EVENT_TRACE;

이 함수에는 연결된 헤더 파일이 없습니다. 연결된 가져오기 라이브러리인 Ntdll.lib는 WDK(Windows 드라이버 키트)에서 사용할 수 있습니다. LoadLibraryGetProcAddress 함수를 사용하여 이 함수를 호출할 수도 있습니다.

요구 사항

요구 사항
DLL
Ntdll.dll