Compartilhar via


estrutura REPARSE_DATA_BUFFER (ntifs.h)

A estrutura REPARSE_DATA_BUFFER contém dados de ponto de nova análise para um ponto de nova análise da Microsoft. Em vez disso, você pode usar REPARSE_DATA_BUFFER_EX . (Proprietários de pontos de nova análise de terceiros devem usar a estrutura REPARSE_GUID_DATA_BUFFER em vez disso.)

Sintaxe

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;

Membros

ReparseTag

Reparse a marca de ponto. Deve ser uma marca de ponto de nova análise da Microsoft. (Consulte a seção Comentários a seguir.)

ReparseDataLength

Tamanho, em bytes, dos dados de nova análise no buffer para o qual o DataBuffer aponta.

Reserved

Comprimento, em bytes, da parte nãoparsada do nome do arquivo apontado pelo membro FileName do objeto de arquivo associado. Para obter mais informações sobre o membro FileName , consulte FILE_OBJECT<. Esse membro só é válido para operações de criação quando a E/S falha com STATUS_REPARSE. Para todas as outras finalidades, como definir ou consultar um ponto de nova análise para os dados de nova análise, esse membro é tratado como reservado.

DUMMYUNIONNAME

DUMMYUNIONNAME.SymbolicLinkReparseBuffer

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset

Deslocamento, em bytes, da cadeia de caracteres de nome substituto na matriz PathBuffer . Observe que esse deslocamento deve ser dividido por sizeof(WCHAR) para obter o índice da matriz.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength

Comprimento, em bytes, da cadeia de caracteres de nome substituto. Se essa cadeia de caracteres for terminada em NULL, SubstituteNameLength não incluirá espaço para o terminador UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

Deslocamento, em bytes, da cadeia de caracteres de nome de impressão na matriz PathBuffer . Observe que esse deslocamento deve ser dividido por sizeof(WCHAR) para obter o índice da matriz.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength

Comprimento, em bytes, da cadeia de caracteres de nome de impressão. Se essa cadeia de caracteres for terminada em NULL, PrintNameLength não incluirá espaço para o terminador UNICODE_NULL.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags

Indica se o link simbólico é absoluto ou relativo. Se Flags contiver SYMLINK_FLAG_RELATIVE, o link simbólico contido na matriz PathBuffer (no deslocamento SubstituteNameOffset) será processado como um link simbólico relativo; caso contrário, ele é processado como um link simbólico absoluto.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]

Primeiro caractere da cadeia de caracteres de caminho. Esse caractere é seguido na memória pelo restante da cadeia de caracteres. A cadeia de caracteres de caminho contém a cadeia de caracteres de nome substituto e a cadeia de caracteres de nome de impressão. O nome substituto e as cadeias de caracteres de nome de impressão podem aparecer em qualquer ordem no PathBuffer. Para localizar o nome substituto e as cadeias de caracteres de nome de impressão no PathBuffer, use os membros SubstituteNameOffset, SubstituteNameLength, PrintNameOffset e PrintNameLength .

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

Deslocamento, em bytes, da cadeia de caracteres de nome substituto na matriz PathBuffer . Observe que esse deslocamento deve ser dividido por sizeof(WCHAR) para obter o índice da matriz.

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength

Comprimento, em bytes, da cadeia de caracteres de nome substituto. Se essa cadeia de caracteres for terminada em NULL, SubstituteNameLength não incluirá espaço para o terminador UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

Deslocamento, em bytes, da cadeia de caracteres de nome de impressão na matriz PathBuffer . Observe que esse deslocamento deve ser dividido por sizeof(WCHAR) para obter o índice da matriz.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength

Comprimento, em bytes, da cadeia de caracteres de nome de impressão. Se essa cadeia de caracteres for terminada em NULL, PrintNameLength não incluirá espaço para o terminador UNICODE_NULL.

DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]

Primeiro caractere da cadeia de caracteres de caminho. Esse caractere é seguido na memória pelo restante da cadeia de caracteres. A cadeia de caracteres de caminho contém a cadeia de caracteres de nome substituto e a cadeia de caracteres de nome de impressão. O nome substituto e as cadeias de caracteres de nome de impressão podem aparecer em qualquer ordem no PathBuffer. Para localizar o nome substituto e as cadeias de caracteres de nome de impressão no PathBuffer, use os membros SubstituteNameOffset, SubstituteNameLength, PrintNameOffset e PrintNameLength .

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

Ponteiro para um buffer que contém dados definidos pela Microsoft para o ponto de nova análise.

Comentários

A estrutura REPARSE_DATA_BUFFER é usada por sistemas de arquivos, filtros e drivers de minifiltro da Microsoft, bem como pelo gerenciador de E/S, para armazenar dados para um ponto de nova análise.

Essa estrutura só pode ser usada para pontos de nova análise da Microsoft. Os proprietários de pontos de nova análise de terceiros devem usar a estrutura REPARSE_GUID_DATA_BUFFER .

Os pontos de nova análise da Microsoft podem usar a estrutura REPARSE_DATA_BUFFER ou a estrutura REPARSE_GUID_DATA_BUFFER.

Na união, você pode usar a estrutura GenericReparseBuffer para interpretar o conteúdo de qualquer marca de IO_REPARSE_TAG_XXX ou, opcionalmente, usar uma das outras estruturas dentro da união da seguinte maneira:

  • Use a estrutura SymbolicLinkReparseBuffer quando FileTag for IO_REPARSE_TAG_SYMLINK.

  • Use a estrutura MountPointReparseBuffer quando FileTag for IO_REPARSE_TAG_MOUNT_POINT.

Para obter mais informações sobre marcas de ponto de nova análise, consulte a documentação SDK do Microsoft Windows.

Requisitos

Requisito Valor
Cabeçalho ntifs.h (inclua Ntifs.h, Fltkernel.h)

Confira também

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