структура 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
Указывает, является ли символьная ссылка абсолютной или относительной. Если
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]
Первый символ строки пути. Этот символ следует за памятью в оставшейся части строки. Строка пути содержит строку замены имени и строку имени печати. Замещающий имя и строки имени печати могут отображаться в любом порядке в PathBuffer. Чтобы найти замещающий имя и строки имени печати вPathBuffer
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
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_REPARSE_POINT_INFORMATION