LookupSecurityDescriptorPartsA 関数 (aclapi.h)

LookupSecurityDescriptorParts 関数は、自己相対セキュリティ記述子からセキュリティ情報を取得します。

構文

DWORD LookupSecurityDescriptorPartsA(
  [out, optional] PTRUSTEE_A           *ppOwner,
  [out, optional] PTRUSTEE_A           *ppGroup,
  [out, optional] PULONG               pcCountOfAccessEntries,
  [out, optional] PEXPLICIT_ACCESS_A   *ppListOfAccessEntries,
  [out, optional] PULONG               pcCountOfAuditEntries,
  [out, optional] PEXPLICIT_ACCESS_A   *ppListOfAuditEntries,
  [in]            PSECURITY_DESCRIPTOR pSD
);

パラメーター

[out, optional] ppOwner

トラスティ構造体へのポインターを受け取る変数へのポインター。 関数は、pSD セキュリティ記述子の所有者セキュリティ識別子 (SID) に関連付けられている名前を検索し、トラスティ構造体の ptstrName メンバー内の名前へのポインターを返します。 この関数は、 TrusteeForm メンバーをTRUSTEE_IS_NAMEに設定します。

所有者の名前に関心がない場合、このパラメーターは NULL にすることができます。

[out, optional] ppGroup

トラスティ構造体へのポインターを受け取る変数へのポインター。 関数は、セキュリティ記述子のプライマリ グループ SID に関連付けられている名前を検索し、トラスティ構造体の ptstrName メンバー内の名前へのポインターを返します。 この関数は、 TrusteeForm メンバーをTRUSTEE_IS_NAMEに設定します。

グループの名前に関心がない場合は、このパラメーターを NULL にすることができます。

[out, optional] pcCountOfAccessEntries

pListOfAccessEntries 配列で返されるEXPLICIT_ACCESS構造体の数を受け取る ULONG へのポインター。 このパラメーターは、pListOfAccessEntries パラメーターも NULL の場合にのみ NULL にすることができます

[out, optional] ppListOfAccessEntries

セキュリティ記述子の随意アクセス制御リスト (DACL) のアクセス制御エントリ (ACE) を記述するEXPLICIT_ACCESS構造体の配列へのポインターを受け取る変数へのポインター。 これらのEXPLICIT_ACCESS構造のトラスティ構造では、TRUSTEE_IS_NAME形式が使用されます。 EXPLICIT_ACCESS構造体の配列がアクセス制御リスト (ACL) の ACE を記述する方法については、GetExplicitEntriesFromAcl 関数を参照してください。 このパラメーターが NULL の場合、 cCountOfAccessEntries パラメーターも NULL である必要があります。

[out, optional] pcCountOfAuditEntries

pListOfAuditEntries 配列で返されるEXPLICIT_ACCESS構造体の数を受け取る ULONG へのポインター。 このパラメーターは、pListOfAuditEntries パラメーターも NULL の場合にのみ NULL にすることができます

[out, optional] ppListOfAuditEntries

セキュリティ記述子のシステム アクセス制御リスト (SACL) の ACE を記述するEXPLICIT_ACCESS構造体の配列へのポインターを受け取る変数へのポインター。 これらのEXPLICIT_ACCESS構造のトラスティ構造では、TRUSTEE_IS_NAME形式が使用されます。 このパラメーターが NULL の場合、 cCountOfAuditEntries パラメーターも NULL である必要があります。

[in] pSD

関数がセキュリティ情報を取得する既存 の自己相対セキュリティ記述子 へのポインター。

戻り値

関数が成功した場合、関数は ERROR_SUCCESSを返します。

関数が失敗した場合、WinError.h で定義されている 0 以外のエラー コードが返されます。

注釈

LookupSecurityDescriptorParts 関数は、セキュリティ記述子の所有者グループとプライマリ グループの名前を取得します。 この関数は、DACL の ACE と、セキュリティ記述子の SACL の監査制御エントリの説明も返します。

情報に関心がない場合、 pSD 以外のパラメーターは NULL にすることができます。 DACL に関する情報が必要ない場合は、 pListOfAccessEntriescCountOfAuditEntries の 両方が NULL である必要があります。 SACL に関する情報が必要ない場合は、 pListOfAuditEntriescCountOfAuditEntries の両方が NULL である必要があります。 同様に、DACL または SACL 情報が必要な場合は、対応する両方のパラメーターを NULL にすることはできません。

pOwner、pGrouppListOfAccessEntries、または pListOfAuditEntries パラメーターによって返されるバッファーの使用が完了したら、LocalFree 関数を呼び出して解放します。

LookupSecurityDescriptorParts 関数は、独自のオブジェクトにセキュリティを実装または公開する信頼されたサーバーを対象としています。 この関数は、信頼されたサーバーが必要とする場合があるため、ストリームへのシリアル化とディスクへの格納に適した自己相対セキュリティ記述子と連携します。

注意

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

要件

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

こちらもご覧ください

エース

ACL

クライアント/サーバー Access Control関数

クライアント/サーバー Access Controlの概要

EXPLICIT_ACCESS

GetExplicitEntriesFromAcl

LocalFree

SECURITY_DESCRIPTOR

SID

トラスティ