FSCTL_SET_REPARSE_POINT 제어 코드
FSCTL_SET_REPARSE_POINT 제어 코드는 파일 또는 디렉터리에 재분석 지점을 설정합니다.
이 작업을 수행하려면 다음 매개 변수 를 사용하여 ZwFsControlFile 을 호출합니다.
미니필터는 FSCTL_SET_REPARSE_POINT 대신 FltTagFile 을 사용하여 재분석 지점을 설정해야 합니다.
재분석 지점 및 FSCTL_SET_REPARSE_POINT 제어 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
매개 변수
FileHandle [in]: 재분석 지점을 설정할 파일 또는 디렉터리에 대한 파일 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
FsControlCode [in]: 작업에 대한 코드를 제어합니다. 이 작업에는 FSCTL_SET_REPARSE_POINT 사용합니다.
InputBuffer [in]: 재분석 지점 데이터를 포함하는 호출자가 할당한 REPARSE_GUID_DATA_BUFFER 또는 REPARSE_DATA_BUFFER 구조체에 대한 포인터입니다. 기존 재분석 지점을 수정하는 경우 이 구조체의 ReparseTag 멤버에 지정된 태그가 수정할 재분석 지점의 태그와 일치해야 합니다. 또한 재분석 지점이 타사(비 Microsoft) 재분석 지점인 경우 구조체의 ReparseGuid 멤버에 지정된 GUID는 수정할 재분석 지점의 GUID와 일치해야 REPARSE_GUID_DATA_BUFFER 구조체입니다.
InputBufferLength [in]: InputBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. REPARSE_GUID_DATA_BUFFER 구조의 경우 이 값은 사용자 정의 데이터의 크기와 REPARSE_GUID_DATA_BUFFER_HEADER_SIZE 이상이어야 하며 MAXIMUM_REPARSE_DATA_BUFFER_SIZE 작거나 같아야 합니다. REPARSE_DATA_BUFFER 구조의 경우 이 값은 사용자 정의 데이터의 크기와 REPARSE_DATA_BUFFER_HEADER_SIZE 이상이어야 하며 MAXIMUM_REPARSE_DATA_BUFFER_SIZE 작거나 같아야 합니다.
OutputBuffer [out]: 이 작업에 사용되지 않습니다. 을 NULL로 설정합니다.
OutputBufferLength [out]: 이 작업에 사용되지 않습니다. 를 0으로 설정합니다.
상태 블록
ZwFsControlFile 은 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
코드 | 의미 |
---|---|
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 포함) |