PsLookupThreadByThreadId 함수(ntifs.h)

PsLookupThreadByThreadId 루틴은 스레드의 스레드 ID를 허용하고 스레드의 ETHREAD 구조에 대한 참조된 포인터를 반환합니다.

구문

NTSTATUS PsLookupThreadByThreadId(
  [in]  HANDLE   ThreadId,
  [out] PETHREAD *Thread
);

매개 변수

[in] ThreadId

스레드의 스레드 ID를 지정합니다.

[out] Thread

ThreadId에서 지정한 스레드의 ETHREAD 구조에 대한 참조된 포인터를 반환합니다.

반환 값

PsLookupThreadByThreadId 는 성공 시 STATUS_SUCCESS 반환하거나 다음과 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
스레드 ID를 찾을 수 없습니다.

설명

이 루틴은 Windows 2000 이상 버전에서 사용할 수 있습니다.

PsLookupThreadByThreadId에 대한 호출이 성공하면 PsLookupThreadByThreadIdThread 매개 변수에 반환된 개체의 참조 수를 늘입니다. 따라서 드라이버가 Thread 매개 변수를 사용하여 완료되면 드라이버는 ObDereferenceObject를 호출하여 PsLookupThreadByThreadId 루틴에서 받은 Thread 매개 변수를 역참조해야 합니다.

ETHREAD 구조는 운영 체제에서 내부적으로 사용하는 불투명 데이터 구조입니다. 이 구조체는 다른 루틴에 전달되어 이 구조체의 특정 정보에 액세스할 수 있습니다.

파일 시스템 필터 드라이버는 PsLookupThreadByThreadId 를 호출하여 스레드 ID를 ETHREAD 구조체로 변환하여 활성 스레드를 열거할 수 있습니다. 스레드 ID는 스레드 만들기 루틴에서 사용할 수 있습니다. 파일 시스템 필터 드라이버는 PsSetCreateThreadNotifyRoutine을 사용하여 스레드 알림 콜백 루틴을 설정할 수 있습니다. 알림 콜백 루틴에서 파일 시스템 필터 드라이버는 전달된 ThreadId 매개 변수를 사용하고 PsLookupThreadByThreadId 를 호출하여 ETHREAD 구조를 찾을 수 있습니다.

PsLookupThreadByThreadId 루틴에는 페이지 가능한 코드가 포함되어 있습니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupProcessByProcessId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine