KeStackAttachProcess 関数 (ntifs.h)

KeStackAttachProcess ルーチンは、現在のスレッドをターゲット プロセスのアドレス空間にアタッチします。

注意 このルーチンは細心の注意を払って使用してください。 (「解説」セクションのメモを参照してください)。
 

構文

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

パラメーター

PROCESS

ターゲット プロセス オブジェクトへのポインター。 このパラメーターには、 IoGetCurrentProcess または PsGetCurrentProcess によって返される PEPROCESS ポインターを指定できます。

[out] ApcState

KAPC_STATE構造体への不透明なポインター。 呼び出し元は、非ページ プールまたは呼び出し元の独自のスレッド スタックから、この構造体の記憶域を割り当てる必要があります。

戻り値

なし

解説

KeStackAttachProcess は、Process パラメーターによって指されるプロセスのアドレス空間に現在のスレッドをアタッチします。 現在のスレッドが既に別のプロセスにアタッチされている場合、KeStackAttachProcess が新しいプロセスにアタッチされる前に、ApcState パラメーターは現在の APC 状態を受け取ります。

KeStackAttachProcess に対するすべての呼び出しは、後続の KeUnstackDetachProcess の呼び出しと一致する必要があります。

メモ スレッドを別のプロセスにアタッチすると、非同期 I/O 操作の完了を妨げる可能性があり、デッドロックが発生する可能性があります。 一般に、 KeStackAttachProcess の呼び出しと KeUnstackDetachProcess の呼び出しの間のコード行は非常に単純であり、複雑なルーチンを呼び出したり、IRP を他のドライバーに送信したりしないでください。
 

非固定スレッド コンテキスト内でのシステム スレッドの使用と同期の管理の詳細については、「 Windows Kernel-Mode プロセスとスレッド マネージャー」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h、Fltkernel.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL < DISPATCH_LEVEL

こちらもご覧ください

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread