Share via


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 . (En su lugar, los propietarios de puntos de reanálisis de terceros deben usar la estructura REPARSE_GUID_DATA_BUFFER ).

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. (Vea 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 miembro FileName del objeto de archivo asociado. Para obtener más información sobre el miembro 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 PathBuffer . Tenga en cuenta que este desplazamiento debe dividirse por sizeof(WCHAR) para obtener el índice de matriz.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength

Longitud, en bytes, de la cadena de nombre sustituto. Si esta cadena termina 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 PathBuffer . Tenga en cuenta que este desplazamiento debe dividirse por sizeof(WCHAR) para obtener el índice de matriz.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength

Longitud, en bytes, de la cadena de nombre de impresión. Si esta cadena termina 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. Este carácter va seguido de la memoria por el resto de la cadena. 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 pathBuffer. Para buscar el nombre sustituto y las cadenas de nombre de impresión en pathBuffer, use los miembros SubstituteNameOffset, SubstituteNameLength, PrintNameOffset y PrintNameLength .

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

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

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength

Longitud, en bytes, de la cadena de nombre sustituto. Si esta cadena termina 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 PathBuffer . Tenga en cuenta que este desplazamiento debe dividirse por sizeof(WCHAR) para obtener el índice de matriz.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength

Longitud, en bytes, de la cadena de nombre de impresión. Si esta cadena termina 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. Este carácter va seguido de la memoria por el resto de la cadena. 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 pathBuffer. Para buscar el nombre sustituto y las cadenas de nombre de impresión en pathBuffer, use los miembros SubstituteNameOffset, SubstituteNameLength, PrintNameOffset y PrintNameLength .

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

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

Comentarios

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

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

Los puntos de reaná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
Header 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

FltTagFile

FltTagFileEx

FltUntagFile

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER_EX

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile