Compartir a través de


Función FltTagFile (fltkernel.h)

FltTagFile establece una etiqueta de reanálisis en un archivo o directorio.

Sintaxis

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

Puntero de instancia opaco para la instancia del controlador de minifiltro que inició esta solicitud de E/S. Este parámetro es obligatorio y no puede ser NULL.

[in] FileObject

Puntero a un objeto de archivo para el archivo o directorio en el que se va a establecer un punto de reanálisis. El objeto de archivo debe abrirse para FILE_WRITE_DATA acceso. Este parámetro es obligatorio y no puede ser NULL.

[in] FileTag

Etiqueta de punto de reanálisis. Si se modifica una etiqueta de reanálisis existente, la etiqueta especificada en este parámetro debe coincidir con la etiqueta del punto de reanálisis que se va a modificar.

[in, optional] Guid

GUID que identifica de forma única el tipo de punto de reanálisis. Si FileTag no es una etiqueta de Microsoft, este parámetro es obligatorio y no puede ser NULL. Si se modifica una etiqueta de reanálisis existente, el GUID especificado en este parámetro debe coincidir con el GUID del punto de reanálisis que se va a modificar.

[in] DataBuffer

Puntero a un búfer que contiene datos definidos por el usuario para el punto de reanálisis.

[in] DataBufferLength

Tamaño, en bytes, del búfer al que apunta DataBuffer .

Valor devuelto

FltTagFile devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx encontró un error de asignación de grupo. Se trata de un código de error.
STATUS_INVALID_DEVICE_REQUEST
El sistema de archivos no admite puntos de reanálisis. Se trata de un código de error.
STATUS_INVALID_PARAMETER
FileTag no es una etiqueta de Microsoft y se especificó NULL para Guid. Se trata de un código de error.
STATUS_IO_REPARSE_TAG_MISMATCH
La etiqueta de reanálisis especificada por el autor de la llamada no coincide con la etiqueta del punto de reanálisis que se va a modificar. Se trata de un código de error.
STATUS_REPARSE_ATTRIBUTE_CONFLICT
El GUID de reanálisis especificado por el autor de la llamada no coincide con el GUID del punto de reanálisis que se va a modificar. Se trata de un código de error.

Comentarios

Los controladores de minifiltro deben usar FltTagFile en lugar de FSCTL_SET_REPARSE_POINT para establecer un punto de reanálisis.

No todos los sistemas de archivos admiten puntos de reanálisis. El sistema de archivos NTFS los admite; el sistema de archivos FAT no. Los controladores de minifiltro pueden determinar si un sistema de archivos admite puntos de reanálisis llamando a FltQueryVolumeInformation, especificando FileFsAttributeInformation para el parámetro FsInformation y examinando la marca de bits de FILE_SUPPORTS_REPARSE_POINTS en la estructura de FILE_FS_ATTRIBUTE_INFORMATION devuelta.

Para quitar un punto de reanálisis existente, llame a FltUntagFile.

Para obtener más información sobre los puntos de reanálisis, consulte la documentación de Microsoft Windows SDK.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
Archivo DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Consulte también

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