estrutura FLT_TAG_DATA_BUFFER (fltkernel.h)
A estrutura FLT_TAG_DATA_BUFFER contém informações sobre uma marca de ponto de nova análise.
Sintaxe
typedef struct _FLT_TAG_DATA_BUFFER {
ULONG FileTag;
USHORT TagDataLength;
USHORT UnparsedNameLength;
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;
struct {
GUID TagGuid;
UCHAR DataBuffer[1];
} GenericGUIDReparseBuffer;
};
} FLT_TAG_DATA_BUFFER, *PFLT_TAG_DATA_BUFFER;
Membros
FileTag
Marca que identifica exclusivamente o ponto de nova análise. Pode ser um dos valores de IO_REPARSE_TAG_XXX definidos pela Microsoft definidos em ntifs.h ou um valor definido por ISV.
TagDataLength
Tamanho, em bytes, dos dados de nova análise apontados pelo membro do DataBuffer .
UnparsedNameLength
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.
SymbolicLinkReparseBuffer
Quando FileTag for IO_REPARSE_TAG_SYMLINK, você poderá usar essa estrutura para interpretar o conteúdo.
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.
SymbolicLinkReparseBuffer.SubstituteNameLength
Comprimento, em bytes, da cadeia de caracteres de nome substituto. Se essa cadeia de caracteres for NULL_terminated, SubstituteNameLength não incluirá espaço para o terminador UNICODE_NULL.
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.
SymbolicLinkReparseBuffer.PrintNameLength
Comprimento, em bytes, da cadeia de caracteres de nome de impressão. Se essa cadeia de caracteres for NULL_terminated, PrintNameLength não incluirá espaço para o terminador UNICODE_NULL.
SymbolicLinkReparseBuffer.Flags
Indica se o link simbólico é absoluto ou relativo. Se Flags contiver SYMLINK_FLAG_RELATIVE, o link simbólico contido em PathBuffer (no deslocamento SubstituteNameOffset) será processado como um link relativo; caso contrário, ele é processado como um link absoluto.
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 .
MountPointReparseBuffer
Quando FileTag é IO_REPARSE_TAG_MOUNT_POINT, você pode usar essa estrutura para interpretar o conteúdo.
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.
MountPointReparseBuffer.SubstituteNameLength
Comprimento, em bytes, da cadeia de caracteres de nome substituto. Se essa cadeia de caracteres for NULL_terminated, SubstituteNameLength não incluirá espaço para o terminador UNICODE_NULL.
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.
MountPointReparseBuffer.PrintNameLength
Comprimento, em bytes, da cadeia de caracteres de nome de impressão. Se essa cadeia de caracteres for NULL_terminated, PrintNameLength não incluirá espaço para o terminador UNICODE_NULL.
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 .
GenericReparseBuffer
Você pode usar essa estrutura para interpretar o conteúdo de qualquer marca IO_REPARSE_TAG_XXX definida pela Microsoft.
GenericReparseBuffer.DataBuffer[1]
Ponteiro para um buffer que contém dados definidos pelo usuário para o ponto de nova análise.
GenericGUIDReparseBuffer
Você pode usar essa estrutura para interpretar o conteúdo de qualquer marca IO_REPARSE_TAG_XXX .
GenericGUIDReparseBuffer.TagGuid
GUID (identificador global exclusivo) que identifica o tipo de ponto de nova análise. Se FileTag não for uma marca da Microsoft, esse membro não poderá ser NULL.
GenericGUIDReparseBuffer.DataBuffer[1]
Ponteiro para um buffer que contém dados definidos pelo usuário para o ponto de nova análise.
Comentários
Um minifiltro pode usar a estrutura FLT_TAG_DATA_BUFFER para armazenar informações sobre uma marca de ponto de nova análise.
Na união, você pode usar a estrutura GenericGUIDReparseBuffer para interpretar o conteúdo de qualquer marca IO_REPARSE_TAG_XXX ou, opcionalmente, usar uma das outras estruturas dentro da união da seguinte maneira:
Use a estrutura GenericReparseBuffer para qualquer marca IO_REPARSE_TAG_XXX definida pela Microsoft.
Use a estrutura SymbolicLinkReparseBuffer quando FileTag for IO_REPARSE_TAG_SYMLINK.
Use a estrutura MountPointReparseBuffer quando FileTag for IO_REPARSE_TAG_MOUNT_POINT.
Um ponteiro para uma estrutura FLT_TAG_DATA_BUFFER que contém dados de marca de ponto de nova análise para uma operação é armazenado no membro TagData da estrutura FLT_CALLBACK_DATA da operação.
A macro FLT_TAG_DATA_BUFFER_HEADER_SIZE retorna o tamanho da parte fixa da estrutura FLT_TAG_DATA_BUFFER.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | fltkernel.h (inclua FltKernel.h) |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de