Função FltTagFile (fltkernel.h)

FltTagFile define uma marca de nova análise em um arquivo ou diretório.

Sintaxe

NTSTATUS FLTAPI FltTagFile(
  [in]           PFLT_INSTANCE InitiatingInstance,
  [in]           PFILE_OBJECT  FileObject,
  [in]           ULONG         FileTag,
  [in, optional] GUID          *Guid,
  [in]           PVOID         DataBuffer,
  [in]           USHORT        DataBufferLength
);

Parâmetros

[in] InitiatingInstance

Ponteiro de instância opaco para a instância de driver de minifiltro que iniciou essa solicitação de E/S. Esse parâmetro é necessário e não pode ser NULL.

[in] FileObject

Ponteiro para um 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.

[in] FileTag

Marca de ponto de nova análise. Se uma marca de nova análise existente estiver sendo modificada, a marca especificada neste parâmetro deverá corresponder à marca do ponto de nova análise a ser modificada.

[in, optional] Guid

GUID que identifica exclusivamente o tipo de ponto de nova análise. Se FileTag não for uma marca 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.

[in] DataBuffer

Ponteiro para um buffer que contém dados definidos pelo usuário para o ponto de nova análise.

[in] DataBufferLength

Tamanho, em bytes, do buffer para o qual o DataBuffer aponta.

Retornar valor

FltTagFile retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx encontrou uma falha de alocação de pool. Este é um código de erro.
STATUS_INVALID_DEVICE_REQUEST
O sistema de arquivos não dá suporte a pontos de nova análise. Este é um código de erro.
STATUS_INVALID_PARAMETER
FileTag não é uma marca da Microsoft e NULL foi especificado para Guid. Este é um código de erro.
STATUS_IO_REPARSE_TAG_MISMATCH
A marca de nova análise especificada pelo chamador não correspondeu à marca do ponto de nova análise a ser modificado. Este é um código de erro.
STATUS_REPARSE_ATTRIBUTE_CONFLICT
O GUID de nova análise especificado pelo chamador não correspondeu ao GUID do ponto de nova análise a ser modificado. Este é um código de erro.

Comentários

Os drivers de minifiltro devem usar FltTagFile em vez de FSCTL_SET_REPARSE_POINT para definir um ponto de nova análise.

Nem todos os sistemas de arquivos dão suporte a pontos de nova análise. O sistema de arquivos NTFS dá suporte a eles; 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
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

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

FltTagFileEx

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER