FSCTL_DELETE_REPARSE_POINT 제어 코드

FSCTL_DELETE_REPARSE_POINT 제어 코드는 지정된 파일 또는 디렉터리에서 재분석 지점을 삭제합니다. FSCTL_DELETE_REPARSE_POINT 사용하면 파일 또는 디렉터리가 삭제되지 않습니다.

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

미니필터는 재분석 지점을 삭제하려면 FSCTL_DELETE_REPARSE_POINT 대신 FltUntagFile 을 사용해야 합니다.

재분석 지점 및 FSCTL_DELETE_REPARSE_POINT 제어 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

매개 변수

  • FileHandle [in]: 재분석 지점을 삭제할 파일 또는 디렉터리에 대한 파일 핸들입니다. 호출자는 파일 또는 디렉터리에 대한 쓰기 권한이 있어야 합니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FsControlCode [in]: 작업에 대한 코드를 제어합니다. 이 작업에는 FSCTL_DELETE_REPARSE_POINT 사용합니다.

  • InputBuffer [in]: REPARSE_GUID_DATA_BUFFER 또는 REPARSE_DATA_BUFFER 구조체에 대한 포인터입니다. 이 구조체의 ReparseTag 멤버에 지정된 태그는 삭제할 재분석 지점의 태그와 일치해야 하며 ReparseDataLength 멤버는 0이어야 합니다. 또한 재분석 지점이 타사(비 Microsoft) 재분석 지점인 경우 REPARSE_GUID_DATA_BUFFER 구조체의 ReparseGuid 멤버에 지정된 GUID가 삭제할 재분석 지점의 GUID와 일치해야 합니다.

  • InputBufferLength [in]: InputBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. REPARSE_GUID_DATA_BUFFER 구조체의 경우 이 값은 정확히 REPARSE_GUID_DATA_BUFFER_HEADER_SIZE 합니다. REPARSE_DATA_BUFFER 구조체의 경우 이 값은 정확히 REPARSE_DATA_BUFFER_HEADER_SIZE 합니다.

  • OutputBuffer [out]: None. NULL로 설정됨.

  • OutputBufferLength [out]: 를 0으로 설정합니다.

상태 블록

ZwFsControlFile 은 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

코드 의미
STATUS_IO_REPARSE_DATA_INVALID 지정된 매개 변수 값 중 하나가 잘못되었습니다. 오류 코드입니다.
STATUS_IO_REPARSE_TAG_INVALID 호출자가 지정한 재분석 태그가 잘못되었습니다. 오류 코드입니다.
STATUS_IO_REPARSE_TAG_MISMATCH 호출자가 지정한 재분석 태그가 삭제할 재분석 지점의 태그와 일치하지 않습니다. 오류 코드입니다.
STATUS_REPARSE_ATTRIBUTE_CONFLICT 재분석 지점은 타사 재분석 지점이며 호출자가 지정한 재분석 GUID가 삭제할 재분석 지점의 GUID와 일치하지 않습니다. 오류 코드입니다.

요구 사항

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

추가 정보

IRP_MJ_FILE_SYSTEM_CONTROL 대한 FLT_PARAMETERS

FltTagFile

FltUntagFile

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile