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 는 KernelMode 또는 UserMode일 수 있습니다. 하위 수준 드라이버는 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 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |