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
要設定其安全性狀態之物件的檔案物件指標。 呼叫端必須具有 SecurityInformation 參數描述中所顯示數據表的 Meaning 資料行中指定的存取權。 這個參數是必要的,而且不能是 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 值,例如下列其中一項:
傳回碼 | Description |
---|---|
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 例程存在,但在呼叫它的操作系統環境中不支援。 |
備註
FltSetSecurityObject 例程會從 Windows Vista 開始存在並支援。 在 Windows 2000、Windows XP 和 Server 2003 SP1 中,例程存在但不支援,而且會在上述任何環境中呼叫時傳回STATUS_NOT_IMPLEMENTED。
安全性描述元可以是絕對或自我相對形式。 在自我相對形式中,結構的所有成員都會連續地位於記憶體中。 在絕對形式中,結構只會包含成員的指標。 如需詳細資訊,請參閱 絕對和 Self-Relative 安全性描述元。
如需安全性和訪問控制的詳細資訊,請參閱 Windows SDK 中有關這些主題的檔。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
Dll | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |