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, PrintNameOffsetPrintNameLength 멤버를 사용합니다.

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, PrintNameOffsetPrintNameLength 멤버를 사용합니다.

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_OBJECT

FILE_REPARSE_POINT_INFORMATION

IRP_MJ_FILE_SYSTEM_CONTROL 대한 FLT_PARAMETERS

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltTagFile

FltTagFileEx

FltUntagFile

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER_EX

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile