Compartilhar via


Função KeStackAttachProcess (ntifs.h)

A rotina KeStackAttachProcess anexa o thread atual ao espaço de endereço do processo de destino.

Cuidado use essa rotina com extrema cautela. (Consulte a observação na seção Comentários.)
 

Sintaxe

void KeStackAttachProcess(
        PRKPROCESS   PROCESS,
  [out] PRKAPC_STATE ApcState
);

Parâmetros

PROCESS

Ponteiro para o objeto de processo de destino. Esse parâmetro pode ser um ponteiro PEPROCESS retornado por IoGetCurrentProcess ou PsGetCurrentProcess.

[out] ApcState

Um ponteiro opaco para uma estrutura KAPC_STATE. O chamador deve alocar armazenamento para essa estrutura do pool nãopagado ou da própria pilha de threads do chamador.

Valor de retorno

Nenhum

Observações

KeStackAttachProcess anexa o thread atual ao espaço de endereço do processo apontado pelo parâmetro processo. Se o thread atual já estiver anexado a outro processo, o parâmetro ApcState receberá o estado atual do APC antes de KeStackAttachProcess ser anexado ao novo processo.

Cada chamada para KeStackAttachProcess deve ser correspondida por uma chamada subsequente para KeUnstackDetachProcess.

Observação Anexar um thread a um processo diferente pode impedir a conclusão de operações de E/S assíncronas e pode causar deadlocks. Em geral, as linhas de código entre a chamada para KeStackAttachProcess e a chamada para KeUnstackDetachProcess devem ser muito simples e não devem chamar rotinas complexas ou enviar IRPs para outros drivers.
 

Para obter mais informações sobre como usar threads do sistema e gerenciar a sincronização em um contexto de thread não secundário, consulte do Windows Kernel-Mode Process and Thread Manager.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h, Fltkernel.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Consulte também

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread