다음을 통해 공유


FSCTL_MARK_HANDLE IOCTL(winioctl.h)

지정된 파일 또는 디렉터리와 해당 변경 저널 레코드를 해당 파일 또는 디렉터리의 변경 내용에 대한 정보로 표시합니다.

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

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

설명

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

FSCTL_MARK_HANDLE 개별 파일 또는 디렉터리에서 작동하는 유일한 변경 저널 작업입니다. 사용자가 항목으로 수행할 수 있는 작업은 영향을 주지 않습니다. 대신 파일 또는 디렉터리에 정보를 추가하여 운영 체제에서 항목을 변경한 방법에 대한 정보를 제공하거나 항목에 프라이빗 데이터 스트림을 추가합니다.

파일 또는 디렉터리에 변경 내용이 있는 경우 FSCTL_MARK_HANDLE 추가된 정보도 파일 또는 디렉터리에 대해 만든 USN 레코드에 복사됩니다. 이러한 두 작업은 서로 독립적으로 발생할 수 있습니다. 예를 들어 USN 레코드가 존재하여 파일을 조각 모음할 수 없음으로 표시할 필요가 없으며 해당 USN 레코드의 내용을 업데이트하기 위해 파일 또는 디렉터리를 표시할 필요가 없습니다. FSCTL_MARK_HANDLE 항목을 표시할 수 있는 정보에 대한 자세한 내용은 MARK_HANDLE_INFO 참조하세요.

볼륨의 변경 저널이 삭제되거나 비활성 상태인 동안 FSCTL_MARK_HANDLE 사용하는 것은 오류가 아닙니다. 변경 저널이 있는 한 변경 저널의 상태에 관계없이 적절한 정보가 파일 또는 디렉터리에 적용됩니다.

원격 파일에 대한 타임스탬프를 올바르게 업데이트하지 못할 수 있습니다. 일관된 결과를 보장하려면 버퍼되지 않은 I/O를 사용합니다.

볼륨은 NTFS여야 합니다.

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

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

CsvF는 항상 직접 IO에 적합한 파일에 대해 USN_SOURCE_REPLICATION_MANAGEMENTMARK_HANDLE_PROTECT_CLUSTERS 발급합니다.

요구 사항

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

추가 정보