다음을 통해 공유


FSCTL_SET_REPARSE_POINT_EX 제어 코드

FSCTL_SET_REPARSE_POINT_EX 제어 코드는 파일 또는 디렉터리에 재분석 지점을 설정합니다.

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

미니필터는 재분석 지점을 설정하기 위해 FSCTL_SET_REPARSE_POINT_EX 대신 FltTagFile 을 사용해야 합니다.

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

매개 변수

  • FileHandle: 재분석 지점을 설정할 파일 또는 디렉터리에 대한 파일 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

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

  • InputBuffer: 재분석 지점 데이터를 포함하는 호출자가 할당한 REPARSE_GUID_DATA_BUFFER 또는 REPARSE_DATA_BUFFER_EX 구조체에 대한 포인터입니다.

  • InputBufferLength: InputBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. REPARSE_GUID_DATA_BUFFER 구조의 경우 이 값은 사용자 정의 데이터의 크기와 REPARSE_GUID_DATA_BUFFER_HEADER_SIZE 이상이어야 하며 MAXIMUM_REPARSE_DATA_BUFFER_SIZE 작거나 같아야 합니다. REPARSE_DATA_BUFFER_EX 구조의 경우 이 값은 사용자 정의 데이터의 크기와 REPARSE_DATA_BUFFER_HEADER_SIZE 이상이어야 하며 MAXIMUM_REPARSE_DATA_BUFFER_SIZE 작거나 같아야 합니다.

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

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

상태 블록

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

Description
STATUS_DIRECTORY_NOT_EMPTY 비어 있지 않은 디렉터리에서는 재분석 지점을 설정할 수 없습니다. 오류 코드입니다.
STATUS_EAS_NOT_SUPPORTED 이 요청이 트랜잭션에 있는 경우 파일에 재분석 지점을 설정할 수 없습니다. 오류 코드입니다.
STATUS_IO_REPARSE_DATA_INVALID 지정된 매개 변수 값 중 하나가 잘못되었습니다. 오류 코드입니다.
STATUS_IO_REPARSE_TAG_MISMATCH 호출자가 지정한 재분석 태그가 수정할 재분석 지점의 태그와 일치하지 않습니다. 오류 코드입니다.
STATUS_NOT_A_REPARSE_POINT 파일 또는 디렉터리가 재분석 지점이 아닙니다. 오류 코드입니다.
STATUS_REPARSE_ATTRIBUTE_CONFLICT 재분석 지점은 타사 재분석 지점이며 호출자가 지정한 재분석 GUID가 수정할 재분석 지점의 GUID와 일치하지 않습니다. 오류 코드입니다.

요구 사항

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

추가 정보

IRP_MJ_FILE_SYSTEM_CONTROL 대한 FLT_PARAMETERS

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER_EX

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile