Функция PsLookupProcessByProcessId (ntifs.h)
Подпрограмма PsLookupProcessByProcessId принимает идентификатор процесса и возвращает указатель на структуру процесса EPROCESS.
Синтаксис
NTSTATUS PsLookupProcessByProcessId(
[in] HANDLE ProcessId,
[out] PEPROCESS *Process
);
Параметры
[in] ProcessId
Указывает идентификатор процесса.
[out] Process
Возвращает указатель, на который указывает ссылка на структуру EPROCESS процесса, указанного с помощью ProcessId.
Возвращаемое значение
PsLookupProcessByProcessId возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение NTSTATUS, например:
Код возврата | Описание |
---|---|
|
Указывает в Windows XP и более ранних версиях Windows идентификатор процесса не найден. |
|
Указывает в Windows Vista и более поздних версиях Windows недопустимый идентификатор клиента. |
Комментарии
Эта подпрограмма доступна в Windows 2000 и более поздних версиях.
Если вызов PsLookupProcessByProcessId выполнен успешно, PsLookupProcessByProcessID увеличивает количество ссылок на объект, возвращаемый в параметре Process . Следовательно, когда драйвер завершил работу с параметром Process , драйвер должен вызвать ObDereferenceObject для разыменования параметра Process , полученного от подпрограммы PsLookupProcessByProcessID .
Структура EPROCESS — это непрозрачная структура данных, используемая внутри операционной системы. Эту структуру можно передать другим подпрограммам для доступа к определенной информации в этой структуре.
Драйвер фильтра файловой системы может перечислять активные процессы, а затем вызывать PsLookupProcessByProcessId для преобразования идентификатора процесса в структуру EPROCESS. Идентификатор процесса доступен в процедуре создания процесса. Драйвер фильтра файловой системы может задать подпрограмму обратного вызова уведомления процесса с помощью PsSetCreateProcessNotifyRoutine. В подпрограмме обратного вызова уведомлений драйвер фильтра файловой системы может использовать переданный параметр ProcessId и вызвать PsLookupProcessByProcessID , чтобы найти структуру EPROCESS. PsSetCreateThreadNotifyRoutine также можно использовать для задания процедуры уведомления, которая возвращает идентификатор процесса при создании идентификатора потока.
Подпрограмма PsLookupProcessByProcessId содержит страничный код.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
См. также раздел
PsRemoveCreateThreadNotifyRoutine
PsRemoveLoadImageNotifyRoutine
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по