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 |
関連項目
RtlCreateSecurityDescriptorの
RtlCreateSecurityDescriptorRelativeの
RtlLengthSecurityDescriptorをする
RtlSetDaclSecurityDescriptorの
RtlSetOwnerSecurityDescriptorをする
RtlValidSecurityDescriptorの
seSetAccessStateGenericMappingの
SeSetSecurityDescriptorInfoExの