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

Répare l’étiquette de point. Doit être une balise de point d’analyse Microsoft. (Voir la section Remarques suivante.)

ReparseDataLength

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

Reserved

Longueur, en octets, de la partie non décrite du nom de fichier pointée par le membre FileName de l’objet fichier associé. Pour plus d’informations sur le membre FileName , consultez FILE_OBJECT<. Ce membre n’est valide que pour les opérations de création lorsque l’E/S échoue avec STATUS_REPARSE. À toutes 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

Décalage, en octets, de la chaîne de nom de substitution dans le tableau PathBuffer . Notez que ce décalage doit être divisé par sizeof(WCHAR) pour obtenir l’index du 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 UNICODE_NULL de fin.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

Décalage, en octets, de la chaîne de nom d’impression dans le tableau PathBuffer . Notez que ce décalage doit être divisé par sizeof(WCHAR) pour obtenir l’index du 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 UNICODE_NULL fin.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags

Indique si le lien symbolique est absolu ou relatif. Si Flags 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 d’accès contient la chaîne de nom de substitution et la chaîne de nom d’impression. Les chaînes de nom de remplacement et de nom d’impression peuvent apparaître dans n’importe quel ordre dans le PathBuffer. Pour rechercher les chaînes de nom de substitution et de nom d’impression dans pathBuffer, utilisez les membres SubstituteNameOffset, SubstituteNameLength, PrintNameOffset et PrintNameLength .

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

Décalage, en octets, de la chaîne de nom de substitution dans le tableau PathBuffer . Notez que ce décalage doit être divisé par sizeof(WCHAR) pour obtenir l’index du 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 UNICODE_NULL de fin.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

Décalage, en octets, de la chaîne de nom d’impression dans le tableau PathBuffer . Notez que ce décalage doit être divisé par sizeof(WCHAR) pour obtenir l’index du 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 UNICODE_NULL fin.

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 d’accès contient la chaîne de nom de substitution et la chaîne de nom d’impression. Les chaînes de nom de remplacement et de nom d’impression peuvent apparaître dans n’importe quel ordre dans le PathBuffer. Pour rechercher les chaînes de nom de substitution et de nom d’impression dans pathBuffer, utilisez les membres SubstituteNameOffset, SubstituteNameLength, PrintNameOffset et 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 de minifiltre Microsoft, ainsi que par le gestionnaire d’E/S, pour stocker des données pour 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 IO_REPARSE_TAG_XXX, ou éventuellement utiliser l’une des autres structures au sein de l’union comme suit :

  • Utilisez la structure SymbolicLinkReparseBuffer 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 Microsoft Windows SDK.

Configuration requise

Condition requise Valeur
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