Share via


プロセス ハンドルと識別子

CreateProcess 関数によって新しいプロセスが作成されると、新しいプロセスとそのプライマリ スレッドのハンドルが返されます。 これらのハンドルは完全なアクセス権で作成され、セキュリティ アクセス チェックの対象として、スレッドまたはプロセス ハンドルを受け入れる任意の関数で使用できます。 これらのハンドルは、作成時に指定された継承フラグに応じて、子プロセスによって継承できます。 ハンドルは、それらが表すプロセスまたはスレッドが終了した後でも、閉じられるまで有効です。

CreateProcess 関数は、システム全体でプロセスを一意に識別する識別子も返します。 プロセスは GetCurrentProcessId 関数を使用して、独自のプロセス識別子 (プロセス ID または PID とも呼ばれます) を取得できます。 識別子は、プロセスが作成されてからプロセスが終了するまで有効です。 プロセスは Process32First 関数を使用して、親プロセスのプロセス識別子を取得できます。

プロセス識別子がある場合は、 OpenProcess 関数を呼び出すことでプロセス ハンドルを取得できます。 OpenProcess を使用すると、ハンドルのアクセス権と、ハンドルを継承できるかどうかを指定できます。

プロセスでは 、GetCurrentProcess 関数を使用して、独自のプロセス オブジェクトへの擬似ハンドルを取得できます。 この擬似ハンドルは、呼び出し元のプロセスに対してのみ有効です。他のプロセスで使用するために継承または複製することはできません。 プロセスの実際のハンドルを取得するには、 DuplicateHandle 関数を呼び出します。