GetCurrentProcess 関数 (processthreadsapi.h)
現在のプロセスの擬似ハンドルを取得します。
構文
HANDLE GetCurrentProcess();
戻り値
戻り値は、現在のプロセスへの擬似ハンドルです。
注釈
擬似ハンドルは、現在のプロセス ハンドルとして解釈される特殊な定数 (現在 (HANDLE)-1) です。 将来のオペレーティング システムとの互換性を保つには、この定数値をハードコーディングする代わりに GetCurrentProcess を 呼び出すのが最善です。 呼び出し元のプロセスは、プロセス ハンドルが必要な場合に常に、擬似ハンドルを使用して独自のプロセスを指定できます。 擬似ハンドルは子プロセスによって継承されません。
このハンドルには、 プロセス オブジェクトへのPROCESS_ALL_ACCESSアクセス権があります。 詳細については、「 セキュリティとアクセス権の処理」を参照してください。
Windows Server 2003 および Windows XP: このハンドルには、プロセスのプライマリ トークンに対するプロセスのセキュリティ記述子によって許可される最大アクセス権があります。
プロセスは、 DuplicateHandle 関数の呼び出しでソース ハンドルとして擬似ハンドルを指定することで、他のプロセスのコンテキストで有効なハンドル、または他のプロセスから継承できる "実際の" ハンドルを自身に作成できます。 プロセスでは、 OpenProcess 関数を使用して、それ自体に対する実際のハンドルを開くこともできます。
擬似ハンドルは、不要になったときに閉じる必要はありません。 擬似ハンドルを使用して CloseHandle 関数を呼び出しても、効果はありません。 擬似ハンドルが DuplicateHandle によって複製される場合は、重複するハンドルを閉じる必要があります。
例
例については、「 リダイレクトされた入力と出力を使用した子プロセスの作成」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | processthreadsapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |