GetCurrentProcess

https://msdn.microsoft.com/ja-jp/library/ms684880.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/cc429605.aspx https://msdn.microsoft.com/ja-jp/library/cc429766.aspx

現在のプロセスに対応する疑似ハンドルを取得します。

HANDLE GetCurrentProcess(VOID);

パラメータ

パラメータはありません。

戻り値

現在のプロセスの疑似ハンドルが返ります。

解説

疑似ハンドルとは、現在のプロセスのハンドルと解釈される特別な定数のことです。呼び出し側プロセスがプロセスハンドルを必要とする関数を呼び出す場合、この疑似ハンドルを使ってそのプロセス自身を指定できます。子プロセスは、擬似ハンドルを継承しません。

擬似ハンドルには、プロセスオブジェクトに対するアクセス権として、可能な範囲で最大の権利が割り当てられます。セキュリティ記述子をサポートしているシステムでは、呼び出し側のセキュリティ記述子が許可している最大のアクセス権が割り当てられます。セキュリティ記述子をサポートしていないシステムでは、PROCESS_ALL_ACCESS アクセス権が割り当てられます。詳細については、MSDN ライブラリの「」を参照してください。

擬似ハンドルをコピー元として指定して DuplicateHandle 関数を呼び出すと、プロセスは自分自身を表す(擬似ハンドルではない)「本物」のハンドルを取得できます。このハンドルは他のプロセスのコンテキストでも有効であり、子プロセスへ継承することもできます。各プロセスは、OpenProcess 関数を使って、自分自身を表す本物のハンドルを開くことができます。

擬似ハンドルは、不要になっても閉じる必要がありません。擬似ハンドルに対して を呼び出しても何の効果もありません。ただし、 関数を使って擬似ハンドルを複製した場合、CloseHandle 関数を使って、複製先のハンドルを閉じなければなりません。

対応情報

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

参照

, , GetCurrentProcessId, GetCurrentThread, OpenProcess

表示: