다음을 통해 공유


IsBadCodePtr 함수(winbase.h)

호출 프로세스에서 지정된 주소의 메모리에 대한 읽기 권한이 있는지 여부를 확인합니다.

중요 이 함수는 사용되지 않으므로 사용하면 안 됩니다. 이름에도 불구하고 포인터가 유효하거나 가리키는 메모리가 안전하게 사용되도록 보장하지는 않습니다. 자세한 내용은 이 페이지의 설명을 참조하세요.
 

구문

BOOL IsBadCodePtr(
  [in] FARPROC lpfn
);

매개 변수

[in] lpfn

메모리 주소에 대한 포인터입니다.

반환 값

호출 프로세스에 지정된 메모리에 대한 읽기 권한이 있는 경우 반환 값은 0입니다.

호출 프로세스에 지정된 메모리에 대한 읽기 권한이 없는 경우 반환 값은 0이 아닙니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

애플리케이션이 디버깅 버전으로 컴파일되고 프로세스에 지정된 메모리 위치에 대한 읽기 권한이 없는 경우 함수는 어설션을 발생시키고 디버거에 침입합니다. 디버거를 벗어나면 함수는 평소와 같이 계속되며 0이 아닌 값을 반환합니다. 이 동작은 디버깅 지원으로 의도적으로 수행됩니다.

설명

선점 멀티태스킹 환경에서는 다른 스레드가 테스트 중인 메모리에 대한 프로세스의 액세스를 변경할 수 있습니다. 함수가 프로세스에 지정된 메모리에 대한 읽기 권한이 있음을 나타내는 경우에도 메모리에 액세스하려고 할 때 구조적 예외 처리를 사용해야 합니다. 구조적 예외 처리를 사용하면 시스템에서 액세스 위반 예외가 발생하는 경우 프로세스에 알릴 수 있으므로 프로세스에서 예외를 처리할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

IsBadReadPtr

IsBadStringPtr

IsBadWritePtr