Função FltTagFileEx (fltkernel.h)
FltTagFileEx define um ponto de nova análise em um arquivo ou diretório.
Sintaxe
NTSTATUS FLTAPI FltTagFileEx(
PFLT_INSTANCE InitiatingInstance,
PFILE_OBJECT FileObject,
ULONG FileTag,
GUID *Guid,
PVOID DataBuffer,
USHORT DataBufferLength,
ULONG ExistingFileTag,
GUID *ExistingGuid,
ULONG Flags
);
Parâmetros
InitiatingInstance
Ponteiro opaco para a instância do driver de minifiltro que iniciou essa solicitação de E/S. Esse parâmetro é necessário e não pode ser NULL.
FileObject
Ponteiro para o objeto de arquivo para o arquivo ou diretório no qual definir um ponto de nova análise. O objeto de arquivo deve ser aberto para acesso FILE_WRITE_DATA. Esse parâmetro é necessário e não pode ser NULL.
FileTag
Reparse a marca de ponto. Pode ser um dos valores IO_REPARSE_TAG_XXX definidos em ntifs.h.
Guid
GUID que identifica exclusivamente o ponto de nova análise. Se FileTag for uma marca que não seja da Microsoft, esse parâmetro será necessário e não poderá ser NULL. Se uma marca de nova análise existente estiver sendo modificada, o GUID especificado neste parâmetro deverá corresponder ao GUID do ponto de nova análise a ser modificado.
DataBuffer
Ponteiro para um buffer que contém dados definidos pelo usuário para o ponto de nova análise.
DataBufferLength
Tamanho, em bytes, do buffer para o qual o DataBuffer aponta.
ExistingFileTag
Marca existente no arquivo se a marca precisar ser substituída. Esse parâmetro deve ser definido como zero para definir uma marca de nova análise em um arquivo que ainda não tenha uma.
ExistingGuid
GUID que identifica exclusivamente um ponto de nova análise existente. Se ExistingFileTag for uma marca que não seja da Microsoft e não for zero, esse parâmetro não deverá ser NULL.
Flags
Especifica os sinalizadores REPARSE_DATA_BUFFER_EX_XXXdefinidos em ntifs.h.
Retornar valor
Essa função retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:
Código de retorno | Descrição |
---|---|
STATUS_IO_REPARSE_TAG_MISMATCH | O valor da marca especificado em ExistingFileTag não corresponde ao do valor de marca existente. |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | Para um ponto de nova análise existente com uma marca não Microsoft, ExistingFileTag corresponde ao valor de marca existente, mas o Guid não corresponde ao Guid existente. |
Comentários
Os drivers de minifiltro devem usar FltTagFileEx em vez de FSCTL_SET_REPARSE_POINT_EX para definir um ponto de nova análise.
Nem todos os sistemas de arquivos dão suporte a pontos de nova análise; por exemplo, os sistemas de arquivos NTFS e ReFS dão suporte a eles, mas o sistema de arquivos FAT não. Os drivers de minifiltro podem determinar se um sistema de arquivos dá suporte a pontos de nova análise chamando FltQueryVolumeInformation, especificando FileFsAttributeInformation para o parâmetro FsInformation e examinando o sinalizador de bit FILE_SUPPORTS_REPARSE_POINTS na estrutura de FILE_FS_ATTRIBUTE_INFORMATION retornada.
Para remover um ponto de nova análise existente, chame FltUntagFile.
Para obter mais informações sobre pontos de nova análise, consulte a documentação do SDK do Microsoft Windows.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | fltkernel.h |