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

Confira também

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFile

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER