SetProcessDynamicEnforcedCetCompatibleRanges 함수(processthreadsapi.h)

참고

이 API는 2020년 11월에 릴리스된 업데이트에서 19041 SDK에 추가되었습니다.

지정된 프로세스에 대해 동적으로 적용되는 CETCOMPAT 범위를 설정합니다.

구문

BOOL SetProcessDynamicEnforcedCetCompatibleRanges(
  HANDLE                                  Process,
  USHORT                                  NumberOfRanges,
  PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE Ranges
);

매개 변수

Process

프로세스에 대한 핸들입니다. 이 핸들에는 PROCESS_SET_INFORMATION 액세스 권한이 있어야 합니다. 자세한 내용은 프로세스 보안 및 액세스 권한을 참조하세요.

NumberOfRanges

설정할 동적 적용 CETCOMPAT 범위의 수를 제공합니다.

Ranges

동적으로 적용되는 CETCOMPAT 범위 배열에 대한 포인터입니다. 이 구조에 대한 자세한 내용은 PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE 참조하세요.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 함수가 실패하더라도 제공된 CETCOMPAT 범위의 일부가 성공적으로 처리되었을 수 있습니다. 호출자는 범위를 통해 지정된 각 개별 CETCOMPAT 범위의 플래그를 검사 성공적으로 처리되었는지 확인해야 합니다.

설명

사용자 모드 HSP(하드웨어 적용 스택 보호)는 CPU가 하드웨어에서 지원하는 경우 섀도 스택 메커니즘을 사용하여 런타임에 함수 반환 주소를 확인하는 보안 기능입니다. HSP 호환 모드에서는 CETCOMPAT(섀도 스택)와 호환되는 것으로 간주되는 모듈에서 발생하는 섀도 스택 위반만 치명적입니다. CETCOMPAT로 간주되려면 이진 파일에 대해 CETCOMPAT 로 컴파일하거나 동적 코드에 SetProcessDynamicEnforcedCetCompatibleRanges 를 사용하여 표시해야 합니다. HSP strict 모드에서는 모든 섀도 스택 위반이 치명적입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 버전 2004(10.0; 빌드 19041.662)
지원되는 최소 서버 Windows Server 버전 2004(10.0; 빌드 19041.662)
머리글 processthreadsapi.h