GetCurrentProcess 関数 (processthreadsapi.h)
現在のプロセスの擬似ハンドルを取得します。
構文
HANDLE GetCurrentProcess();
戻り値
戻り値は、現在のプロセスに対する擬似ハンドルです。
Remarks
擬似ハンドルは、現在のプロセス ハンドルとして解釈される特殊な定数 (現在 (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 |