다음을 통해 공유


FSCTL_MOVE_FILE IOCTL(winioctl.h)

파일의 가상 클러스터 하나 이상을 하나의 논리적 클러스터에서 동일한 볼륨 내의 다른 클러스터로 재배치합니다. 이 작업은 조각 모음 중에 사용됩니다.

이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to volume
  FSCTL_MOVE_FILE,              // dwIoControlCode
  (LPVOID) lpInBuffer,          // MOVE_FILE_DATA structure
  (DWORD) nInBufferSize,        // size of input buffer
  NULL,                         // lpOutBuffer
  0,                            // nOutBufferSize
  (LPDWORD) lpBytesReturned,    // number of bytes returned
  (LPOVERLAPPED) lpOverlapped   // OVERLAPPED structure
);

설명

FSCTL_MOVE_FILE 제어 코드는 파일의 하나 이상의 가상 클러스터를 한 논리 클러스터에서 동일한 볼륨 내의 다른 클러스터로 재배치합니다. 이동할 파일이 스파스 파일이거나 압축된 파일인 경우 이동의 세분성은 16개의 클러스터입니다. 그렇지 않으면 세분성이 하나의 클러스터입니다.

조각 모음되지 않도록 열려 있는 파일을 표시하려면 lpInBuffer 매개 변수에 전달된 MARK_HANDLE_INFO 구조체의 HandleInfo 멤버에 MARK_HANDLE_PROTECT_CLUSTERS있는 FSCTL_MARK_HANDLE 컨트롤 코드를 사용하여 DeviceIoControl 함수를 호출합니다.

deviceIoControl 함수에서 FSCTL_GET_VOLUME_BITMAP 컨트롤 코드를 사용하여 반환한 비트맵은 특정 시점을 나타내며 볼륨에 쓰기 작업이 있는 경우 읽는 즉시 올바르지 않을 수 있습니다. 따라서 클러스터가 할당되지 않았음을 나타내는 최근 비트맵에도 불구하고 클러스터를 할당된 클러스터로 이동하려고 시도할 수 있습니다. FSCTL_MOVE_FILE 사용하는 프로그램은 이러한 가능성에 대비해야 합니다.

이 작업에 겹치는 I/O의 의미는 DeviceIoControl 항목의 설명 섹션을 참조하세요.

FSCTL_MOVE_FILE 제어 코드에서 지원하는 파일, 스트림 및 스트림 형식 목록은 조각 모음 파일 항목의 조각 모음에 지원되는 파일, 스트림 및 스트림 형식 섹션 참조하세요.

Windows 8 및 Windows Server 2012 이 코드는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 No
SMB 3.0 TFO(투명 장애 조치(failover)) No
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winioctl.h(Windows.h 포함)

추가 정보