共用方式為


SeAssignSecurity 函式 (wdm.h)

SeAssignSecurity 例程會針對新物件建置自我相對安全性描述元,並指定其父目錄的安全性描述元,以及任何原本要求該對象的安全性描述項。

語法

NTSTATUS SeAssignSecurity(
  [in, optional] PSECURITY_DESCRIPTOR      ParentDescriptor,
  [in, optional] PSECURITY_DESCRIPTOR      ExplicitDescriptor,
  [out]          PSECURITY_DESCRIPTOR      *NewDescriptor,
  [in]           BOOLEAN                   IsDirectoryObject,
  [in]           PSECURITY_SUBJECT_CONTEXT SubjectContext,
  [in]           PGENERIC_MAPPING          GenericMapping,
  [in]           POOL_TYPE                 PoolType
);

參數

[in, optional] ParentDescriptor

緩衝區的指標,其中包含父目錄 的SECURITY_DESCRIPTOR ,如果有的話,包含要建立的新物件。 ParentDescriptor 可以是 NULL,或具有 NULL 系統存取控制清單, (SACL) 或 NULL 任意存取控制清單, (DACL) 。

[in, optional] ExplicitDescriptor

緩衝區的指標,其中包含套用至新物件之使用者所指定的 SECURITY_DESCRIPTORExplicitDescriptor 可以是 NULL,或具有 NULL SACL 或 NULL DACL。

[out] NewDescriptor

接收傳回 SECURITY_DESCRIPTOR的指標。 SeAssignSecurity 會從分頁記憶體集區配置緩衝區。

[in] IsDirectoryObject

指定新物件是否為目錄物件。 TRUE 表示物件包含其他物件。

[in] SubjectContext

緩衝區的指標,其中包含建立 物件之主體的安全性內容。 這是用來擷取新對象的預設安全性資訊,例如預設擁有者、主要群組和任意訪問控制。

[in] GenericMapping

描述從每個泛型許可權對應到隱含非泛型許可權之 GENERIC_MAPPING 結構的指標。

[in] PoolType

不使用這個參數。 保存新安全性描述元的緩衝區一律會從分頁集區配置。

傳回值

SeAssignSecurity 可以傳回下列其中一項:

傳回碼 Description
STATUS_SUCCESS
指派成功。
STATUS_INVALID_OWNER
為目標安全描述元擁有者提供的 SID 不是被授權指派為對象擁有者的 SID。
STATUS_PRIVILEGE_NOT_HELD
呼叫端沒有明確指派指定系統 ACL 所需的許可權 (SeSecurityPrivilege) 。

備註

傳回給呼叫端的最後一個安全描述項可能包含混合的資訊,部分會明確從新物件的父代提供。

SeAssignSecurity 假設尚未執行許可權檢查。 此例程會執行許可權檢查。

系統指派和任意 ACL 是由下表所示的邏輯所控管:

指定的明確 (非預設) ACL 指定的明確預設 ACL 未指定 ACL
從父代繼承的 ACL 指派指定的 ACL 指派繼承的 ACL 指派繼承的 ACL
父系中沒有可繼承的 ACL 指派指定的 ACL 指派預設 ACL 未指派 ACL
 

明確指定的 ACL,無論是預設 ACL,都可以是空的或 Null。 呼叫端必須是內核模式用戶端或適當許可權,才能明確指派預設或非預設系統 ACL。

新物件的擁有者和群組指派是由下列邏輯所控管:

  • 如果傳遞的安全性描述元包含擁有者,則會指派為新對象的擁有者。 否則,呼叫端的令牌會被視為判斷擁有者。 在令牌中,如果已指派預設擁有者,則為 。 否則,會指派呼叫端的使用者標識符。
  • 如果傳遞的安全性描述元包含群組,則會指派為新物件的群組。 否則,呼叫端的令牌會被視為決定群組。 在令牌中,若有指派預設群組,則為 。 否則,會指派呼叫端的主要群組標識符。

規格需求

需求
最低支援的用戶端 適用於 Windows 2000 和更新版本的 Windows。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS (storport) PowerIrpDDis (wdm)

另請參閱

GENERIC_MAPPING

IoGetFileObjectGenericMapping

SECURITY_DESCRIPTOR

SeDeassignSecurity