KeStackAttachProcess 函数 (ntifs.h)
KeStackAttachProcess 例程将当前线程附加到目标进程的地址空间。
警告 请谨慎使用此例程。 (请参阅“备注”部分中的备注。
语法
void KeStackAttachProcess(
PRKPROCESS PROCESS,
[out] PRKAPC_STATE ApcState
);
参数
PROCESS
指向目标进程对象的指针。 此参数可以是 IoGetCurrentProcess 返回的 PEPROCESS 指针,也可以 PsGetCurrentProcess返回。
[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) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |