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<참조하세요. 이 멤버는 STATUS_REPARSE I/O가 실패하는 경우에만 만들기 작업에 유효합니다. 재구문 데이터에 대한 재구문 분석 지점 설정 또는 쿼리와 같은 다른 모든 목적을 위해 이 멤버는 예약된 것으로 처리됩니다.
DUMMYUNIONNAME
DUMMYUNIONNAME.SymbolicLinkReparseBuffer
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset
PathBuffer 배열에 있는 대체 이름 문자열의 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 WCHAR(sizeof)로 나누어야 합니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength
대체 이름 문자열의 길이(바이트)입니다. 이 문자열이 NULL로 종료된 경우 SubstituteNameLength UNICODE_NULL 종결자에 대한 공간이 포함되지 않습니다.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset
PathBuffer 배열에 있는 인쇄 이름 문자열의 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 WCHAR(sizeof)로 나누어야 합니다.
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 배열에 있는 대체 이름 문자열의 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 WCHAR(sizeof)로 나누어야 합니다.
DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength
대체 이름 문자열의 길이(바이트)입니다. 이 문자열이 NULL로 종료된 경우 SubstituteNameLength UNICODE_NULL 종결자에 대한 공간이 포함되지 않습니다.
DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset
PathBuffer 배열에 있는 인쇄 이름 문자열의 오프셋(바이트)입니다. 배열 인덱스 가져오기를 위해 이 오프셋을 WCHAR(sizeof)로 나누어야 합니다.
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 구조는 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
IRP_MJ_FILE_SYSTEM_CONTROL 대한
fltFsControlFile
fltTagFile
fltUntagFile
isReparseTagNameSurrogate
ZwFsControlFile