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_REPARSE_POINT_INFORMATION