共用方式為


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 值,例如下列其中一項:

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

言論

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

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

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

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

要求

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

另請參閱

FILE_STREAM_INFORMATION

SECURITY_DESCRIPTOR

SECURITY_INFORMATION