共用方式為


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 結構的指標,指定所存取物件之泛型與特定和標準存取類型的對應。 此對應結構應該在傳遞至此例程之前安全存取(也就是在必要時擷取)。

傳回值

傳回碼 描述
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

另請參閱

ACE

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx