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 marca de ponto. Deve ser uma marca de ponto de nova análise da Microsoft. (Consulte a seguinte seção Comentários.)
ReparseDataLength
Tamanho, em bytes, dos dados de nova análise no buffer para o qual DataBuffer aponta.
Reserved
Comprimento, em bytes, da parte nãoparsada do nome do arquivo apontado pelo FileName membro do objeto de arquivo associado. Para obter mais informações sobre o membro
DUMMYUNIONNAME
DUMMYUNIONNAME.SymbolicLinkReparseBuffer
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset
Deslocamento, em bytes, da cadeia de caracteres de nome substituto na 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 inclui espaço para o terminador de UNICODE_NULL.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset
Deslocamento, em bytes, da cadeia de caracteres de nome de impressão na 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 inclui espaço para o terminador de UNICODE_NULL.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags
Indica se o link simbólico é absoluto ou relativo. Se
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
DUMMYUNIONNAME.MountPointReparseBuffer
DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset
Deslocamento, em bytes, da cadeia de caracteres de nome substituto na 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 inclui espaço para o terminador de UNICODE_NULL.
DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset
Deslocamento, em bytes, da cadeia de caracteres de nome de impressão na 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 inclui espaço para o terminador de 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
DUMMYUNIONNAME.GenericReparseBuffer
DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]
Ponteiro para um buffer que contém dados definidos pela Microsoft para o ponto de nova análise.
Observações
A estrutura de 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 de 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 do SDK do Microsoft Windows.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ntifs.h (inclua Ntifs.h, Fltkernel.h) |
Consulte também
FILE_REPARSE_POINT_INFORMATION
FLT_PARAMETERS para IRP_MJ_FILE_SYSTEM_CONTROL