NtSetSecurityObject 函式 (ntifs.h)

NtSetSecurityObject 例程會設定對象的安全性狀態。

語法

__kernel_entry NTSYSCALLAPI NTSTATUS NtSetSecurityObject(
  [in] HANDLE               Handle,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

參數

[in] Handle

要設定其安全性狀態的物件句柄。 這個句柄必須具有 SecurityInformation 參數描述中所顯示之數據表的 Meaning 數據行中指定的存取權。

[in] SecurityInformation

SECURITY_INFORMATION 值,指定要設定為下列一或多個組合的資訊。

意義
OWNER_SECURITY_INFORMATION 指出要設定對象的擁有者標識碼。 需要WRITE_OWNER存取權。
GROUP_SECURITY_INFORMATION 指出要設定物件的主要群組標識碼。 需要WRITE_OWNER存取權。
SACL_SECURITY_INFORMATION 表示要設定對象的系統 ACL (SACL) 。 需要ACCESS_SYSTEM_SECURITY存取權。
DACL_SECURITY_INFORMATION 指出要設定物件的 DACL) (任意存取控制清單。 需要WRITE_DAC存取權。

[in] SecurityDescriptor

要為物件設定之安全性描述元的指標。

傳回值

NtSetSecurityObject 會傳回STATUS_SUCCESS或適當的錯誤狀態。 可能的錯誤狀態代碼包括:

傳回碼 Description
STATUS_ACCESS_DENIED 呼叫端沒有必要的存取權。
STATUS_ACCESS_VIOLATION SecurityDescriptorNULL 指標。
STATUS_INSUFFICIENT_RESOURCES 無法擷取對象的安全性描述元。
STATUS_INVALID_ACL 對象的安全性描述元包含無效的 ACL。
STATUS_INVALID_HANDLE 句柄 不是有效的句柄。
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor 未指向有效的安全性描述元。
STATUS_INVALID_SID 對象的安全性描述元包含無效的 SID。
STATUS_OBJECT_TYPE_MISMATCH 句柄 不是預期類型的句柄。
STATUS_UNKNOWN_REVISION 對象的安全性描述元修訂層級未知或不支援。

備註

安全性描述元可以是絕對或自我相對形式。 在自我相對形式中,結構的所有成員都會連續地位於記憶體中。 在絕對形式中,結構只會包含成員的指標。 如需詳細資訊,請參閱 絕對和 Self-Relative 安全性描述元

如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程序開發人員的 Windows 安全性模型 ,以及 Windows SDK 中有關這些主題的檔。

Minifilters 應該使用 FltSetSecurityObject ,而不是 NtSetSecurityObject

NtSetSecurityObject 的呼叫端必須在 IRQL = PASSIVE_LEVEL且啟用特殊核心 APC 時執行

注意

如果對 NtSetSecurityObject 函式的呼叫發生在使用者模式中,您應該使用名稱 “NtSetSecurityObject”,而不是 “ZwSetSecurityObject”。

對於核心模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本在處理和解譯輸入參數的方式可能會有不同的行為。 如需例程 NtXxxZwXxx 版本之間的關聯性詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

規格需求

需求
最低支援的用戶端 Windows XP
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅一节)
DDI 合規性規則 HwStorPortProhibitedDIS、 PowerIrpDDis

另請參閱

FltSetSecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

使用原生系統服務例程的 Nt 和 Zw 版本

NtQuerySecurityObject

ZwSetSecurityObject