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 結構的指標,指定所存取物件之泛型與特定和標準存取類型的對應。 此對應結構應該安全存取 (,也就是說,在傳遞至此例程之前,如有必要) 擷取。
傳回值
傳回碼 | Description |
---|---|
STATUS_SUCCESS | 已成功修改對象的安全性描述元。 |
STATUS_BAD_DESCRIPTOR_FORMAT | 提供之物件的安全性描述元不是以自我相對格式表示。 |
STATUS_NO_SECURITY_ON_OBJECT | 對象沒有安全性描述項。 |
備註
SeSetSecurityDescriptorInfo 會修改對象的現有安全性描述元。 如果對象沒有安全性描述元, 則對 SeSetSecurityDescriptorInfo 的呼叫將會失敗。
若要指定物件是否支援 (ACE) 的訪問控制項目自動繼承,請使用 SeSetSecurityDescriptorInfoEx。
安全性描述項可以是絕對或自我相對形式。 在自我相對形式中,結構的所有成員都會連續位於記憶體中。 在絕對形式中,結構只包含成員的指標。
如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程序開發人員的 Windows 安全性模型 ,以及 Windows SDK 中這些主題的相關文件。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
另請參閱
RtlCreateSecurityDescriptorRelative