fltQuerySecurityObject 函式 (fltkernel.h)

FltQuerySecurityObject 會擷取物件的安全描述元複本。

語法

NTSTATUS FLTAPI FltQuerySecurityObject(
  [in]            PFLT_INSTANCE        Instance,
  [in]            PFILE_OBJECT         FileObject,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [in, out]       PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]            ULONG                Length,
  [out, optional] PULONG               LengthNeeded
);

參數

[in] Instance

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

[in] FileObject

正在查詢其安全性描述元之對象的檔案物件指標。 這個參數是必要的,而且不能是 NULL

[in] SecurityInformation

SECURITY_INFORMATION 值。 此參數是必要的,而且必須是下列其中一項:

SecurityInformation 值 意義
OWNER_SECURITY_INFORMATION 正在查詢對象的擁有者識別碼。 需要 READ_CONTROL 存取。
GROUP_SECURITY_INFORMATION 正在查詢物件的主要群組標識碼。 需要 READ_CONTROL 存取。
DACL_SECURITY_INFORMATION 正在查詢物件的 DACL) (任意存取控制清單。 需要 READ_CONTROL 存取。
SACL_SECURITY_INFORMATION 正在查詢對象的系統 ACL (SACL) 。 需要 ACCESS_SYSTEM_SECURITY 存取權。

[in, out] SecurityDescriptor

呼叫端提供的輸出緩衝區指標,該緩衝區會接收指定物件之安全描述元的複本。 SECURITY_DESCRIPTOR 結構會以自我相對格式傳回。 這個參數是選擇性的,而且可以是 NULL

[in] Length

SecurityDescriptor 緩衝區的大小,以位元組為單位。

[out, optional] LengthNeeded

呼叫端配置的變數指標,接收儲存 SecurityDescriptor 參數所指向之緩衝區中傳回之複製之安全性描述元所需的位元數目。 這個參數是選擇性的,而且可以是 NULL

傳回值

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

傳回碼 Description
STATUS_ACCESS_DENIED
呼叫端沒有必要的存取權。 這是錯誤碼。
STATUS_BUFFER_TOO_SMALL
緩衝區太小,無法包含安全性描述符。 沒有任何安全性資訊複製到緩衝區。 這是錯誤碼。

備註

安全性描述項可以是絕對或自我相對形式。 在自我相對形式中,結構的所有成員都會連續位於記憶體中。 在絕對形式中,結構只包含其成員的指標。

NTFS 檔案系統會對寫入檔案之磁碟的安全性描述符大小施加 64 KB 的限制。 (FAT 檔案系統不支援 files.) 的安全性描述項,因此 ,SecurityDescriptor 參數所指向的 64 KB 緩衝區保證足以保存傳回 的SECURITY_DESCRIPTOR 結構。

FileObject 參數指向的物件可以代表具名數據流。 如需具名數據流的詳細資訊,請參閱 FILE_STREAM_INFORMATION

如需安全性和訪問控制的詳細資訊,請參閱 Microsoft Windows SDK 檔。

規格需求

需求
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
Dll Fltmgr.sys
IRQL PASSIVE_LEVEL

另請參閱

FILE_STREAM_INFORMATION

SECURITY_DESCRIPTOR

SECURITY_INFORMATION