PsLookupProcessByProcessId 함수(ntifs.h)

PsLookupProcessByProcessId 루틴은 프로세스의 프로세스 ID를 허용하고 프로세스의 EPROCESS 구조에 대한 참조된 포인터를 반환합니다.

구문

NTSTATUS PsLookupProcessByProcessId(
  [in]  HANDLE    ProcessId,
  [out] PEPROCESS *Process
);

매개 변수

[in] ProcessId

프로세스의 프로세스 ID를 지정합니다.

[out] Process

ProcessId에서 지정한 프로세스의 EPROCESS 구조에 대한 참조된 포인터를 반환합니다.

반환 값

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

반환 코드 설명
STATUS_INVALID_PARAMETER
Windows XP 및 이전 버전의 Windows에서 프로세스 ID를 찾을 수 없음을 지정합니다.
STATUS_INVALID_CID

Windows Vista 이상 버전의 Windows에서 지정된 클라이언트 ID가 유효하지 않음을 지정합니다.

설명

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

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

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

파일 시스템 필터 드라이버는 활성 프로세스를 열거한 다음 PsLookupProcessByProcessId 를 호출하여 프로세스 ID를 EPROCESS 구조로 변환할 수 있습니다. 프로세스 ID는 프로세스 만들기 루틴에서 사용할 수 있습니다. 파일 시스템 필터 드라이버는 PsSetCreateProcessNotifyRoutine을 사용하여 프로세스 알림 콜백 루틴을 설정할 수 있습니다. 알림 콜백 루틴에서 파일 시스템 필터 드라이버는 전달된 ProcessId 매개 변수를 사용하고 PsLookupProcessByProcessID 를 호출하여 EPROCESS 구조를 찾을 수 있습니다. PsSetCreateThreadNotifyRoutine을 사용하여 스레드 ID를 만들 때 프로세스 ID를 반환하는 알림 루틴을 설정할 수도 있습니다.

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

요구 사항

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

추가 정보

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupThreadByThreadId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetLoadImageNotifyRoutine