SetProcessDEPPolicy 함수(winbase.h)
32비트 프로세스에 대한 DEP(데이터 실행 방지) 및 DEP-ATL unk 에뮬레이션 설정을 변경합니다.
구문
BOOL SetProcessDEPPolicy(
[in] DWORD dwFlags
);
매개 변수
[in] dwFlags
다음 값 중 하나 이상이 될 수 있는 DWORD 입니다.
반환 값
함수가 성공하면 TRUE를 반환합니다.
함수가 실패하면 FALSE를 반환합니다. 이 함수에 대해 정의된 오류 값을 검색하려면 GetLastError를 호출합니다.
설명
SetProcessDEPPolicy 함수는 프로세스 생성 시 DEP 정책을 지정하지 않는 한 현재 프로세스에 대한 시스템 DEP 정책을 재정의합니다. 시스템 DEP 정책 설정은 OptIn 또는 OptOut이어야 합니다. 시스템 DEP 정책이 AlwaysOff 또는 AlwaysOn인 경우 SetProcessDEPPolicy 는 오류를 반환합니다. 프로세스에 DEP를 사용하도록 설정하면 SetProcessDEPPolicy 에 대한 후속 호출이 무시됩니다.
PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY 특성을 사용하여 프로세스 생성 시 지정된 DEP 정책은 프로세스 수명 동안 변경할 수 없습니다. 이 경우 SetProcessDEPPolicy 에 대한 호출은 ERROR_ACCESS_DENIED 실패합니다.
SetProcessDEPPolicy 는 32비트 프로세스에 대해서만 지원됩니다. 이 함수가 64비트 프로세스에서 호출되면 ERROR_NOT_SUPPORTED 함께 실패합니다.
ATL 7.1 이하에 기록된 애플리케이션은 실행 불가능으로 표시된 페이지에서 코드를 실행하려고 시도할 수 있습니다. 그러면 NX 오류가 트리거되고 애플리케이션이 종료됩니다. DEP-ATL thunk 에뮬레이션을 사용하면 그렇지 않으면 NX 오류를 트리거하는 애플리케이션이 DEP를 사용하도록 설정된 상태로 실행할 수 있습니다. ATL 버전에 대한 자세한 내용은 ATL 및 MFC 버전 번호를 참조하세요.
DEP-ATL thunk 에뮬레이션이 사용하도록 설정된 경우 시스템은 NX 오류를 가로채고, 지침을 에뮬레이트하고, 예외를 처리하여 애플리케이션이 계속 실행될 수 있도록 합니다. 프로세스에 대한 PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION 설정하여 DEP-ATL 썽크 에뮬레이션을 사용하지 않도록 설정하면 NX 오류가 가로채지 않습니다. 이는 DEP와의 호환성을 위해 애플리케이션을 테스트할 때 유용합니다.
다음 표에는 시스템 DEP 정책, DEP-ATL thunk 에뮬레이션 및 SetProcessDEPPolicy 간의 상호 작용이 요약되어 있습니다. 시스템 DEP 정책 설정을 얻으려면 GetSystemDEPPolicy 함수를 사용합니다.
시스템 DEP 정책 | DEP 동작 | DEP_ATL 썽크 에뮬레이션 동작 | SetProcessDEPPolicy 동작 |
---|---|---|---|
AlwaysOff 0 |
운영 체제 및 모든 프로세스에서 사용할 수 없습니다. | 해당 사항 없음 | 오류를 반환합니다. |
AlwaysOn 1 |
운영 체제 및 모든 프로세스에 대해 사용하도록 설정됩니다. | 사용 안 함. | 오류를 반환합니다. |
OptIn 2 Windows 클라이언트 버전에 대한 기본 구성입니다. |
운영 체제에 대해 사용하도록 설정되고 비시스템 프로세스에 대해 사용하지 않도록 설정됩니다. 관리자는 선택한 실행 파일에 대해 DEP를 명시적으로 사용하도록 설정할 수 있습니다. | 해당 사항 없음 |
DEP는 현재 프로세스에 대해 사용하도록 설정할 수 있습니다.
현재 프로세스에 DEP를 사용하도록 설정하면 해당 프로세스에 대해 DEP-ATL thunk 에뮬레이션을 사용하지 않도록 설정할 수 있습니다. |
Optout 3 Windows Server 버전에 대한 기본 구성입니다. |
운영 체제 및 모든 프로세스에 대해 사용하도록 설정됩니다. 관리자는 선택한 실행 파일에 대해 DEP를 명시적으로 사용하지 않도록 설정할 수 있습니다. | 사용. |
DEP는 현재 프로세스에 대해 사용하지 않도록 설정할 수 있습니다.
현재 프로세스에서 DEP를 사용하지 않도록 설정하면 해당 프로세스에 대해 DEP-ATL thunk 에뮬레이션이 자동으로 비활성화됩니다. |
이 함수를 호출하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0600 이상으로 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista SP1, Windows XP SP3 포함 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |