다음을 통해 공유


자리 표시자 정보

파일 시스템 자리 표시자는 파일의 실제 콘텐츠 또는 다른 곳에 있는 디렉터리에 대한 표현인 파일입니다. 이 최적화를 통해 파일 또는 디렉터리의 실제 콘텐츠를 다른 곳에 상주하고 요청 시 가져올 수 있습니다. 실제 콘텐츠에는 메타데이터, 파일 데이터 및 디렉터리 항목이 포함됩니다.

자리 표시자는 파일 또는 디렉터리일 수 있습니다. 실제 파일 또는 디렉터리 메타데이터의 일부 또는 실제 파일 데이터 또는 디렉터리 항목의 일부를 포함할 수 있습니다. 자리 표시자 파일은 FILE_ATTRIBUTE_SPARSE_FILE 비트가 설정된 스파스 파일로 표시됩니다.

일반적으로 자리 표시자는 파일 시스템 미니필터가 소유하고 관리하는 재분석 지점입니다. 소유 미니필터는 가상화의 사용자이며 자리 표시자가 파일 시스템의 일반 파일 또는 디렉터리처럼 보이고 동작할 수 있도록 합니다. 이러한 가상화 드라이버는 자리 표시자의 IO 요청을 가로채 파일 시스템과 유사한 동작을 용이하게 합니다. ProjF 및Cloud Files 는 자리 표시자를 사용하는 Windows 가상화 플랫폼의 두 가지 예입니다.

자리 표시자를 소유하는 미니필터는 IO를 충족하기 위해 이러한 IO 요청을 적절하게 처리할 수 있습니다. 예를 들어 애플리케이션이 탈수된 자리 표시자 파일을 읽으려고 하면 미니필터는 IO 요청을 충족하기 위해 파일 데이터를 제공합니다.

미니필터를 소유하는 것은 사용자 모드에서 또는 IO 스택에서 위의 구성 요소에서 발생하는 IO 요청에 대해서만 가상화를 제공할 수 있습니다.

자리 표시자를 소유하지 않는 미니필터는 FltReadFile, FltWriteFile 등의 API를 사용하여 아래 필터를 대상으로 하는 IO 작업을 실행할 수 있습니다. 소유하지 않는 미니필터가 소유하는 미니필터 아래에서 자리 표시자 파일에 대상 IO 요청을 발급하는 경우 소유 미니필터는 IO 요청을 적절하게 충족할 수 없습니다.

예를 들어 필터가 대상 FltReadFile 을 소유하는 미니필터가 볼 수 없는 탈수된 자리 표시자 파일에 발급하는 경우 자리 표시자가 스파스 파일일 수 있으므로 대상 지정 필터는 실제 데이터가 아닌 0의 블록을 가져올 수 있습니다. 시스템에서 0s 블록을 가져온 읽기를 캐시하는 경우 이 읽기는 캐시를 오염하여 시스템이 오염된 캐시를 디스크로 플러시하는 경우 파일 데이터를 손상시킬 수 있습니다. 따라서 미니필터가 자리 표시자를 적절하게 처리하는 것이 필수적입니다.