GetSecurityDescriptorDacl 関数 (securitybaseapi.h)
GetSecurityDescriptorDacl 関数は、指定されたセキュリティ記述子の随意アクセス制御リスト (DACL) へのポインターを取得します。
構文
BOOL GetSecurityDescriptorDacl(
[in] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[out] LPBOOL lpbDaclPresent,
[out] PACL *pDacl,
[out] LPBOOL lpbDaclDefaulted
);
パラメーター
[in] pSecurityDescriptor
DACL を含む SECURITY_DESCRIPTOR 構造体へのポインター。 関数は、それに対するポインターを取得します。
[out] lpbDaclPresent
指定したセキュリティ記述子に DACL が存在することを示す値へのポインター。 lpbDaclPresent が TRUE の場合、セキュリティ記述子には DACL が含まれており、この関数の残りの出力パラメーターは有効な値を受け取ります。 lpbDaclPresent が FALSE の場合、セキュリティ記述子には DACL が含まれていないので、残りの出力パラメーターは有効な値を受け取りません。
lpbDaclPresent の値が TRUE の場合、pDacl が NULL ではないことは意味しません。 つまり、pDacl が NULL の場合は lpbDaclPresent を TRUE にできます。つまり、NULL DACL が有効であることを意味します。 NULL DACL は、オブジェクトへのすべてのアクセスを暗黙的に許可し、空の DACL と同じではありません。 空の DACL では、オブジェクトへのアクセスは許可されません。 適切な DACL の作成については、「 DACL の作成」を参照してください。
[out] pDacl
アクセス制御リスト (ACL) へのポインターへのポインター。 DACL が存在する場合、関数は pDacl によって指されるポインターをセキュリティ記述子の DACL のアドレスに設定します。 DACL が存在しない場合、値は格納されません。
関数が pDacl が指すポインターに NULL 値を格納する場合、セキュリティ記述子には NULL DACL があります。 NULL DACL は、オブジェクトへのすべてのアクセスを暗黙的に許可します。
アプリケーションが NULL 以外の DACL を予期していても NULL DACL が発生した場合、アプリケーションは安全に失敗し、アクセスを許可しないようにする必要があります。
[out] lpbDaclDefaulted
セキュリティ記述子に DACL が存在する場合、SECURITY_DESCRIPTOR_CONTROL構造体の SE_DACL_DEFAULTED フラグの値に設定されたフラグへのポインター。 このフラグが TRUE の場合、DACL は既定のメカニズムによって取得されました。 FALSE の場合、DACL はユーザーによって明示的に指定されました。
戻り値
関数が成功した場合、関数は 0 以外の値を返します。
関数が失敗すると、0 が返されます。 詳細なエラー情報を得るには、GetLastError を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | securitybaseapi.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |