ZwFlushVirtualMemory 함수(ntifs.h)

ZwFlushVirtualMemory 루틴은 데이터 파일이 수정된 경우 데이터 파일에 다시 매핑되는 지정된 프로세스의 가상 주소 공간 내에서 다양한 가상 주소를 플러시합니다.

구문

NTSYSAPI NTSTATUS ZwFlushVirtualMemory(
  [in]      HANDLE           ProcessHandle,
  [in, out] PVOID            *BaseAddress,
  [in, out] PSIZE_T          RegionSize,
  [out]     PIO_STATUS_BLOCK IoStatus
);

매개 변수

[in] ProcessHandle

플러시할 페이지가 있는 컨텍스트의 프로세스에 대한 열린 핸들입니다. Ntddk.h에 정의된 NtCurrentProcess 매크로를 사용하여 현재 프로세스를 지정합니다.

[in, out] BaseAddress

가상 주소 범위의 기본 주소에 대한 포인터입니다.

항목에서 이 매개 변수는 플러시할 페이지 영역의 기본 주소 초기 값에 대한 포인터를 지정합니다.

반환 시 이 매개 변수는 플러시된 지역의 기본 주소를 수신하는 변수에 대한 포인터를 제공합니다.

[in, out] RegionSize

가상 주소 범위의 크기(바이트)입니다.

항목에서 이 매개 변수는 디스크에 플러시할 페이지 영역의 크기(바이트)의 초기 값에 대한 포인터를 지정합니다. 이 인수는 ZwFlushVirtualMemory에 의해 다음 호스트 페이지 크기 경계로 반올림됩니다. 이 값을 0으로 지정하면 기본 주소에서 범위 끝까지 매핑된 범위가 플러시됩니다.

반환 시 이 매개 변수는 페이지의 플러시된 영역의 실제 크기(바이트)를 수신하는 변수에 대한 포인터를 지정합니다.

[out] IoStatus

IO_STATUS_BLOCK 구조체에 대한 포인터입니다. 이 구조체는 마지막으로 시도한 I/O 작업에 대한 I/O 상태 값이 출력에 저장되는 위치입니다.

반환 값

ZwFlushVirtualMemory는 STATUS_SUCCESS 또는 오류 상태 코드를 반환합니다. 가능한 오류 상태 코드에는 다음이 포함됩니다.

반환 코드 설명
STATUS_ACCESS_DENIED 지정된 ProcessHandle 매개 변수가 유효한 프로세스 핸들이 아닙니다.
STATUS_INSUFFICIENT_RESOURCES 이 함수에 필요한 추가 리소스를 사용할 수 없습니다.
STATUS_INVALID_PARAMETER_2 지정한 BaseAddress 가 가상 주소 공간 내에서 잘못된 주소이거나 RegionSize 가 잘못되었습니다.
STATUS_INVALID_HANDLE 지정된 ProcessHandle 매개 변수가 유효한 프로세스 핸들이 아닙니다.
STATUS_NOT_MAPPED_VIEW 제공된 BaseAddress에 대한 가상 주소 공간 설명자를 배치할 수 없습니다.
STATUS_PROCESS_IS_TERMINATING 프로세스 및 연결된 가상 주소 공간이 삭제되었습니다.
STATUS_FILE_LOCK_CONFLICT 파일 시스템에서 잠금 충돌이 발생했습니다.

설명

이 루틴은 입력 매개 변수로 데이터 파일을 매핑하는 가상 메모리의 주소 범위를 허용합니다. 파일이 메모리에 복사된 이후 이 범위의 메모리가 수정된 경우 루틴은 이 메모리를 데이터 파일로 다시 플러시합니다.

커널 모드 드라이버에 대한 메모리 관리 지원에 대한 자세한 내용은 Windows 드라이버용 메모리 관리를 참조하세요.

참고

ZwFlushVirtualMemory 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwFlushVirtualMemory" 대신 "NtFlushVirtualMemory" 이름을 사용해야 합니다.

커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxxZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

추가 정보

ZwAllocateVirtualMemory