次の方法で共有


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 を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

関連項目

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread