OpenProcess

https://msdn.microsoft.com/ja-jp/library/cc429766.aspx https://msdn.microsoft.com/ja-jp/library/cc430215.aspx https://msdn.microsoft.com/ja-jp/library/cc429067.aspx https://msdn.microsoft.com/ja-jp/library/cc429006.aspx https://msdn.microsoft.com/ja-jp/library/cc429067.aspx https://msdn.microsoft.com/ja-jp/library/ms687069.aspx https://msdn.microsoft.com/ja-jp/library/cc428944.aspx https://msdn.microsoft.com/ja-jp/library/ms687069.aspx https://msdn.microsoft.com/ja-jp/library/cc429605.aspx https://msdn.microsoft.com/ja-jp/library/cc429605.aspx https://msdn.microsoft.com/ja-jp/library/cc429766.aspx https://msdn.microsoft.com/ja-jp/library/cc429006.aspx https://msdn.microsoft.com/ja-jp/library/cc430215.aspx https://msdn.microsoft.com/ja-jp/library/cc429067.aspx

既存のプロセスオブジェクトのハンドルを開きます。

HANDLE OpenProcess(
  DWORD dwDesiredAccess,  // アクセスフラグ
  BOOL bInheritHandle,    // ハンドルの継承オプション
  DWORD dwProcessId       // プロセス識別子
);

パラメータ

dwDesiredAccess
プロセスオブジェクトで認められるアクセス方法を指定します。セキュリティ機能をサポートしているシステムでは、このアクセス権を、アクセス対象のプロセスに関係するセキュリティ記述子と比較します。STANDARD_RIGHTS_REQUIRED アクセスフラグ、あるいは次のフラグの 1 つまたは複数を指定できます。
説明
PROCESS_ALL_ACCESS利用可能な範囲で、プロセスオブジェクトに対するすべてのアクセス権を指定します。
PROCESS_CREATE_PROCESS内部で使います。
PROCESS_CREATE_THREADプロセス内にスレッドを作成するために、CreateRemoteThread 関数がこのプロセスのハンドルを使うことを認めます。
PROCESS_DUP_HANDLEハンドルを複製するために、 関数が複製元または複製先としてこのプロセスのハンドルを使うことを認めます。
PROCESS_QUERY_INFORMATIONプロセスオブジェクトから情報を読み取るために、GetExitCodeProcess 関数と GetPriorityClass 関数がこのプロセスのハンドルを使うことを認めます。
PROCESS_SET_QUOTAメモリの上限(クォータ)を設定するために、AssignProcessToJobObject 関数と SetProcessWorkingSetSize 関数がこのプロセスのハンドルを使うことを認めます。
PROCESS_SET_INFORMATIONこのプロセスの優先順位クラスを設定するために、SetPriorityClass 関数がこのプロセスのハンドルを使うことを認めます。
PROCESS_TERMINATEこのプロセスを終了するために、TerminateProcess 関数がこのプロセスのハンドルを使うことを認めます。
PROCESS_VM_OPERATIONこのプロセスの仮想メモリを変更するために、 関数、または 関数がこのプロセスのハンドルを使うことを認めます。
PROCESS_VM_READこのプロセスの仮想メモリの内容を読み取るために、 関数がこのプロセスのハンドルを使うことを認めます。
PROCESS_VM_WRITEこのプロセスの仮想メモリへの書き込みを行うために、 関数がこのプロセスのハンドルを使うことを認めます。
SYNCHRONIZEWindows NT/2000:このプロセスが終了するのを待つために、(待機関数)がこのプロセスのハンドルを使うことを認めます。

bInheritHandle
現在のプロセスが新しいプロセスを作成する際に、新しいプロセスが、取得されたハンドルを継承できるかどうかを指定します。TRUE を指定すると、新しいプロセスはそのハンドルを継承します。
dwProcessId
開くべきプロセスの識別子を指定します。

戻り値

関数が成功すると、指定したプロセスの、既に開いているハンドルが返ります。

関数が失敗すると、NULL が返ります。拡張エラー情報を取得するには、 関数を使います。

解説

OpenProcess 関数で適切なアクセス権を指定すると、(待機関数)のようにプロセス識別子を必要とする任意の関数は、OpenProcess 関数を使って取得したハンドルを利用できます。

ハンドルが不要になったときは、 関数を使って閉じてください。

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winbase.h 内で宣言、Windows.h をインクルード
インポートライブラリ:Kernel32.lib を使用

参照

AssignProcessToJobObject, , CreateProcess, CreateRemoteThread, , GetCurrentProcess, GetCurrentProcessId, GetExitCodeProcess, GetPriorityClass, , SetPriorityClass, SetProcessWorkingSetSize, TerminateProcess, ,

表示: