MmSecureVirtualMemoryEx 함수(ntddk.h)
이 루틴은 요청된 주소 범위를 검색하고 지정된 주소 범위를 보호가 더 제한적이고 삭제되지 않도록 보호합니다.
구문
HANDLE MmSecureVirtualMemoryEx(
PVOID Address,
SIZE_T Size,
ULONG ProbeMode,
ULONG Flags
);
매개 변수
Address
프로브 및 보안을 위한 기본 주소에 대한 포인터입니다.
Size
보호할 범위의 크기(바이트)를 지정합니다.
ProbeMode
허용되는 가장 제한적인 페이지 보호를 지정합니다. PAGE_READWRITE 사용하여 주소 범위가 읽기 가능하고 쓰기 가능한 상태로 유지되도록 지정하거나 PAGE_READONLY 사용하여 주소 범위만 읽을 수 있도록 지정합니다.
ProbeMode | 의미 |
---|---|
PAGE_READWRITE | 보호를 PAGE_NOACCESS 또는 PAGE_READONLY 변경할 수 없습니다. 다른 모든 보호 변경이 허용됩니다. |
PAGE_READONLY | 보호를 PAGE_NOACCESS 변경할 수 없습니다. 다른 모든 보호 변경이 허용됩니다. |
Flags
다음 플래그 중 하나 이상을 지정합니다.
플래그 | 설명 |
---|---|
MM_SECURE_EXCLUSIVE | 보안은 문제의 VAD에 이미 고정된 다른 보안이 없는 경우에만 성공합니다. |
MM_SECURE_NO_CHANGE | 적용된 후에는 제공된 가상 주소 지역에 대한 보호 변경이 허용되지 않습니다. 프로세스가 종료되는 경우에도 지역을 삭제할 수 있습니다. |
MM_SECURE_USER_MODE_ONLY | 이 보안에서 지정한 보호는 보호를 변경하려는 사용자 모드의 후속 호출에만 적용됩니다(커널 모드 호출자는 이 보안을 무시합니다). |
MM_SECURE_NO_INHERIT | 프로세스가 복제된 경우 부모 프로세스와 달리 자식 프로세스의 VAD는 보호되지 않습니다. |
반환 값
범위의 보안 해제에만 사용할 핸들과 유사한 값을 반환합니다.
보호 문제, 커밋되지 않은 메모리 또는 잘못된 매개 변수로 인해 범위를 잠글 수 없는 경우 이 루틴은 NULL을 반환합니다.
설명
제공된 보기에서 보호 변경이 허용되지 않도록 MM_SECURE_NO_CHANGE 지정해야 하는 경우 MmSecureVirtualMemoryEx 대신 MmSecureVirtualMemoryEx를 사용합니다.
이 함수의 반환 값은 MmUnsecureVirtualMemory에서만 사용할 수 있습니다. 드라이버는 해당 루틴을 호출하여 범위를 정상 상태로 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10, 버전 1809 |
머리글 | ntddk.h |
IRQL | APC_LEVEL |