共用方式為


FltSetSecurityObject 函式 (fltkernel.h)

FltSetSecurityObject 設定物件的安全性狀態。

語法

NTSTATUS FLTAPI FltSetSecurityObject(
  [in] PFLT_INSTANCE        Instance,
  [in] PFILE_OBJECT         FileObject,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

參數

[in] Instance

呼叫端的不透明實例指標。 這是必要參數,而且無法 NULL

[in] FileObject

要設定其安全性狀態之物件的檔案物件指標。 呼叫端必須具有數據表的 Meaning 資料行中指定的存取權,如 SecurityInformation 參數的描述所示。 這是必要參數,而且無法 NULL

[in] SecurityInformation

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

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

[in] SecurityDescriptor

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

傳回值

FltSetSecurityObject 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

傳回碼 描述
STATUS_ACCESS_DENIED 呼叫端沒有必要的存取權。 這是錯誤碼。
STATUS_ACCESS_VIOLATION SecurityDescriptor 是 NULL 指標 。 這是錯誤碼。
STATUS_INSUFFICIENT_RESOURCES 無法擷取對象的安全性描述元。 這是錯誤碼。
STATUS_INVALID_ACL 對象的安全性描述元包含無效的 ACL。 這是錯誤碼。
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor 未指向有效的安全性描述元。 這是錯誤碼。
STATUS_INVALID_SID 對象的安全性描述元包含無效的 SID。 這是錯誤碼。
STATUS_UNKNOWN_REVISION 物件之安全性描述元的修訂層級未知或不受支援。 這是錯誤碼。
STATUS_NOT_IMPLEMENTED FltSetSecurityObject 例程存在,但在呼叫它的操作系統環境中不支援。

言論

從 Windows Vista 開始,FltSetSecurityObject 例程已存在並支援。 在 Windows 2000、Windows XP 和 Server 2003 SP1 中,例程存在但不受支援,如果在這些環境中呼叫,則會傳回STATUS_NOT_IMPLEMENTED。

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

如需安全性和訪問控制的詳細資訊,請參閱 Windows SDK 中有關這些主題的檔。

要求

要求 價值
目標平臺 普遍
標頭 fltkernel.h (包括 Fltkernel.h)
連結庫 FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

另請參閱

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwQuerySecurityObject

ZwSetSecurityObject

FltQuerySecurityObject