FSCTL_SET_ZERO_DATA IOCTL (winioctl.h)

Rellena un intervalo especificado de un archivo con ceros (0). Si el archivo está disperso o comprimido, el sistema de archivos NTFS puede desasignar espacio en disco en el archivo. Esto establece el intervalo de bytes en ceros (0) sin extender el tamaño del archivo.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to a file
  FSCTL_SET_ZERO_DATA,              // 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 .

Si usa la función WriteFile para escribir ceros (0) en un archivo disperso, el sistema de archivos asigna espacio en disco para los datos que está escribiendo. Si usa el código de control de FSCTL_SET_ZERO_DATA para escribir ceros (0) en un archivo disperso y la región cero (0) es lo suficientemente grande, es posible que el sistema de archivos no asigne espacio en disco.

Si usa el código de control FSCTL_SET_ZERO_DATA para escribir ceros (0) en un archivo no disperso, se escriben ceros (0) en el archivo. El sistema asigna almacenamiento en disco para todo el intervalo cero (0), que equivale a usar la función WriteFile para escribir ceros (0) en un archivo.

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.

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
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)

Requisitos

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

Consulte también