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 marca de ponto. Pode ser um dos valores deXXX IO_REPARSE_TAG_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 ao qual databuffer pontos.
ExistingFileTag
Marca existente no arquivo se a marca tiver que 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 um.
ExistingGuid
GUID que identifica exclusivamente um ponto de nova análise existente. Se ExistingFileTag for uma marca diferente da Microsoft e não for zero, esse parâmetro não deverá ser NULL.
Flags
Especifica os sinalizadores deXXX REPARSE_DATA_BUFFER_EX_ definidos em ntifs.h.
Valor de retorno
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 valor da 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. |
Observações
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 bits 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 |