次の方法で共有


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 は、スレッドを作成したプロセスへのポインターを返します。

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

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

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

関連項目

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoGetRequestorProcessId