オブジェクトへのアクセス権の要求
オブジェクトへのハンドルを開くと、返されるハンドルには、オブジェクトへのアクセス権の組み合わせがあります。 CreateSemaphore などの一部の関数では、要求されたアクセス権の特定のセットは必要ありません。 これらの関数は常にハンドルを開いてフル アクセスを試みます。 CreateFile や OpenProcess などの他の関数を使用すると、必要なアクセス権のセットを指定できます。 フル アクセス用のハンドルを開くのではなく、必要なアクセス権のみを要求する必要があります。 これにより、意図しない方法でハンドルが使用されるのを防ぎ、オブジェクトの DACL で制限付きアクセスのみが許可されている場合にアクセス要求が成功する可能性が高くなります。
オブジェクトへのハンドルを開くときに必要なアクセスの種類を指定するには、汎用アクセス権を使用します。 これは通常、対応するすべての標準権限と特定の権限を指定するよりも簡単です。 または、MAXIMUM_ALLOWED定数を使用して、呼び出し元に対して有効なすべてのアクセス権でオブジェクトを開くように要求します。
Note
ace では、MAXIMUM_ALLOWED定数を使用できません。
オブジェクトの セキュリティ記述子で SACL を取得または設定するには、オブジェクトへのハンドルを開くときに ACCESS_SYSTEM_SECURITYアクセス権 を要求します。