다음을 통해 공유


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 Process 및 Thread Manager를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h, Fltkernel.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

추가 정보

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread