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 可以是 KernelModeUserMode。 較低層級的驅動程序應該指定 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

另請參閱

SeAccessCheck

SeAccessCheckFromState