ntQuerySecurityObject 函式 (ntifs.h)
NtQuerySecurityObject 例程會擷取物件的安全描述元複本。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtQuerySecurityObject(
[in] HANDLE Handle,
[in] SECURITY_INFORMATION SecurityInformation,
[out] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] ULONG Length,
[out] PULONG LengthNeeded
);
參數
[in] Handle
要查詢其安全性描述項之物件的句柄。 此句柄必須具有 SecurityInformation 參數描述中所顯示之數據表的 Meaning 數據行中指定的存取權。
[in] SecurityInformation
SECURITY_INFORMATION值,指定要查詢的資訊做為下列一或多個組合。
值 | 意義 |
---|---|
OWNER_SECURITY_INFORMATION | 正在查詢對象的擁有者識別碼。 需要READ_CONTROL存取權。 |
GROUP_SECURITY_INFORMATION | 正在查詢物件的主要群組標識碼。 需要READ_CONTROL存取權。 |
SACL_SECURITY_INFORMATION | 正在查詢對象的系統 ACL (SACL) 。 需要ACCESS_SYSTEM_SECURITY存取權。 |
DACL_SECURITY_INFORMATION | 正在查詢 DACL) (物件的任意存取控制清單。 需要READ_CONTROL存取權。 |
[out] SecurityDescriptor
NtQuerySecurityObject 填入指定之安全描述元複本的呼叫端配置緩衝區。 SECURITY_DESCRIPTOR 結構會以自我相對格式傳回。
[in] Length
SecurityDescriptor 所指向緩衝區的大小,以位元組為單位。
[out] LengthNeeded
呼叫端配置的變數指標,該變數會接收儲存所複製安全描述元所需的位元組數目。
傳回值
NtQuerySecurityObject 會傳回STATUS_SUCCESS或適當的錯誤狀態。 可能的錯誤狀態代碼包括:
傳回碼 | Description |
---|---|
STATUS_ACCESS_DENIED | 句柄 沒有必要的存取權。 |
STATUS_BUFFER_TOO_SMALL | 緩衝區對於安全性描述元而言太小。 沒有任何安全性資訊複製到緩衝區。 |
STATUS_INVALID_HANDLE | 句柄 不是有效的句柄。 |
STATUS_OBJECT_TYPE_MISMATCH | 句柄 不是預期類型的句柄。 |
備註
迷你篩選應該呼叫 FltQuerySecurityObject。
安全性描述項可以是絕對或自我相對形式。 在自我相對形式中,結構的所有成員都會連續位於記憶體中。 在絕對形式中,結構只包含成員的指標。 如需詳細資訊,請參閱 絕對和 Self-Relative 安全性描述元。
NTFS 檔系統會對寫入至檔案磁碟的安全性描述元大小施加 64K 限制。 (FAT 檔系統不支援 files.) 的安全性描述項,因此,64K SecurityDescriptor 緩衝區保證足以保存傳回 的SECURITY_DESCRIPTOR 結構。
如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程序開發人員的 Windows 安全性模型 ,以及 Windows SDK 中這些主題的相關文件。
注意
如果在使用者模式中呼叫 NtQuerySecurityObject 函式,您應該使用名稱 “NtQuerySecurityObject”,而不是 “ZwQuerySecurityObject”。
針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxx 和 ZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxx 和 ZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs、PowerIrpDDis |