Função IoGetRequestorProcess (ntifs.h)

A rotina IoGetRequestorProcess retorna um ponteiro de processo para o thread que solicitou originalmente uma determinada operação de E/S.

Sintaxe

PEPROCESS IoGetRequestorProcess(
  [in] PIRP Irp
);

Parâmetros

[in] Irp

Um ponteiro para o IRP (pacote de solicitação de E/S) para a operação de E/S.

Retornar valor

IoGetRequestorProcess retorna um ponteiro de processo para o thread que solicitou a operação de E/S. Se o IRP não estiver associado a nenhum thread, IoGetRequestorProcess retornará NULL.

Comentários

Olhando com o Windows Vista. IoGetRequestorProcess retorna um ponteiro para o processo ao qual o thread está anexado no momento. Para IRPs enfileirados para objetos de arquivo, como para E/S da porta de conclusão, IoGetRequestorProcess retorna um ponteiro para o processo emissor. Se nenhum thread estiver anexado, IoGetRequestorProcess retornará um ponteiro para o processo que criou o thread.

No Windows XP, IoGetRequestorProcess retorna um ponteiro para o processo ao qual o thread está anexado no momento.

Nota No Windows XP, nos casos em que um IRP contém um thread não NULL, mas não tem nenhum thread anexado, ioGetRequestorProcess tentará acessar as informações do processo para um thread indefinido. Isso apresentará uma possível condição de marcar de bug se IoGetRequestorProcess for chamado sem tratamento de exceção ou em um IRQL muito alto.

 

Antes do Windows XP, IoGetRequestorProcess retorna um ponteiro para o processo que criou o thread.

Um IRP será automaticamente associado a um thread se for emitido pelo Gerenciador de E/S ou obtido chamando IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest ou IoBuildDeviceIoControlRequest.

Para obter mais informações sobre como usar threads do sistema e gerenciar a sincronização em um contexto de thread nonarbitrary, consulte Threads de Driver, Objetos Dispatcher e Recursos.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Confira também

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoGetRequestorProcessId