共用方式為


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

NonPagedPoolMustSucceedNonPagedPoolCacheAlignedMustS 集區類型已過時,不應再使用。

[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

另請參閱

Ace

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx