SeAccessCheckFromState 函式 (ntifs.h)

SeAccessCheckFromState 會檢查要求的訪問許可權是否可以授與受安全性描述元和選擇性對象擁有者保護的物件。

語法

BOOLEAN SeAccessCheckFromState(
  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  PTOKEN_ACCESS_INFORMATION PrimaryTokenInformation,
  PTOKEN_ACCESS_INFORMATION ClientTokenInformation,
  ACCESS_MASK               DesiredAccess,
  ACCESS_MASK               PreviouslyGrantedAccess,
  PPRIVILEGE_SET            *Privileges,
  PGENERIC_MAPPING          GenericMapping,
  KPROCESSOR_MODE           AccessMode,
  PACCESS_MASK              GrantedAccess,
  PNTSTATUS                 AccessStatus
);

參數

SecurityDescriptor

[in]包含保護所存取物件之安全性資訊之 SECURITY_DESCRIPTOR 結構的指標。

PrimaryTokenInformation

[in]從主要令牌擷取 之TOKEN_ACCESS_INFORMATION 結構的指標。 此結構提供執行存取檢查所需的令牌資訊。

ClientTokenInformation

[in_opt]從用戶端令牌擷取 之TOKEN_ACCESS_INFORMATION 結構的選擇性指標。

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 狀態值指標,表示拒絕存取的原因。 請參閱<備註>。

傳回值

如果允許存取,SeAccessCheckFromState 會傳回 TRUE;如果不允許存取,則會傳回 FALSE。

備註

SeAccessCheckFromState 可能會根據所要求的存取權來執行下列許可權的測試:

  • SeTakeOwnershipPrivilege
  • SeSecurityPrivilege

此例程也可能會檢查呼叫端是否為對象的擁有者,以便授與WRITE_DAC或READ_CONTROL存取權。

如果這個例程傳回 FALSE,呼叫端應該使用傳回的 AccessStatus 做為其傳回值。 也就是說,呼叫端應該避免硬式編碼傳回值STATUS_ACCESS_DENIED或任何其他特定STATUS_XXX 值。

此例程可能從 DPC 層級呼叫,因此不可分頁。

規格需求

需求
最低支援的用戶端 Windows 2000
標頭 ntifs.h (包含 ntifs.h)

另請參閱

SeAccessCheck

SeAccessCheckFromStateEx