SeSetSecurityDescriptorInfo 関数 (ntifs.h)

SeSetSecurityDescriptorInfo ルーチンは、オブジェクトのセキュリティ記述子を設定します。

構文

NTSTATUS SeSetSecurityDescriptorInfo(
  [in, optional] PVOID                 Object,
  [in]           PSECURITY_INFORMATION SecurityInformation,
                 PSECURITY_DESCRIPTOR  ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor,
  [in]           POOL_TYPE             PoolType,
  [in]           PGENERIC_MAPPING      GenericMapping
);

パラメーター

[in, optional] Object

セキュリティ記述子を設定するオブジェクトへのポインター。 これは、セキュリティ クォータ情報を更新するために使用されます。

[in] SecurityInformation

オブジェクトに適用するセキュリティ情報を指定するビットマスクへのポインター。 次の値の 1 つ以上を組み合わせて使用できます。

説明
DACL_SECURITY_INFORMATION オブジェクトの随意アクセス制御リスト (DACL) が設定されていることを示します。 WRITE_DACアクセスが必要です。
GROUP_SECURITY_INFORMATION オブジェクトのプライマリ グループ識別子が設定されていることを示します。 WRITE_OWNERアクセスが必要です。
OWNER_SECURITY_INFORMATION オブジェクトの所有者識別子が設定されていることを示します。 WRITE_OWNERアクセスが必要です。
SACL_SECURITY_INFORMATION オブジェクトのシステム ACL (SACL) が設定されていることを示します。 ACCESS_SYSTEM_SECURITYアクセスが必要です。

ModificationDescriptor

オブジェクトに適用される入力セキュリティ記述子。 このルーチンの呼び出し元は、 SeSetSecurityDescriptorInfo を呼び出す前に渡されたセキュリティ記述子をプローブしてキャプチャし、後で解放することが必要です。

[in, out] ObjectsSecurityDescriptor

オブジェクトのセキュリティ記述子へのポインターへのポインター。 セキュリティ記述子は自己相対形式である必要があります。 呼び出し元は、不要になったときにこの構造体を解放する役割を担います。

[in] PoolType

新しいセキュリティ記述子を割り当てるときに使用するプールの種類を指定します。次のいずれかになります。

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

通常、IRQL >= DISPATCH_LEVELまたは任意のスレッド コンテキストでバッファーにアクセスする場合、呼び出し元は PagedPool を指定します。それ以外の場合は NonPagedPool を指定します。

NonPagedPoolMustSucceed および NonPagedPoolCacheAlignedMustS プールの種類は古く、使用しないでください。

[in] GenericMapping

アクセスするオブジェクトの特定のアクセス型と標準アクセス型へのジェネリックのマッピングを指定するGENERIC_MAPPING構造体へのポインター。 このマッピング構造は、このルーチンに渡される前に安全にアクセスできる (つまり、必要に応じてキャプチャされる) ことが予想されます。

戻り値

リターン コード 説明
STATUS_SUCCESS オブジェクトのセキュリティ記述子が正常に変更されました。
STATUS_BAD_DESCRIPTOR_FORMAT 指定されたオブジェクトのセキュリティ記述子が自己相対形式ではありません。
STATUS_NO_SECURITY_ON_OBJECT オブジェクトにはセキュリティ記述子がありません。

注釈

SeSetSecurityDescriptorInfo は、オブジェクトの既存のセキュリティ記述子を変更します。 オブジェクトにセキュリティ記述子がない場合、 SeSetSecurityDescriptorInfo の呼び出しは失敗します。

オブジェクトがアクセス制御エントリ (ACE) の自動継承をサポートするかどうかを指定するには、 SeSetSecurityDescriptorInfoEx を使用します。

セキュリティ記述子は、絶対または自己相対形式にすることができます。 自己相対形式では、構造体のすべてのメンバーがメモリ内に連続して配置されます。 絶対形式では、構造体にはメンバーへのポインターのみが含まれます。

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

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL

こちらもご覧ください

エース

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx