Share via


セキュリティに関するグローバル関数

これらの関数では、SID および ACL オブジェクトの変更がサポートされます。

重要

次の表に示す関数は、Windows ランタイムで実行されるアプリケーションでは使用できません。

名前 説明
AtlGetDacl 指定されたオブジェクトの随意アクセス制御リスト (DACL: Discretionary Access Control List) の情報を取得します。
AtlSetDacl 指定されたオブジェクトの随意アクセス制御リスト (DACL: Discretionary Access Control List) の情報を設定します。
AtlGetGroupSid オブジェクトのグループ セキュリティ識別子 (SID: Security Identifier) を取得します。
AtlSetGroupSid オブジェクトのグループ セキュリティ識別子 (SID: Security Identifier) を設定します。
AtlGetOwnerSid オブジェクトの所有者セキュリティ識別子 (SID: Security Identifier) を取得します。
AtlSetOwnerSid オブジェクトの所有者セキュリティ識別子 (SID: Security Identifier) を設定します。
AtlGetSacl 指定されたオブジェクトのシステム アクセス制御リスト (SACL: System Access Control List) の情報を取得します。
AtlSetSacl 指定されたオブジェクトのシステム アクセス制御リスト (SACL: System Access Control List) の情報を設定します。
AtlGetSecurityDescriptor 指定されたオブジェクトのセキュリティ記述子を取得します。

必要条件

ヘッダー: atlsecurity.h

AtlGetDacl

指定されたオブジェクトの随意アクセス制御リスト (DACL: Discretionary Access Control List) の情報を取得します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlGetDacl(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    CDacl* pDacl) throw();

パラメーター

hObject
セキュリティ情報を取得する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

pDacl
取得したセキュリティ情報を格納する DACL オブジェクトへのポインター。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

解説

デバッグ ビルドでは、hObject または pDacl のいずれかが無効な場合、アサーション エラーが発生します。

AtlSetDacl

指定されたオブジェクトの随意アクセス制御リスト (DACL: Discretionary Access Control List) の情報を設定します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlSetDacl(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    const CDacl& rDacl,
    DWORD dwInheritanceFlowControl = 0) throw(...);

パラメーター

hObject
セキュリティ情報を設定する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

rDacl
新しいセキュリティ情報を含む DACL。

dwInheritanceFlowControl
継承フロー コントロール。 この値には、0 (既定値)、PROTECTED_DACL_SECURITY_INFORMATION、または UNPROTECTED_DACL_SECURITY_INFORMATION を指定できます。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

解説

デバッグ ビルドでは、hObject が無効な場合、または dwInheritanceFlowControl が許可される 3 つの値のいずれでもない場合に、アサーション エラーが発生します。

必要条件

ヘッダー: atlsecurity.h

AtlGetGroupSid

オブジェクトのグループ セキュリティ識別子 (SID: Security Identifier) を取得します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlGetGroupSid(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    CSid* pSid) throw(...);

パラメーター

hObject
セキュリティ情報を取得する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

pSid
新しいセキュリティ情報を格納する CSid オブジェクトへのポインター。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

必要条件

ヘッダー: atlsecurity.h

AtlSetGroupSid

オブジェクトのグループ セキュリティ識別子 (SID: Security Identifier) を設定します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlSetGroupSid(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    const CSid& rSid) throw(...);

パラメーター

hObject
セキュリティ情報を設定する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

rSid
新しいセキュリティ情報を含む CSid オブジェクト。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

必要条件

ヘッダー: atlsecurity.h

AtlGetOwnerSid

オブジェクトの所有者セキュリティ識別子 (SID: Security Identifier) を取得します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlGetOwnerSid(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    CSid* pSid) throw(...);

パラメーター

hObject
セキュリティ情報を取得する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

pSid
新しいセキュリティ情報を格納する CSid オブジェクトへのポインター。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

必要条件

ヘッダー: atlsecurity.h

AtlSetOwnerSid

オブジェクトの所有者セキュリティ識別子 (SID: Security Identifier) を設定します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlSetOwnerSid(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    const CSid& rSid) throw(...);

パラメーター

hObject
セキュリティ情報を設定する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

rSid
新しいセキュリティ情報を含む CSid オブジェクト。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

必要条件

ヘッダー: atlsecurity.h

AtlGetSacl

指定されたオブジェクトのシステム アクセス制御リスト (SACL: System Access Control List) の情報を取得します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlGetSacl(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    CSacl* pSacl,
    bool bRequestNeededPrivileges = true) throw(...);

パラメーター

hObject
セキュリティ情報を取得する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

pSacl
取得したセキュリティ情報を格納する SACL オブジェクトへのポインター。

bRequestNeededPrivileges
true の場合、関数では SE_SECURITY_NAME 権限の有効化が試みられ、完了時に復元されます。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

解説

AtlGetSacl を多数の異なるオブジェクトから何度も呼び出す場合は、bRequestNeededPrivileges を false に設定して、関数を呼び出す前に SE_SECURITY_NAME 権限を 1 回有効にする方が効率的です。

必要条件

ヘッダー: atlsecurity.h

AtlSetSacl

指定されたオブジェクトのシステム アクセス制御リスト (SACL: System Access Control List) の情報を設定します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlSetSacl(
    HANDLE hObject,
    SE_OBJECT_TYPE ObjectType,
    const CSacl& rSacl,
    DWORD dwInheritanceFlowControl = 0,
    bool bRequestNeededPrivileges = true) throw(...);

パラメーター

hObject
セキュリティ情報を設定する対象のオブジェクトのハンドル。

ObjectType
hObject パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

rSacl
新しいセキュリティ情報を含む SACL。

dwInheritanceFlowControl
継承フロー コントロール。 この値には、0 (既定値)、PROTECTED_SACL_SECURITY_INFORMATION、または UNPROTECTED_SACL_SECURITY_INFORMATION を指定できます。

bRequestNeededPrivileges
true の場合、関数では SE_SECURITY_NAME 権限の有効化が試みられ、完了時に復元されます。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

解説

デバッグ ビルドでは、hObject が無効な場合、または dwInheritanceFlowControl が許可される 3 つの値のいずれでもない場合に、アサーション エラーが発生します。

AtlSetSacl を多数の異なるオブジェクトから何度も呼び出す場合は、bRequestNeededPrivileges を false に設定して、関数を呼び出す前に SE_SECURITY_NAME 権限を 1 回有効にする方が効率的です。

必要条件

ヘッダー: atlsecurity.h

AtlGetSecurityDescriptor

指定されたオブジェクトのセキュリティ記述子を取得します。

重要

この関数は、Windows ランタイムで実行するアプリケーションでは使用できません。

inline bool AtlGetSecurityDescriptor(
    LPCTSTR pszObjectName,
    SE_OBJECT_TYPE ObjectType,
    CSecurityDesc* pSecurityDescriptor,
    SECURITY_INFORMATION requestedInfo = OWNER_SECURITY_INFORMATION |
    GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
    SACL_SECURITY_INFORMATION,
bool bRequestNeededPrivileges = true) throw(...);

パラメーター

pszObjectName
セキュリティ情報を取得する対象のオブジェクトの名前を指定する、null で終わる文字列へのポインター。

ObjectType
pszObjectName パラメーターによって識別されるオブジェクトの型を示す SE_OBJECT_TYPE 列挙型の値を指定します。

pSecurityDescriptor
要求されたセキュリティ記述子を受け取るオブジェクト。

requestedInfo
取得するセキュリティ情報の種類を示す、SECURITY_INFORMATION ビット フラグのセット。 このパラメーターは、次の値と組み合わせて使用できます。

bRequestNeededPrivileges
true の場合、関数では SE_SECURITY_NAME 権限の有効化が試みられ、完了時に復元されます。

戻り値

正常に終了した場合は true を返します。失敗した場合は false を返します。

解説

AtlGetSecurityDescriptor を多数の異なるオブジェクトから何度も呼び出す場合は、bRequestNeededPrivileges を false に設定して、関数を呼び出す前に SE_SECURITY_NAME 権限を 1 回有効にする方が効率的です。

必要条件

ヘッダー: atlsecurity.h

関連項目

関数