次の方法で共有


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

通常、呼び出し元 PagedPoolを指定するか、IRQL >= DISPATCH_LEVELまたは任意のスレッド コンテキストでバッファーにアクセスする場合は 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 のこれらのトピックに関するドキュメントを参照してください。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

関連項目

ACE

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptorする

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptorする

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

seSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx