Función FltTagFileEx (fltkernel.h)
FltTagFileEx establece un punto de reanálisis en un archivo o directorio.
Sintaxis
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
Puntero opaco a la instancia del controlador de minifiltro que inició esta solicitud de E/S. Este parámetro es obligatorio y no puede ser NULL.
FileObject
Puntero al objeto de archivo del 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.
FileTag
Etiqueta de punto de reanálisis. Puede ser uno de los valores IO_REPARSE_TAG_XXX definidos en ntifs.h.
Guid
GUID que identifica de forma única el punto de reanálisis. Si FileTag es una etiqueta que no es 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.
DataBuffer
Puntero a un búfer que contiene datos definidos por el usuario para el punto de reanálisis.
DataBufferLength
Tamaño, en bytes, del búfer al que apunta DataBuffer .
ExistingFileTag
Etiqueta existente en el archivo si la etiqueta tiene que reemplazarse. Este parámetro debe establecerse en cero para establecer una etiqueta de reanálisis en un archivo que aún no tiene una.
ExistingGuid
GUID que identifica de forma única un punto de reanálisis existente. Si ExistingFileTag es una etiqueta que no es de Microsoft y no es cero, este parámetro no debe ser NULL.
Flags
Especifica las marcas REPARSE_DATA_BUFFER_EX_XXX definidas en ntifs.h.
Valor devuelto
Esta función devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:
Código de retorno | Descripción |
---|---|
STATUS_IO_REPARSE_TAG_MISMATCH | El valor de etiqueta especificado en ExistingFileTag no coincide con el del valor de etiqueta existente. |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | Para un punto de reanálisis existente con una etiqueta que no sea de Microsoft, ExistingFileTag coincide con el valor de etiqueta existente, pero el Guid no coincide con el Guid existente. |
Comentarios
Los controladores de minifiltro deben usar FltTagFileEx en lugar de FSCTL_SET_REPARSE_POINT_EX para establecer un punto de reanálisis.
No todos los sistemas de archivos admiten puntos de reanálisis; por ejemplo, los sistemas de archivos NTFS y ReFS los admiten, pero 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 | Valor |
---|---|
Header | fltkernel.h |