Поделиться через


структура REPARSE_DATA_BUFFER (ntifs.h)

Структура REPARSE_DATA_BUFFER содержит данные точки повторного анализа для точки повторного анализа майкрософт. Вместо этого можно использовать 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

Тег точки reparse. Должен быть тегом точки повторной настройки Майкрософт. (См. следующий раздел Примечания.)

ReparseDataLength

Размер в байтах данных повторного анализа в буфере, на который DataBuffer указывает.

Reserved

Длина в байтах непарпарированной части имени файла, на которую указывает элемент FileName связанного объекта файла. Дополнительные сведения о члене FileName см. в FILE_OBJECT<. Этот элемент действителен только для операций создания, если операции ввода-вывода завершались сбоем STATUS_REPARSE. Для всех других целей, таких как установка или запрос точки повторного анализа для данных повторного анализа, этот элемент обрабатывается как зарезервированный.

DUMMYUNIONNAME

DUMMYUNIONNAME.SymbolicLinkReparseBuffer

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset

Смещение в байтах строки замены имени в массиве PathBuffer. Обратите внимание, что это смещение должно быть разделено на размер(WCHAR), чтобы получить индекс массива.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength

Длина в байтах строки замены имени. Если эта строка завершается null, ЗаменитьNameLength не включает пробел для конца UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

Смещение в байтах строки имени печати в массиве PathBuffer. Обратите внимание, что это смещение должно быть разделено на размер(WCHAR), чтобы получить индекс массива.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength

Длина в байтах строки имени печати. Если эта строка завершается null, PrintNameLength не включает пробел для конца UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags

Указывает, является ли символьная ссылка абсолютной или относительной. Если Флаги содержат SYMLINK_FLAG_RELATIVE, символьная ссылка, содержащаяся в массиве pathBuff er PathBuffer (при смещениях ЗаменитьNameOffset) обрабатывается как относительная символьная ссылка; в противном случае она обрабатывается как абсолютная символьная ссылка.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]

Первый символ строки пути. Этот символ следует за памятью в оставшейся части строки. Строка пути содержит строку замены имени и строку имени печати. Замещающий имя и строки имени печати могут отображаться в любом порядке в PathBuffer. Чтобы найти замещающий имя и строки имени печати вPathBuffer , используйтеЗаменитьNameOffset, ЗаменитьNameLength, PrintNameOffsetи элементы PrintNameLength.

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

Смещение в байтах строки замены имени в массиве PathBuffer. Обратите внимание, что это смещение должно быть разделено на размер(WCHAR), чтобы получить индекс массива.

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength

Длина в байтах строки замены имени. Если эта строка завершается null, ЗаменитьNameLength не включает пробел для конца UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

Смещение в байтах строки имени печати в массиве PathBuffer. Обратите внимание, что это смещение должно быть разделено на размер(WCHAR), чтобы получить индекс массива.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength

Длина в байтах строки имени печати. Если эта строка завершается null, PrintNameLength не включает пробел для конца UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]

Первый символ строки пути. Этот символ следует за памятью в оставшейся части строки. Строка пути содержит строку замены имени и строку имени печати. Замещающий имя и строки имени печати могут отображаться в любом порядке в PathBuffer. Чтобы найти замещающий имя и строки имени печати вPathBuffer , используйтеЗаменитьNameOffset, ЗаменитьNameLength, PrintNameOffsetи элементы PrintNameLength.

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

Указатель на буфер, содержащий данные, определенные корпорацией Майкрософт, для точки повторного анализа.

Замечания

Структура REPARSE_DATA_BUFFER используется файловыми системами Майкрософт, фильтрами и минифильтрами, а также диспетчером ввода-вывода для хранения данных для точки повторного анализа.

Эта структура может использоваться только для точек повторного анализа Майкрософт. Сторонние владельцы точек повторного использования должны использовать вместо этого структуру REPARSE_GUID_DATA_BUFFER.

Точки повторного анализа Майкрософт могут использовать REPARSE_DATA_BUFFER структуру или структуру REPARSE_GUID_DATA_BUFFER.

В союзе можно использовать структуру GenericReparseBuffer для интерпретации полезных данных для любого тега IO_REPARSE_TAG_XXX или при необходимости использовать одну из других структур в союзе следующим образом:

  • Используйте структуру SymbolicLinkReparseBuffer, если FileTag IO_REPARSE_TAG_SYMLINK.

  • Используйте структуру MountPointReparseBuffer, если FileTag IO_REPARSE_TAG_MOUNT_POINT.

Дополнительные сведения о тегах точки повторного просмотра см. в документации по пакету SDK для Microsoft Windows.

Требования

Требование Ценность
заголовка ntifs.h (include Ntifs.h, Fltkernel.h)

См. также

FILE_OBJECT

FILE_REPARSE_POINT_INFORMATION

FLT_PARAMETERS для IRP_MJ_FILE_SYSTEM_CONTROL

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