次の方法で共有


IoGetRequestorProcess 関数 (ntifs.h)

IoGetRequestorProcess ルーチンは、指定された I/O 操作を最初に要求したスレッドのプロセス ポインターを返します。

構文

PEPROCESS IoGetRequestorProcess(
  [in] PIRP Irp
);

パラメーター

[in] Irp

I/O 操作の I/O 要求パケット (IRP) へのポインター。

戻り値

IoGetRequestorProcess は 、I/O 操作を要求したスレッドのプロセス ポインターを返します。 IRP がスレッドに関連付けられていない場合、 IoGetRequestorProcess はNULL を返します。

注釈

Windows Vista を見つめる。 IoGetRequestorProcess は 、スレッドが現在アタッチされているプロセスへのポインターを返します。 完了ポート I/O などのファイル オブジェクトに対してキューに登録された IRP の場合、 IoGetRequestorProcess は 発行プロセスへのポインターを返します。 スレッドがアタッチされていない場合、 IoGetRequestorProcess は スレッドを作成したプロセスへのポインターを返します。

Windows XP では、 IoGetRequestorProcess は 、スレッドが現在アタッチされているプロセスへのポインターを返します。

メモ Windows XP では、IRP に NULL 以外のスレッドが含まれているが、スレッドがアタッチされていない場合、 IoGetRequestorProcess は未定義のスレッドのプロセス情報へのアクセスを試みます。 例外処理を行わずに IoGetRequestorProcess が呼び出された場合、または IRQL が高すぎる場合は、バグ チェック状態が発生する可能性があります。

 

Windows XP より前の IoGetRequestorProcess は 、スレッドを作成したプロセスへのポインターを返します。

I/O マネージャーによって発行された場合、または IoBuildAsynchronousFsdRequest、IoBuildSynchronousFsdRequest、または IoBuildDeviceIoControlRequest を呼び出すことによって取得された場合、IRP はスレッドに自動的に関連付けられます。

非ビット スレッド コンテキスト内でのシステム スレッドの使用と同期の管理の詳細については、「 ドライバー スレッド、ディスパッチャー オブジェクト、およびリソース」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoGetRequestorProcessId