Share via


PSECURE_MEMORY_CACHE_CALLBACK 콜백 함수(winnt.h)

보안 메모리 범위가 해제되거나 보호가 변경될 때 호출되는 AddSecureMemoryCacheCallback 함수에 이전에 등록된 애플리케이션 정의 함수입니다.

PSECURE_MEMORY_CACHE_CALLBACK 형식은 이 콜백 함수에 대한 포인터를 정의합니다. SecureMemoryCacheCallback 은 애플리케이션 정의 함수 이름의 자리 표시자입니다.

구문

PSECURE_MEMORY_CACHE_CALLBACK PsecureMemoryCacheCallback;

BOOLEAN PsecureMemoryCacheCallback(
  [in] PVOID Addr,
  [in] SIZE_T Range
)
{...}

매개 변수

[in] Addr

메모리 범위의 시작 주소입니다.

[in] Range

메모리 범위의 크기(바이트)입니다.

반환 값

반환 값은 이 함수의 성공 또는 실패를 나타냅니다.

호출자가 지정된 메모리 범위를 보호한 경우 이 함수는 메모리의 보안을 해제하고 TRUE를 반환해야 합니다.

호출자가 지정된 메모리 범위를 보호하지 않은 경우 이 함수는 FALSE를 반환해야 합니다.

설명

콜백 함수가 등록되면 지정된 메모리 범위를 해제하거나 보호를 변경하려고 시도한 후에 호출됩니다. 애플리케이션이 지정된 메모리 범위의 일부를 보호한 경우 콜백 함수는 보안 메모리 범위에 대한 애플리케이션의 캐시된 메모리 매핑을 모두 무효화하고 메모리 범위의 보안 부분을 보호하지 않고 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE를 반환해야 합니다.

애플리케이션은 MmSecureVirtualMemory 및 MmUnsecureVirtualMemory 함수를 사용하여 실제로 범위를 보호하고 보안을 해제하는 디바이스 드라이버에 요청을 전송하여 메모리 범위를 보호하고 보안을 해제합니다. 다른 유형의 보안 또는 잠긴 메모리에 대한 작업은 이 콜백을 트리거하지 않습니다.

콜백 함수를 트리거하는 함수 호출의 예로는 VirtualFree, VirtualFreeEx, VirtualProtect, VirtualProtectExUnmapViewOfFile 함수에 대한 호출이 포함됩니다.

콜백 함수는 힙 작업에 의해 트리거될 수도 있습니다. 이 경우 함수는 콜백을 트리거한 힙에 대해 더 이상 작업을 수행해서는 안 됩니다. 여기에는 프라이빗 힙 또는 프로세스의 기본 힙에서 힙 함수 를 호출하거나, 프로세스의 기본 힙을 암시적으로 사용하는 mallocfree와 같은 표준 라이브러리 함수를 호출하는 작업이 포함됩니다.

콜백 함수를 등록 취소하려면 RemoveSecureMemoryCacheCallback 함수를 사용합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 WINDOWS Vista SP1 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winnt.h(Windows.h 포함)

추가 정보

AddSecureMemoryCacheCallback

RemoveSecureMemoryCacheCallback