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
位掩碼的指標,指定要套用至 對象的安全性資訊。 可以是下列一或多個值的組合。
價值 | 意義 |
---|---|
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 (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
另請參閱
RtlCreateSecurityDescriptorRelative