Partager via


structure REPARSE_DATA_BUFFER (ntifs.h)

La structure REPARSE_DATA_BUFFER contient des données de point d’analyse pour un point d’analyse Microsoft. Vous pouvez utiliser REPARSE_DATA_BUFFER_EX à la place. (Les propriétaires de points d’analyse tiers doivent utiliser la structure REPARSE_GUID_DATA_BUFFER à la place.)

Syntaxe

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;

Membres

ReparseTag

Balise de point d’analyse. Doit être une balise de point d’analyse Microsoft. (Consultez la section remarques suivante.)

ReparseDataLength

Taille, en octets, des données d’analyse dans la mémoire tampon qui DataBuffer pointe vers.

Reserved

Longueur, en octets, de la partie non utilisée du nom de fichier pointé par le FileName membre de l’objet de fichier associé. Pour plus d’informations sur le membre FileName , consultez FILE_OBJECT. Ce membre est valide uniquement pour les opérations de création lorsque l’E/S échoue avec STATUS_REPARSE. À tous les autres fins, telles que la définition ou l’interrogation d’un point d’analyse pour les données d’analyse, ce membre est traité comme réservé.

DUMMYUNIONNAME

DUMMYUNIONNAME.SymbolicLinkReparseBuffer

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset

Offset, en octets, de la chaîne de nom de remplacement dans le tableau PathBuffer. Notez que ce décalage doit être divisé par taille de(WCHAR) pour obtenir l’index de tableau.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength

Longueur, en octets, de la chaîne de nom de remplacement. Si cette chaîne est terminée par NULL, SubstituteNameLength n’inclut pas d’espace pour le terminateur UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

Offset, en octets, de la chaîne de nom d’impression dans le tableau PathBuffer. Notez que ce décalage doit être divisé par taille de(WCHAR) pour obtenir l’index de tableau.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength

Longueur, en octets, de la chaîne de nom d’impression. Si cette chaîne est terminée par NULL, PrintNameLength n’inclut pas d’espace pour la marque de fin UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags

Indique si le lien symbolique est absolu ou relatif. Si indicateurs contient SYMLINK_FLAG_RELATIVE, le lien symbolique contenu dans le tableau PathBuffer (au décalage SubstituteNameOffset) est traité comme un lien symbolique relatif ; sinon, il est traité comme un lien symbolique absolu.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]

Premier caractère de la chaîne de chemin d’accès. Ce caractère est suivi en mémoire par le reste de la chaîne. La chaîne de chemin contient la chaîne de nom de remplacement et la chaîne de nom d’impression. Le nom de remplacement et les chaînes de nom d’impression peuvent apparaître dans n’importe quel ordre dans le PathBuffer. Pour rechercher le nom de remplacement et les chaînes de nom d’impression dans lePathBuffer , utilisez les SubstituteNameOffset, SubstituteNameLength, PrintNameOffsetet membres printNameLength.

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

Offset, en octets, de la chaîne de nom de remplacement dans le tableau PathBuffer. Notez que ce décalage doit être divisé par taille de(WCHAR) pour obtenir l’index de tableau.

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength

Longueur, en octets, de la chaîne de nom de remplacement. Si cette chaîne est terminée par NULL, SubstituteNameLength n’inclut pas d’espace pour le terminateur UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

Offset, en octets, de la chaîne de nom d’impression dans le tableau PathBuffer. Notez que ce décalage doit être divisé par taille de(WCHAR) pour obtenir l’index de tableau.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength

Longueur, en octets, de la chaîne de nom d’impression. Si cette chaîne est terminée par NULL, PrintNameLength n’inclut pas d’espace pour la marque de fin UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]

Premier caractère de la chaîne de chemin d’accès. Ce caractère est suivi en mémoire par le reste de la chaîne. La chaîne de chemin contient la chaîne de nom de remplacement et la chaîne de nom d’impression. Le nom de remplacement et les chaînes de nom d’impression peuvent apparaître dans n’importe quel ordre dans le PathBuffer. Pour rechercher le nom de remplacement et les chaînes de nom d’impression dans lePathBuffer , utilisez les SubstituteNameOffset, SubstituteNameLength, PrintNameOffsetet membres printNameLength.

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

Pointeur vers une mémoire tampon qui contient des données définies par Microsoft pour le point d’analyse.

Remarques

La structure REPARSE_DATA_BUFFER est utilisée par les systèmes de fichiers, les filtres et les pilotes mini-filtres Microsoft, ainsi que le gestionnaire d’E/S, pour stocker les données d’un point d’analyse.

Cette structure ne peut être utilisée que pour les points d’analyse Microsoft. Les propriétaires de points d’analyse tiers doivent utiliser la structure REPARSE_GUID_DATA_BUFFER à la place.

Les points d’analyse Microsoft peuvent utiliser la structure REPARSE_DATA_BUFFER ou la structure REPARSE_GUID_DATA_BUFFER.

À partir de l’union, vous pouvez utiliser la structure GenericReparseBuffer pour interpréter la charge utile pour n’importe quelle balise de IO_REPARSE_TAG_XXX, ou utiliser éventuellement l’une des autres structures au sein de l’union comme suit :

  • Utilisez la structure SymbolLinkReparseBuffer lorsque FileTag est IO_REPARSE_TAG_SYMLINK.

  • Utilisez la structure MountPointReparseBuffer lorsque FileTag est IO_REPARSE_TAG_MOUNT_POINT.

Pour plus d’informations sur les balises de point d’analyse, consultez la documentation du Kit de développement logiciel (SDK) Microsoft Windows.

Exigences

Exigence Valeur
d’en-tête ntifs.h (include Ntifs.h, Fltkernel.h)

Voir aussi

FILE_OBJECT

FILE_REPARSE_POINT_INFORMATION

FLT_PARAMETERS pour 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