REPARSE_DATA_BUFFER 구조체(ntifs.h)
REPARSE_DATA_BUFFER 구조에는 Microsoft 재문 분석 지점에 대한 재구문 분석 지점 데이터가 포함됩니다. 대신 REPARSE_DATA_BUFFER_EX 사용할 수 있습니다. (타사 재구문 분석 지점 소유자는 대신 REPARSE_GUID_DATA_BUFFER 구조를 사용해야 합니다.)
구문
typedef struct _REPARSE_DATA_BUFFER {
ULONG ReparseTag;
USHORT ReparseDataLength;
USHORT Reserved;
union {
struct {
USHORT SubstituteNameOffset;
USHORT SubstituteNameLength;
USHORT PrintNameOffset;
USHORT PrintNameLength;
ULONG Flags;
WCHAR PathBuffer[1];
} SymbolicLinkReparseBuffer;
struct {
USHORT SubstituteNameOffset;
USHORT SubstituteNameLength;
USHORT PrintNameOffset;
USHORT PrintNameLength;
WCHAR PathBuffer[1];
} MountPointReparseBuffer;
struct {
UCHAR DataBuffer[1];
} GenericReparseBuffer;
} DUMMYUNIONNAME;
} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
구성원
ReparseTag
재구문 분석 지점 태그입니다. Microsoft 재구문 분석 지점 태그여야 합니다. (다음 주의 섹션 을 참조하세요 .)
ReparseDataLength
DataBuffer 가 가리키는 버퍼의 재구문 데이터의 크기(바이트)입니다.
Reserved
연결된 파일 개체의 FileName 멤버가 가리키는 파일 이름의 구문 분석되지 않은 부분의 길이(바이트)입니다. FileName 멤버에 대한 자세한 내용은 FILE_OBJECT<참조하세요. 이 멤버는 I/O가 STATUS_REPARSE 실패하는 경우에만 만들기 작업에 유효합니다. 재구문 데이터에 대한 재구문 분석 지점 설정 또는 쿼리와 같은 다른 모든 목적을 위해 이 멤버는 예약된 것으로 처리됩니다.
DUMMYUNIONNAME
DUMMYUNIONNAME.SymbolicLinkReparseBuffer
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset
PathBuffer 배열에 있는 대체 이름 문자열의 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 sizeof(WCHAR)로 나누어야 합니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength
대체 이름 문자열의 길이(바이트)입니다. 이 문자열이 NULL로 종료된 경우 SubstituteNameLength 는 UNICODE_NULL 종결자에 대한 공간을 포함하지 않습니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset
PathBuffer 배열의 인쇄 이름 문자열 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 sizeof(WCHAR)로 나누어야 합니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength
인쇄 이름 문자열의 길이(바이트)입니다. 이 문자열이 NULL로 종료된 경우 PrintNameLength 는 UNICODE_NULL 종결자에 대한 공간을 포함하지 않습니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags
기호 링크가 절대 링크인지 상대 링크인지를 나타냅니다. 플래그 에 SYMLINK_FLAG_RELATIVE 포함된 경우 PathBuffer 배열에 포함된 기호 링크(offset SubstituteNameOffset)는 상대 기호 링크로 처리됩니다. 그렇지 않으면 절대 기호 링크로 처리됩니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer
경로 문자열의 첫 번째 문자입니다. 이 문자 뒤에는 나머지 문자열이 메모리에 추가됩니다. 경로 문자열에는 대체 이름 문자열 및 인쇄 이름 문자열이 포함됩니다. 대체 이름 및 인쇄 이름 문자열은 PathBuffer 에서 임의의 순서로 나타날 수 있습니다. PathBuffer 에서 대체 이름과 인쇄 이름 문자열을 찾으려면 SubstituteNameOffset, SubstituteNameLength, PrintNameOffset 및 PrintNameLength 멤버를 사용합니다.
DUMMYUNIONNAME.MountPointReparseBuffer
DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset
PathBuffer 배열에 있는 대체 이름 문자열의 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 sizeof(WCHAR)로 나누어야 합니다.
DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength
대체 이름 문자열의 길이(바이트)입니다. 이 문자열이 NULL로 종료된 경우 SubstituteNameLength 는 UNICODE_NULL 종결자에 대한 공간을 포함하지 않습니다.
DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset
PathBuffer 배열의 인쇄 이름 문자열 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 sizeof(WCHAR)로 나누어야 합니다.
DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength
인쇄 이름 문자열의 길이(바이트)입니다. 이 문자열이 NULL로 종료된 경우 PrintNameLength 는 UNICODE_NULL 종결자에 대한 공간을 포함하지 않습니다.
DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer
경로 문자열의 첫 번째 문자입니다. 이 문자 뒤에는 나머지 문자열이 메모리에 추가됩니다. 경로 문자열에는 대체 이름 문자열 및 인쇄 이름 문자열이 포함됩니다. 대체 이름 및 인쇄 이름 문자열은 PathBuffer 에서 임의의 순서로 나타날 수 있습니다. PathBuffer 에서 대체 이름과 인쇄 이름 문자열을 찾으려면 SubstituteNameOffset, SubstituteNameLength, PrintNameOffset 및 PrintNameLength 멤버를 사용합니다.
DUMMYUNIONNAME.GenericReparseBuffer
DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer
재문 분석 지점에 대한 Microsoft 정의 데이터를 포함하는 버퍼에 대한 포인터입니다.
설명
REPARSE_DATA_BUFFER 구조는 Microsoft 파일 시스템, 필터 및 미니 필터 드라이버뿐만 아니라 I/O 관리자에서 재문 분석 지점에 대한 데이터를 저장하는 데 사용됩니다.
이 구조는 Microsoft 재문 분석 지점에만 사용할 수 있습니다. 타사 재구문 분석 지점 소유자는 대신 REPARSE_GUID_DATA_BUFFER 구조를 사용해야 합니다.
Microsoft 재구문 분석 지점은 REPARSE_DATA_BUFFER 구조 또는 REPARSE_GUID_DATA_BUFFER 구조를 사용할 수 있습니다.
공용 구조체에서 GenericReparseBuffer 구조를 사용하여 IO_REPARSE_TAG_XXX 태그에 대한 페이로드를 해석하거나 필요에 따라 다음과 같이 공용 구조체 내의 다른 구조체 중 하나를 사용할 수 있습니다.
FileTag가 IO_REPARSE_TAG_SYMLINK 때 SymbolicLinkReparseBuffer 구조를 사용합니다.
FileTag가 IO_REPARSE_TAG_MOUNT_POINT 경우 MountPointReparseBuffer 구조를 사용합니다.
재구문 분석 지점 태그에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
요구 사항
| 헤더 | ntifs.h(Ntifs.h, Fltkernel.h 포함) |
참고 항목
FILE_REPARSE_POINT_INFORMATION
피드백
다음에 대한 사용자 의견 제출 및 보기