RtlGetDaclSecurityDescriptor 関数 (ntifs.h)

RtlGetDaclSecurityDescriptor ルーチンは、セキュリティ記述子の随意 ACL (DACL) へのポインターを返します。

構文

NTSYSAPI NTSTATUS RtlGetDaclSecurityDescriptor(
  [in]  PSECURITY_DESCRIPTOR SecurityDescriptor,
  [out] PBOOLEAN             DaclPresent,
  [out] PACL                 *Dacl,
  [out] PBOOLEAN             DaclDefaulted
);

パラメーター

[in] SecurityDescriptor

DACL が返される SECURITY_DESCRIPTOR へのポインター。

[out] DaclPresent

指定したセキュリティ記述子に DACL が存在することを示すブール変数へのポインター。 この変数が TRUE を受け取る場合、セキュリティ記述子には DACL が含まれており、残りの出力パラメーターは有効な値を受け取ります。 この変数が FALSE を受け取った場合、セキュリティ記述子には DACL が含まれていません。残りの出力パラメーターは有効な値を受け取りません。

[out] Dacl

セキュリティ記述子の DACL のアドレスを受け取る変数へのポインター。 セキュリティ記述子に DACL がない場合、この変数は値を受け取りません。 セキュリティ記述子に NULL DACL がある場合、この変数は NULL を受け取ります。 NULL DACL は、オブジェクトへのすべてのアクセスを暗黙的に許可します。

[out] DaclDefaulted

セキュリティ記述子のSECURITY_DESCRIPTOR_CONTROL構造体でSE_DACL_DEFAULTED フラグの値を受け取るブール変数へのポインター。 このフラグが TRUE の場合、DACL は既定のメカニズムによって取得されました。 FALSE の場合、DACL はユーザーによって明示的に指定されました。 この値は、 *DaclNULL 以外の値を受け取る場合にのみ有効です。

戻り値

RtlGetDaclSecurityDescriptor は、次のようなSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_UNKNOWN_REVISION
セキュリティ記述子のリビジョン レベルが不明であるか、サポートされていません。 これはエラー コードです。

注釈

*DaclPresent の値が TRUE の場合、*DaclNULL 以外であることを意味しません。 つまり、 *DaclPresentTRUE*DaclNULL であり、 NULL DACL が有効であることを意味します。 NULL DACL は、オブジェクトへのすべてのアクセスを暗黙的に許可し、空の DACL と同じではありません。 空の DACL では、オブジェクトへのアクセスは許可されません。

セキュリティとアクセス制御の詳細については、 ドライバー開発者向けの Windows セキュリティ モデル と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。

要件

要件
サポートされている最小のクライアント Windows Server 2003 SP1
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR