SeAccessCheck 함수(wdm.h)
SeAccessCheck 는 요청된 액세스 권한을 보안 설명자 및 개체 소유자로 보호되는 개체에 부여할 수 있는지 여부를 결정합니다.
구문
BOOLEAN SeAccessCheck(
[in] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
[in] BOOLEAN SubjectContextLocked,
[in] ACCESS_MASK DesiredAccess,
[in] ACCESS_MASK PreviouslyGrantedAccess,
[out] PPRIVILEGE_SET *Privileges,
[in] PGENERIC_MAPPING GenericMapping,
[in] KPROCESSOR_MODE AccessMode,
[out] PACCESS_MASK GrantedAccess,
[out] PNTSTATUS AccessStatus
);
매개 변수
[in] SecurityDescriptor
액세스되는 개체를 보호하는 보안 설명자를 설명하는 SECURITY_DESCRIPTOR 구조체에 대한 포인터입니다.
[in] SubjectSecurityContext
주체의 캡처된 보안 컨텍스트를 지정하는 불투명 SECURITY_SUBJECT_CONTEXT 구조체에 대한 포인터입니다.
[in] SubjectContextLocked
사용자의 주체 컨텍스트가 잠겨 있는지 여부를 나타내는 부울 값이므로 다시 잠글 필요가 없습니다.
[in] DesiredAccess
호출자가 획득하려는 액세스 권한에 대한 ACCESS_MASK 비트 마스크를 지정합니다. 호출자가 MAXIMUM_ALLOWED 비트를 설정하는 경우 루틴은 모든 DACL 검사를 수행합니다. 그러나 호출자가 ACCESS_SYSTEM_SECURITY 또는 WRITE_OWNER 비트를 설정하여 특별히 요청하지 않는 한 SeAccessCheck 는 권한 검사를 수행하지 않습니다.
[in] PreviouslyGrantedAccess
권한 보유의 결과로 부여된 액세스 권한과 같이 이미 부여된 액세스 권한의 ACCESS_MASK 비트 마스크를 지정합니다.
[out] Privileges
액세스 유효성 검사의 일부로 사용될 PRIVILEGE_SET 구조체의 주소로 설정할 호출자 제공 변수에 대한 포인터이거나 이 매개 변수는 NULL일 수 있습니다. 반환된 버퍼(있는 경우)는 SeFreePrivileges를 사용하여 호출자가 해제해야 합니다.
[in] GenericMapping
이 개체 형식과 연결된 GENERIC_MAPPING 구조체에 대한 포인터입니다. 이 값은 각 GENERIC_XXX 액세스 권한에 내포된 특정 액세스 권한을 지정합니다.
[in] AccessMode
검사 사용할 액세스 모드(UserMode 또는 KernelMode)를 지정합니다.
[out] GrantedAccess
부여된 액세스 권한을 나타내는 반환된 액세스 마스크에 대한 포인터입니다. 호출자가 MAXIMUM_ALLOWED 지정하고 SecurityDescriptor 의 DACL이 NULL인 경우 루틴은 호출자가 명시적으로 요청하는 추가 액세스와 GENERIC_ALL 반환합니다.
[out] AccessStatus
액세스가 거부된 이유를 나타내는 상태 값에 대한 포인터입니다.
반환 값
액세스가 허용되면 SeAccessCheck 은 TRUE를 반환합니다.
설명
SeAccessCheck 는 요청되는 액세스에 따라 SeTakeOwnershipPrivilege 및 SeSecurityPrivilege에 대한 권한 테스트를 수행할 수 있습니다. 운영 체제의 향후 릴리스에서 추가 권한 테스트를 수행할 수 있습니다.
이 루틴은 WRITE_DAC 또는 READ_CONTROL 액세스 권한을 부여하기 위해 호출자가 개체의 소유자인지 여부를 검사 수도 있습니다.
이 루틴이 FALSE를 반환하는 경우 호출자는 반환된 AccessStatus 를 반환 값으로 사용해야 합니다. 즉, 호출자는 반환 값 STATUS_ACCESS_DENIED 또는 기타 특정 STATUS_XXX 값을 하드 코딩하지 않아야 합니다.
보안 및 액세스 제어에 대한 자세한 내용은 드라이버 개발자를 위한 Windows 보안 모델 및 Microsoft Windows SDK 이러한 topics 대한 설명서를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |