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


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

Программа KeStackAttachProcess подключает текущий поток к адресной области целевого процесса.

осторожность использовать эту подпрограмму с крайней осторожностью. (См. примечание в разделе "Примечания".)
 

Синтаксис

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

Параметры

PROCESS

Указатель на целевой объект процесса. Этот параметр может быть указателем PEPROCESS, возвращаемым IoGetCurrentProcess или PsGetCurrentProcess.

[out] ApcState

Непрозрачный указатель на структуру KAPC_STATE. Вызывающий объект должен выделить хранилище для этой структуры либо из непакованного пула, либо из собственного стека потоков вызывающего объекта.

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

Никакой

Замечания

KeStackAttachProcess присоединяет текущий поток к адресной области процесса, на который указывает параметр Process. Если текущий поток уже подключен к другому процессу, параметр ApcState получает текущее состояние APC, прежде чем KeStackAttachProcess присоединяется к новому процессу.

Каждый вызов KeStackAttachProcess должен соответствовать последующему вызову KeUnstackDetachProcess.

примечание присоединение потока к другому процессу может препятствовать выполнению асинхронных операций ввода-вывода и потенциально может привести к взаимоблокировкам. Как правило, строки кода между вызовом KeStackAttachProcess и вызовом KeUnstackDetachProcess должны быть очень простыми и не должны вызывать сложные подпрограммы или отправлять irPs другим драйверам.
 

Дополнительные сведения об использовании системных потоков и управлении синхронизацией в контексте непарбитрарного потока см. в Kernel-Mode процесса идиспетчера потоков Windows.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h, Fltkernel.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

См. также

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread