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) | Sí |
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) |