Compartir a través de


estructura REPARSE_DATA_BUFFER (ntifs.h)

La estructura REPARSE_DATA_BUFFER contiene datos de punto de reanálisis para un punto de reanálisis de Microsoft. En su lugar, puede usar REPARSE_DATA_BUFFER_EX. (Los propietarios de puntos de reanálisis de terceros deben usar la estructura de REPARSE_GUID_DATA_BUFFER en su lugar).

Sintaxis

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;

Miembros

ReparseTag

Etiqueta de punto de reanálisis. Debe ser una etiqueta de punto de reanálisis de Microsoft. (Consulte la siguiente sección Comentarios).

ReparseDataLength

Tamaño, en bytes, de los datos de reanálisis en el búfer al que apunta DataBuffer.

Reserved

Longitud, en bytes, de la parte no analizada del nombre de archivo al que apunta el FileName miembro del objeto de archivo asociado. Para obtener más información sobre el miembro de FileName, vea FILE_OBJECT<. Este miembro solo es válido para las operaciones de creación cuando se produce un error en la E/S con STATUS_REPARSE. Para todos los demás fines, como establecer o consultar un punto de reanálisis para los datos de reanálisis, este miembro se trata como reservado.

DUMMYUNIONNAME

DUMMYUNIONNAME.SymbolicLinkReparseBuffer

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset

Desplazamiento, en bytes, de la cadena de nombre de sustituto en la matriz de PathBuffer. Tenga en cuenta que este desplazamiento debe dividirse por tamaño de(WCHAR) para obtener el índice de matriz.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength

Longitud, en bytes, de la cadena de nombre sustituto. Si esta cadena está terminada en NULL, SubstituteNameLength no incluye espacio para el terminador de UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

Desplazamiento, en bytes, de la cadena de nombre de impresión en la matriz de PathBuffer. Tenga en cuenta que este desplazamiento debe dividirse por tamaño de(WCHAR) para obtener el índice de matriz.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength

Longitud, en bytes, de la cadena de nombre de impresión. Si esta cadena está terminada en NULL, PrintNameLength no incluye espacio para el terminador de UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags

Indica si el vínculo simbólico es absoluto o relativo. Si Flags contiene SYMLINK_FLAG_RELATIVE, el vínculo simbólico contenido en la matriz PathBuffer (en offset SubstituteNameOffset) se procesa como un vínculo simbólico relativo; de lo contrario, se procesa como un vínculo simbólico absoluto.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]

Primer carácter de la cadena de ruta de acceso. El resto de la cadena sigue este carácter en la memoria. La cadena de ruta de acceso contiene la cadena de nombre sustituto y la cadena de nombre de impresión. El nombre sustituto y las cadenas de nombre de impresión pueden aparecer en cualquier orden en el PathBuffer. Para buscar el nombre sustituto y las cadenas de nombre de impresión en elpathBuffer de , use los miembros SubstituteNameOffset, SubstituteNameLength, PrintNameOffsety PrintNameLength.

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

Desplazamiento, en bytes, de la cadena de nombre de sustituto en la matriz de PathBuffer. Tenga en cuenta que este desplazamiento debe dividirse por tamaño de(WCHAR) para obtener el índice de matriz.

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength

Longitud, en bytes, de la cadena de nombre sustituto. Si esta cadena está terminada en NULL, SubstituteNameLength no incluye espacio para el terminador de UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

Desplazamiento, en bytes, de la cadena de nombre de impresión en la matriz de PathBuffer. Tenga en cuenta que este desplazamiento debe dividirse por tamaño de(WCHAR) para obtener el índice de matriz.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength

Longitud, en bytes, de la cadena de nombre de impresión. Si esta cadena está terminada en NULL, PrintNameLength no incluye espacio para el terminador de UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]

Primer carácter de la cadena de ruta de acceso. El resto de la cadena sigue este carácter en la memoria. La cadena de ruta de acceso contiene la cadena de nombre sustituto y la cadena de nombre de impresión. El nombre sustituto y las cadenas de nombre de impresión pueden aparecer en cualquier orden en el PathBuffer. Para buscar el nombre sustituto y las cadenas de nombre de impresión en elpathBuffer de , use los miembros SubstituteNameOffset, SubstituteNameLength, PrintNameOffsety PrintNameLength.

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

Puntero a un búfer que contiene datos definidos por Microsoft para el punto de reanálisis.

Observaciones

Los sistemas de archivos, filtros y minifiltros de Microsoft usan la estructura de REPARSE_DATA_BUFFER, así como el administrador de E/S, para almacenar datos para un punto de reanálisis.

Esta estructura solo se puede usar para los puntos de reanálisis de Microsoft. Los propietarios de puntos de reanálisis de terceros deben usar la estructura de REPARSE_GUID_DATA_BUFFER en su lugar.

Los puntos de análisis de Microsoft pueden usar la estructura REPARSE_DATA_BUFFER o la estructura de REPARSE_GUID_DATA_BUFFER.

Desde la unión, puede usar la estructura GenericReparseBuffer para interpretar la carga de cualquier etiqueta IO_REPARSE_TAG_XXX o, opcionalmente, usar una de las otras estructuras dentro de la unión de la siguiente manera:

  • Use la estructura SymbolicLinkReparseBuffer cuando FileTag esté IO_REPARSE_TAG_SYMLINK.

  • Use la estructura MountPointReparseBuffer cuando FileTag se IO_REPARSE_TAG_MOUNT_POINT.

Para obtener más información sobre las etiquetas de punto de reanálisis, consulte la documentación de Microsoft Windows SDK.

Requisitos

Requisito Valor
encabezado de ntifs.h (incluya Ntifs.h, Fltkernel.h)

Consulte también

FILE_OBJECT

FILE_REPARSE_POINT_INFORMATION

FLT_PARAMETERS para IRP_MJ_FILE_SYSTEM_CONTROL

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

fltFsControlFile de

fltTagFile de

fltTagFileEx de

fltUntagFile

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER_EX

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile