Función GetCompressedFileSizeTransactedA (winbase.h)
[Microsoft recomienda encarecidamente que los desarrolladores usen medios alternativos para lograr las necesidades de la aplicación. Muchos escenarios para los que se desarrolló TxF se pueden lograr mediante técnicas más sencillas y disponibles. Además, es posible que TxF no esté disponible en versiones futuras de Microsoft Windows. Para más información y alternativas a TxF, consulte Alternativas al uso de NTFS transaccional].
Recupera el número real de bytes de almacenamiento en disco que se usa para almacenar un archivo especificado como una operación de transacción. Si el archivo se encuentra en un volumen que admite la compresión y el archivo se comprime, el valor obtenido es el tamaño comprimido del archivo especificado. Si el archivo se encuentra en un volumen que admite archivos dispersos y el archivo es un archivo disperso, el valor obtenido es el tamaño disperso del archivo especificado.
Sintaxis
DWORD GetCompressedFileSizeTransactedA(
[in] LPCSTR lpFileName,
[out, optional] LPDWORD lpFileSizeHigh,
[in] HANDLE hTransaction
);
Parámetros
[in] lpFileName
Nombre del archivo.
No especifique el nombre de un archivo en un dispositivo que no esté consultando, como una canalización o un dispositivo de comunicaciones, ya que su tamaño de archivo no tiene ningún significado.
El archivo debe residir en el equipo local; de lo contrario, se produce un error en la función y el último código de error se establece en ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[out, optional] lpFileSizeHigh
Puntero a una variable que recibe el DWORD de orden superior del tamaño de archivo comprimido. El valor devuelto de la función es el DWORD de orden bajo del tamaño de archivo comprimido.
Este parámetro puede ser NULL si no se necesita el DWORD de orden superior del tamaño de archivo comprimido. Los archivos de menos de 4 gigabytes de tamaño no necesitan el DWORD de orden superior.
[in] hTransaction
Identificador de la transacción. La función CreateTransaction devuelve este identificador.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es el DWORD de orden bajo del número real de bytes de almacenamiento en disco usado para almacenar el archivo especificado y, si lpFileSizeHigh no es NULL, la función coloca el DWORD de orden superior de ese valor real en el DWORD al que apunta ese parámetro. Este es el tamaño de archivo comprimido para los archivos comprimidos, el tamaño real del archivo para los archivos no comprimidos.
Si se produce un error en la función y lpFileSizeHigh es NULL, el valor devuelto se INVALID_FILE_SIZE. Para obtener información de error extendida, llame a GetLastError.
Si el valor devuelto es INVALID_FILE_SIZE y lpFileSizeHigh no es NULL, una aplicación debe llamar a GetLastError para determinar si la función se ha realizado correctamente (el valor es NO_ERROR) o no (el valor es distinto de NO_ERROR).
Comentarios
Una aplicación puede determinar si un volumen se comprime mediante una llamada a GetVolumeInformation y, a continuación, comprueba el estado de la marca FS_VOL_IS_COMPRESSED en el valor DWORD al que apunta el parámetro lpFileSystemFlags de esa función.
Si el archivo no se encuentra en un volumen que admite la compresión o los archivos dispersos, o si el archivo no está comprimido o un archivo disperso, el valor obtenido es el tamaño real del archivo, igual que el valor devuelto por una llamada a GetFileSize.
Vínculos simbólicos: Si la ruta de acceso apunta a un vínculo simbólico, la función devuelve el tamaño de archivo del destino.
En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.
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) | No |
Sistema de archivos resistente a errores (ReFS) | No |
SMB 3.0 no admite TxF.
Nota
El encabezado winbase.h define GetCompressedFileSizeTransacted como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Vea también
Compresión y descompresión de archivos