SeAccessCheckFromStateEx 函式 (ntifs.h)
SeAccessCheckFromStateEx 會檢查要求的訪問許可權是否可以授與受安全性描述元和選擇性對象擁有者保護的物件。
語法
BOOLEAN SeAccessCheckFromStateEx(
PSECURITY_DESCRIPTOR SecurityDescriptor,
PACCESS_TOKEN PrimaryToken,
PACCESS_TOKEN ClientToken,
ACCESS_MASK DesiredAccess,
ACCESS_MASK PreviouslyGrantedAccess,
PPRIVILEGE_SET *Privileges,
PGENERIC_MAPPING GenericMapping,
KPROCESSOR_MODE AccessMode,
PACCESS_MASK GrantedAccess,
PNTSTATUS AccessStatus
);
參數
SecurityDescriptor
[in]包含保護所存取物件之安全性資訊之 SECURITY_DESCRIPTOR 結構的指標。
PrimaryToken
[in]主要令牌之不透明 ACCESS_TOKEN 結構的指標。 此結構提供執行存取檢查所需的令牌資訊。
ClientToken
[in_opt]用戶端令牌之不透明ACCESS_TOKEN結構的選擇性指標。
DesiredAccess
[in]ACCESS_MASK 值,指定要檢查的存取權。
PreviouslyGrantedAccess
[in]ACCESS_MASK 值,指定已授與使用者的任何存取權;例如,由於擁有許可權。
Privileges
[out]PRIVILEGE_SET 結構的指標,其中會傳回許可權集,以指出用來作為存取驗證一部分的任何許可權。
GenericMapping
[in]與這個物件類型相關聯的 GENERIC_MAPPING 結構的指標。
AccessMode
[in]KPROCESSOR_MODE值,指定要用於檢查中的處理器模式。 AccessMode 可以是 KernelMode 或 UserMode。 較低層級的驅動程式應指定 KernelMode。
GrantedAccess
[out]傳回之 ACCESS_MASK 值的指標,指出已授與存取權。
AccessStatus
[out]可傳回的 NT 狀態值指標,指出為何拒絕存取。 請參閱。
傳回值
允許存取時,SeAccessCheckFromStateEx 會傳回 TRUE;如果不允許存取,則會傳回 FALSE。
言論
SeAccessCheckFromStateEx 可能會根據所要求的存取權來執行下列許可權的測試:
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
此例程也可能檢查呼叫端是否為對象的擁有者,以便授與WRITE_DAC或READ_CONTROL存取權。
如果這個例程傳回 FALSE,呼叫端應該使用傳回的 AccessStatus 做為其傳回值。 也就是說,呼叫端應該避免將傳回值硬式編碼為 STATUS_ACCESS_DENIED 或任何其他特定STATUS_XXX 值。
此例程可能從 DPC 層級呼叫,因此不可分頁。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 |
標頭 | ntifs.h |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |