Compartir a través de


FSCTL_MARK_HANDLE IOCTL (winioctl.h)

Marca un archivo o directorio especificado y su registro de diario de cambios con información sobre los cambios en ese archivo o directorio.

Para realizar esta operación, llame a la función DeviceIoControl mediante los parámetros siguientes.

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to file or directory
  FSCTL_MARK_HANDLE,            // dwIoControlCode
  (LPVOID)lpInBuffer,           // input buffer
  (DWORD)nInBufferSize,         // size of input buffer
  NULL,                         // lpOutBuffer
  0,                            // nOutBufferSize
  (LPDWORD) lpBytesReturned,    // number of bytes returned
  (LPOVERLAPPED) lpOverlapped   // OVERLAPPED structure
);

Comentarios

Para conocer las implicaciones de la E/S superpuesta en esta operación, consulte la sección Comentarios del tema DeviceIoControl .

FSCTL_MARK_HANDLE es la única operación de diario de cambios que funciona en un archivo o directorio individual. No afecta a nada que el usuario pueda hacer con el elemento. En su lugar, agrega información al archivo o directorio, ya sea proporcionando información sobre cómo cambió el sistema operativo el elemento o agregando un flujo de datos privado al elemento.

Si hay algún cambio en el archivo o directorio, la información agregada con FSCTL_MARK_HANDLE también se copia en el registro USN creado para el archivo o directorio. Tenga en cuenta que estas dos operaciones pueden producirse independientemente entre sí; por ejemplo, no es necesario que exista un registro USN para poder marcar un archivo como no se puede desfragmentar y no es necesario marcar un archivo o directorio para actualizar el contenido del registro USN correspondiente. Para obtener más información sobre la información con la que FSCTL_MARK_HANDLE puede marcar un elemento (vea MARK_HANDLE_INFO ).

No es un error usar FSCTL_MARK_HANDLE mientras se elimina el diario de cambios del volumen o está inactivo. La información adecuada se aplica al archivo o directorio independientemente del estado del diario de cambios, siempre y cuando exista el diario de cambios.

Tenga en cuenta que es posible que las marcas de tiempo no se actualicen correctamente para un archivo remoto. Para garantizar resultados coherentes, use E/S sin búfer.

El volumen debe ser NTFS.

En Windows 8 y Windows Server 2012, este código es compatible con las siguientes tecnologías.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0 No
Conmutación por error transparente (TFO) de SMB 3.0 No
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) No
Sistema de archivos de Volumen compartido de clúster (CsvFS)

CsvFs siempre emite USN_SOURCE_REPLICATION_MANAGEMENT y MARK_HANDLE_PROTECT_CLUSTERS para los archivos aptos para E/S directa.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winioctl.h (incluya Windows.h)

Consulte también