CSV_CONTROL_OP 열거형(ntifs.h)

FSCTL_CSV_CONTROL 제어 코드와 함께 사용할 CSV(클러스터 공유 볼륨) 제어 작업의 유형을 지정합니다.

Syntax

typedef enum _CSV_CONTROL_OP {
  CsvControlStartRedirectFile = 0x02,
  CsvControlStopRedirectFile = 0x03,
  CsvControlQueryRedirectState = 0x04,
  CsvControlQueryFileRevision = 0x06,
  CsvControlQueryMdsPath = 0x08,
  CsvControlQueryFileRevisionFileId128 = 0x09,
  CsvControlQueryVolumeRedirectState = 0x0a,
  CsvControlEnableUSNRangeModificationTracking = 0x0d,
  CsvControlMarkHandleLocalVolumeMount = 0x0e,
  CsvControlUnmarkHandleLocalVolumeMount = 0x0f,
  CsvControlGetCsvFsMdsPathV2 = 0x12,
  CsvControlDisableCaching = 0x13,
  CsvControlEnableCaching = 0x14,
  CsvControlStartForceDFO = 0x15,
  CsvControlStopForceDFO = 0x16,
  CsvControlQueryMdsPathNoPause = 0x17,
  CsvControlSetVolumeId = 0x18,
  CsvControlQueryVolumeId = 0x19
} CSV_CONTROL_OP, *PCSV_CONTROL_OP;

상수

 
CsvControlStartRedirectFile
값: 0x02
CSV 파일 리디렉션을 시작합니다.
CsvControlStopRedirectFile
값: 0x03
CSV 파일 리디렉션을 중지합니다.
CsvControlQueryRedirectState
값: 0x04
상태 리디렉션을 검색합니다. 이 값을 지정하면 CSV_QUERY_REDIRECT_STATE 구조도 사용해야 합니다.
CsvControlQueryFileRevision
값: 0x06
파일 수정 버전을 검색합니다. 이 값을 지정하면 CSV_QUERY_FILE_REVISION 구조도 사용해야 합니다.
CsvControlQueryMdsPath
값: 0x08
MDS 경로를 검색합니다. 이 값을 지정하면 CSV_QUERY_MDS_PATH 구조도 사용해야 합니다.
CsvControlQueryFileRevisionFileId128
값: 0x09
128비트 파일 수정 버전을 검색합니다. 이 값을 지정하면 CSV_QUERY_FILE_REVISION_FILE_ID_128 구조도 사용해야 합니다.
CsvControlQueryVolumeRedirectState
값: 0x0a
볼륨 상태 리디렉션을 검색합니다. 이 값을 지정하면 CSV_QUERY_VOLUME_REDIRECT_STATE 구조도 사용해야 합니다.
CsvControlEnableUSNRangeModificationTracking
값: 0x0d
USN 범위 추적을 사용하도록 설정합니다.
CsvControlMarkHandleLocalVolumeMount
값: 0x0e
VHD 파일이 루프백을 탑재하려고 할 때 는 핸들을 표시하고, I/O가 진행되지 않는 경우 짧은 시간 제한(현재 20초) 후에 CVSFS가 I/O에 실패하도록 요청하고 핸들을 무효화하도록 요청합니다.
CsvControlUnmarkHandleLocalVolumeMount
값: 0x0f
VHD 파일이 루프백을 탑재 해제하려고 하면 이전에 CsvControlMarkHandleLocalVolumeMount로 표시된 핸들의 표시를 해제합니다.
CsvControlGetCsvFsMdsPathV2
값: 0x12
MDS 경로의 버전 2를 검색합니다. 이 값을 지정하면 CSV_QUERY_MDS_PATH_V2 구조도 사용해야 합니다.
CsvControlDisableCaching
값: 0x13
CSV 파일의 캐싱을 사용하지 않도록 설정합니다.
CsvControlEnableCaching
값: 0x14
CSV 파일의 캐싱을 사용하도록 설정합니다.
CsvControlStartForceDFO
값: 0x15
CSVFS가 DFO(하위 수준 파일 개체)에서 I/O 하위 수준 전달을 시작하도록 합니다. 자세한 내용은 설명을 참조하세요.
CsvControlStopForceDFO
값: 0x16
DFO에서 CSVFS의 I/O 전달 강제 적용을 중지합니다. 자세한 내용은 설명을 참조하세요.
CsvControlQueryMdsPathNoPause
값: 0x17
CsvControlQueryMdsPath와 유사합니다. MDS 경로를 검색하지만 요청 시 CSV 볼륨이 일시 중지된 경우 마지막 조정 노드를 반환하는 대신 mdsNodeId 를 0xFFFFFFFF 설정합니다. 이렇게 하면 클라이언트가 조정 노드가 변경될 수 있음을 감지할 수 있습니다. CsvControlQueryMdsPathNoPause를 지정하면 CSV_QUERY_MDS_PATH 구조도 사용해야 합니다.
CsvControlSetVolumeId
값: 0x18
CSV 볼륨 GUID를 설정합니다. 자세한 내용은 설명을 참조하세요.
CsvControlQueryVolumeId
값: 0x19
CSV 볼륨 GUID를 사용할 수 있는지 여부를 쿼리합니다. 자세한 내용은 설명을 참조하세요.

설명

이 열거형을 사용하여 FSCTL_CSV_CONTROL 제어 코드를 호출하는 대안은 이 열거형 형식의 멤버를 캡슐화하는 CSV_CONTROL_PARAM 구조를 사용하는 것입니다.

CsvControlStartForceDFO 및 CsvControlStopForceDFO

CSVFS에서 파일 개체를 열면 CSVFS가 열려 있는 모든 사용자와 일치하는 하위 수준 파일 개체(DFO)인 하위 수준 파일 시스템(NTFS 또는 REFS)에서 열립니다. 해당 파일 개체는 CSVFS에서 파일을 여는 애플리케이션의 일부로 열리고 애플리케이션이 CSVFS의 파일 개체에 대한 핸들을 닫으면 닫힙니다. 내부적으로 CSVFS는 CSVFS에서 동일한 파일의 모든 열기 간에 공유되는 PFO(페이징 파일 개체)라는 추가 파일 개체를 엽니다. 기본적으로 CSVFS는 다음과 같은 많은 작업에 사용합니다.

  • Oplock 협상
  • 바이트 범위 잠금
  • 페이징 I/O 전달

일부 필터링 솔루션은 핸들을 특별한 방식으로 표시한 다음 일치하는 DFO에서 CSVFS를 통해 모든 읽기 및 쓰기를 하위 수준으로 전달해야 할 수 있습니다. 애플리케이션은 CsvControlStartForceDFO를 전송하여 CSVFS가 DFO에서 IO 하위 수준 전달을 강제로 시작할 수 있습니다. 나중에 애플리케이션은 CsvControlStopForceDFO를 사용하여 기본 동작으로 되돌리기 수 있습니다. CsvControlStartForceDFO를 보내는 데 사용된 핸들을 닫으면 애플리케이션이 CsvControlStopForceDFO를 보낸 것처럼 암시적으로 다시 되돌리기.

CsvControlSetVolumeId 및 CsvControlQueryVolumeId

이러한 컨트롤을 사용하면 CSVFS 아래의 하위 수준 파일 시스템에 연결된 파일 시스템 미니필터가 CSV 볼륨 GUID를 학습할 수 있습니다. 클러스터 물리적 디스크 리소스는 하위 수준 파일 시스템이 탑재된 후 이 GUID를 설정하므로 탑재하는 동안 필터가 연결되는 경우 사용할 수 없습니다. 필터를 연결하는 동안 파일 시스템 미니필터는 CsvControlQueryVolumeId를 실행하여 GUID를 이미 사용할 수 있는지 여부를 쿼리할 수 있습니다. csvflt가 수신하는지 확인하려면 컨트롤을 스택의 맨 위로 보내야 합니다. 볼륨 GUID를 아직 사용할 수 없는 경우 csvflt 는 STATUS_UNSUCCESSFUL 반환합니다. 볼륨 GUID를 아직 사용할 수 없는 경우 필터를 연결하지 않아야 합니다.

나중에 물리적 디스크 리소스는 볼륨 GUID를 사용하여 CsvControlSetVolumeId를 보냅니다. 스택의 모든 필터는 CsvControlSetVolumeId 컨트롤을 사용하여 볼륨 GUID를 저장할 수 있습니다. 필터가 이 컨트롤을 완료하면 안 됩니다. 대신 다른 필터에서 GUID를 저장할 수 있도록 스택 아래로 이동하도록 허용해야 합니다.

요구 사항

요구 사항
헤더 ntifs.h

추가 정보

파일 관리 열거형

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL