BuildExplicitAccessWithNameA 関数 (aclapi.h)

BuildExplicitAccessWithName 関数は、呼び出し元によって指定されたデータを使用してEXPLICIT_ACCESS構造体を初期化します。 トラスティは名前文字列で識別されます。

構文

void BuildExplicitAccessWithNameA(
  [in, out]      PEXPLICIT_ACCESS_A pExplicitAccess,
  [in, optional] LPSTR              pTrusteeName,
  [in]           DWORD              AccessPermissions,
  [in]           ACCESS_MODE        AccessMode,
  [in]           DWORD              Inheritance
);

パラメーター

[in, out] pExplicitAccess

初期化する EXPLICIT_ACCESS 構造体へのポインター。 BuildExplicitAccessWithName 関数はメモリを割り当てません。 このパラメーターを NULL にすることはできません。

[in, optional] pTrusteeName

トラスティ構造体の ptstrName メンバーのトラスティの名前を含む null で終わる文字列へのポインター。 BuildExplicitAccessWithName 関数は、トラスティ構造体の他のメンバーを次のように設定します。

意味
pMultipleTrustee
NULL
MultipleTrusteeOperation
NO_MULTIPLE_TRUSTEE
トラスティ フォーム
TRUSTEE_IS_NAME
TrusteeType
TRUSTEE_IS_UNKNOWN

[in] AccessPermissions

EXPLICIT_ACCESS構造体の grfAccessPermissions メンバーのアクセス マスクを指定します。 マスクは、ACE がトラスティに対して許可、拒否、または監査するアクセス権を指定するために、ACCESS_MASK形式を使用するビット フラグのセットです。 EXPLICIT_ACCESS構造体を使用する関数は、このマスク内のビットの変換、解釈、検証を行いません。

[in] AccessMode

EXPLICIT_ACCESS構造体の grfAccessMode メンバーのアクセス モードを指定します。 アクセス モードは、 アクセス制御エントリ (ACE) が指定した権限を許可、拒否、または監査するかどうかを示します。 随意アクセス制御リスト (DACL) の場合、このパラメーターには、ACCESS_MODE列挙の値のいずれかを指定できます。 システム アクセス制御リスト (SACL) の場合、このパラメーターにはACCESS_MODE値の組み合わせを指定できます。

[in] Inheritance

EXPLICIT_ACCESS構造体の grfInheritance メンバーの継承型を指定します。 この値は、他のコンテナーまたはオブジェクトが ACL がアタッチされているプライマリ オブジェクトから ACE を継承できるかどうかを決定する一連のビット フラグです。 このメンバーの値は、ACE_HEADER構造体の AceFlags メンバーの継承部分 (下位バイト) に対応します。 このパラメーターは、ACE が継承できないことを示すためにNO_INHERITANCEすることも、次の値を組み合わせて使用することもできます。

意味
CONTAINER_INHERIT_ACE
プライマリ オブジェクトに含まれる他のコンテナーは ACE を継承します。
INHERIT_ONLY_ACE
ACE は ACL がアタッチされているプライマリ オブジェクトには適用されませんが、プライマリ オブジェクトに含まれるオブジェクトは ACE を継承します。
NO_PROPAGATE_INHERIT_ACE
OBJECT_INHERIT_ACEフラグとCONTAINER_INHERIT_ACE フラグは、継承された ACE には反映されません。
OBJECT_INHERIT_ACE
プライマリ オブジェクトに含まれる非コンテナー オブジェクトは ACE を継承します。
SUB_CONTAINERS_AND_OBJECTS_INHERIT
プライマリ オブジェクトに含まれるコンテナーオブジェクトと非コンテナー オブジェクトの両方が ACE を継承します。 このフラグは、CONTAINER_INHERIT_ACEフラグとOBJECT_INHERIT_ACEフラグの組み合わせに対応します。
SUB_CONTAINERS_ONLY_INHERIT
プライマリ オブジェクトに含まれる他のコンテナーは ACE を継承します。 このフラグは、CONTAINER_INHERIT_ACEフラグと INHERIT_ONLY_ACE フラグの組み合わせ 対応します。
SUB_OBJECTS_ONLY_INHERIT
プライマリ オブジェクトに含まれる非コンテナー オブジェクトは ACE を継承します。 このフラグは、 OBJECT_INHERIT_ACE フラグと INHERIT_ONLY_ACE フラグの組み合わせに対応します。

戻り値

なし

解説

注意

aclapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして BuildExplicitAccessWithName を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー aclapi.h
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

エース

ACL

アクセス制御の概要

基本的なAccess Control関数

EXPLICIT_ACCESS

GetExplicitEntriesFromAcl

SetEntriesInAcl

トラスティ