다음을 통해 공유


FSCTL_SET_ZERO_DATA 제어 코드

FSCTL_SET_ZERO_DATA 컨트롤 코드는 지정된 파일 범위를 0으로 채웁니다. 파일이 스파스 또는 압축된 경우 NTFS 파일 시스템은 파일의 디스크 공간을 할당 취소할 수 있습니다. 이렇게 하면 파일 크기를 확장하지 않고 바이트 범위를 0으로 설정합니다.

드라이버에서 이 작업을 수행하려면 다음 매개 변수를 사용하여 FltFsControlFile 을 호출합니다.

매개 변수

  • 인스턴스: 호출자에 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FileObject [in]: 0을 쓸 파일에 대한 파일 개체 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FsControlCode [in]: 작업에 대한 제어 코드입니다.

이 작업에 는 FSCTL_SET_ZERO_DATA 사용합니다.

FileOffset 멤버는 0으로 설정할 첫 번째 바이트의 바이트 오프셋이며 BeyondFinalZero 멤버는 마지막 0(0) 바이트를 초과하는 첫 번째 바이트의 바이트 오프셋입니다.

FILE_ZERO_DATA_INFORMATION_EXFlags 멤버는 작업에 대한 한정자를 지정합니다. 예를 들어 FlagsFILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA 설정되면 이 파일 범위에 해당하는 캐시의 내용이 제거되지 않습니다.

  • InputBufferLength [in]: 입력 버퍼의 크기(바이트)입니다.

  • OutputBuffer [out]: 이 작업에 사용되지 않습니다. 을 NULL로 설정합니다.

  • OutputBufferLength [out]: 이 작업에 사용되지 않습니다. 를 0으로 설정합니다.

상태 블록

FltFsControlFileSTATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.

반환 코드 의미
상태 _INSUFFICIENT_RESOURCES 메모리가 부족하여 작업을 완료할 수 없습니다.
STATUS_INVALID_PARAMETER InputBufferLengthFILE_ZERO_DATA_INFORMATION 구조체의 크기보다 작거나 지정된 파일이 시스템 메타데이터 파일 또는 디렉터리입니다.
STATUS_ACCESS_DENIED FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA 사용자 모드에서 설정됩니다.
STATUS_MEDIA_WRITE_PROTECTED 볼륨은 현재 쓰기가 보호됩니다.

요구 사항

요구 사항 유형 요구 사항
헤더 Ntifs.h ( Ntifs.h 포함)

추가 정보

FltFsControlFile

FILE_ZERO_DATA_INFORMATION

FILE_ZERO_DATA_INFORMATION_EX