KeStackAttachProcess 函数 (ntifs.h)

KeStackAttachProcess 例程将当前线程附加到目标进程的地址空间。

谨慎 请谨慎使用此例程。 (请参阅“备注”部分中的说明。)
 

语法

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

参数

PROCESS

指向目标进程对象的指针。 此参数可以是 IoGetCurrentProcess 或 PsGetCurrentProcess 返回的 PEPROCESS 指针。

[out] ApcState

指向KAPC_STATE结构的不透明指针。 调用方必须从非分页池或调用方自己的线程堆栈为此结构分配存储。

返回值

备注

KeStackAttachProcess 将当前线程附加到 Process 参数指向的进程地址空间。 如果当前线程已附加到另一个进程, 则 ApcState 参数会在 KeStackAttachProcess 附加到新进程之前接收当前 APC 状态。

每次对 KeStackAttachProcess 的调用都必须与对 KeUnstackDetachProcess 的后续调用相匹配。

注意 将线程附加到其他进程可能会阻止异步 I/O 操作完成,并可能导致死锁。 通常,调用 KeStackAttachProcess 和调用 KeUnstackDetachProcess 之间的代码行应该非常简单,不应调用复杂的例程或将 IRP 发送到其他驱动程序。
 

有关使用系统线程和在非比特线程上下文中管理同步的详细信息,请参阅 Windows Kernel-Mode 进程和线程管理器

要求

要求
最低受支持的客户端 Windows 2000
目标平台 通用
标头 ntifs.h (包括 Ntifs.h、Fltkernel.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另请参阅

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread