Поделиться через


Функция IoGetRequestorProcess (ntifs.h)

Подпрограмма IoGetRequestorProcess возвращает указатель процесса для потока, который первоначально запросил данную операцию ввода-вывода.

Синтаксис

PEPROCESS IoGetRequestorProcess(
  [in] PIRP Irp
);

Параметры

[in] Irp

Указатель на пакет запроса ввода-вывода (IRP) для операции ввода-вывода.

Возвращаемое значение

IoGetRequestorProcess возвращает указатель процесса для потока, запрашивающего операцию ввода-вывода. Если IRP не связан ни с каким потоком, IoGetRequestorProcess возвращает значение NULL.

Комментарии

Просмотр с Windows Vista. IoGetRequestorProcess возвращает указатель на процесс, к которому в данный момент присоединен поток. Для irPs, помещенных в очередь для файловых объектов, например для ввода-вывода через порт завершения, IoGetRequestorProcess возвращает указатель на процесс выдачи. Если поток не присоединен, IoGetRequestorProcess возвращает указатель на процесс, создавший поток.

В Windows XP IoGetRequestorProcess возвращает указатель на процесс, к которому в данный момент присоединен поток.

Примечание В Windows XP в случаях, когда IRP содержит поток, отличный от NULL, но не имеет присоединенного потока, IoGetRequestorProcess попытается получить доступ к сведениям о процессе для неопределенного потока. Это представляет собой возможную ошибку проверка условии, если IoGetRequestorProcess вызывается без обработки исключений или при слишком высоком уровне IRQL.

 

До Windows XP IoGetRequestorProcess возвращает указатель на процесс, создавший поток.

IRP автоматически связывается с потоком, если он выдан диспетчером ввода-вывода или получен путем вызова IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest или IoBuildDeviceIoControlRequest.

Дополнительные сведения об использовании системных потоков и управлении синхронизацией в контексте неарбитарных потоков см. в разделе Потоки драйверов, объекты диспетчера и ресурсы.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также раздел

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoGetRequestorProcessId