psLookupProcessByProcessId 函式 (ntifs.h)

PsLookupProcessByProcessId 例程會接受進程的進程標識碼,並傳回進程的 EPROCESS 結構的參考指標。

語法

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

參數

[in] ProcessId

指定進程的進程識別碼。

[out] Process

傳回 ProcessId 所指定之進程的 EPROCESS 結構的參考指標。

傳回值

PsLookupProcessByProcessId 會在成功或適當的 NTSTATUS 值時傳回STATUS_SUCCESS,例如:

傳回碼 Description
STATUS_INVALID_PARAMETER
在 Windows XP 和舊版的 Windows 中指定找不到進程識別碼。
STATUS_INVALID_CID

在 Windows Vista 和更新版本的 Windows 中,指定的用戶端識別碼無效。

備註

此例程適用於 Windows 2000 和更新版本。

如果 呼叫 PsLookupProcessByProcessId 成功, PsLookupProcessByProcessID 會增加 Process 參數中所傳回對象的參考計數。 因此,當驅動程式使用 Process 參數完成時,驅動程式必須呼叫 ObDereferenceObject,以取值從 PsLookupProcessByProcessID 例程收到的 Process 參數。

EPROCESS 結構是操作系統內部使用的不透明數據結構。 此結構可以傳遞至其他例程,以存取此結構中的特定資訊。

文件系統篩選驅動程式可以列舉作用中的進程,然後呼叫 PsLookupProcessByProcessId ,將進程標識碼轉換為 EPROCESS 結構。 進程標識碼可在進程建立例程中使用。 文件系統篩選驅動程式可以使用 PsSetCreateProcessNotifyRoutine 來設定行程通知回呼例程。 在通知回呼例程中,文件系統篩選驅動程式可以使用傳入 的 ProcessId 參數,並呼叫 PsLookupProcessByProcessID 來找出 EPROCESS 結構。 PsSetCreateThreadNotifyRoutine 也可以用來設定通知例程,以在建立線程標識符時傳回進程標識符。

PsLookupProcessByProcessId 例程包含可分頁程序代碼。

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupThreadByThreadId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetLoadImageNotifyRoutine