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
기호 링크가 절대 링크인지 상대 링크인지 여부를 나타냅니다. Flags에 SYMLINK_FLAG_RELATIVE 포함된 경우 PathBuffer 배열(offset SubstituteNameOffset)에 포함된 기호 링크가 상대 기호 링크로 처리됩니다. 그렇지 않으면 절대 기호 링크로 처리됩니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]
경로 문자열의 첫 번째 문자입니다. 이 문자 뒤에는 나머지 문자열이 메모리에 추가됩니다. 경로 문자열에는 대체 이름 문자열과 인쇄 이름 문자열이 포함됩니다. 대체 이름 및 인쇄 이름 문자열은 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[1]
경로 문자열의 첫 번째 문자입니다. 이 문자 뒤에는 나머지 문자열이 메모리에 추가됩니다. 경로 문자열에는 대체 이름 문자열과 인쇄 이름 문자열이 포함됩니다. 대체 이름 및 인쇄 이름 문자열은 PathBuffer에서 임의의 순서로 표시할 수 있습니다. PathBuffer에서 대체 이름 및 인쇄 이름 문자열을 찾으려면 SubstituteNameOffset, SubstituteNameLength, PrintNameOffset 및 PrintNameLength 멤버를 사용합니다.
DUMMYUNIONNAME.GenericReparseBuffer
DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]
재분석 지점에 대한 Microsoft 정의 데이터가 포함된 버퍼에 대한 포인터입니다.
설명
REPARSE_DATA_BUFFER 구조는 I/O 관리자뿐만 아니라 Microsoft 파일 시스템, 필터 및 미니필터 드라이버에서 재분석 지점에 대한 데이터를 저장하는 데 사용됩니다.
이 구조는 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
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기