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 |
こちらもご覧ください
RtlCreateSecurityDescriptorRelative