Функция GetCompressedFileSizeTransactedW (winbase.h)
[Корпорация Майкрософт настоятельно рекомендует разработчикам использовать альтернативные средства для достижения потребностей вашего приложения. Многие сценарии, для которые TxF был разработан, можно достичь с помощью более простых и более доступных методов. Кроме того, TxF может быть недоступна в будущих версиях Microsoft Windows. Дополнительные сведения и альтернативные варианты TxF см. в разделе Альтернативные варианты использования транзакционных NTFS.]
Извлекает фактическое количество байтов дискового хранилища, используемого для хранения указанного файла в виде транзакции. Если файл находится на томе, поддерживающем сжатие, и файл сжимается, то полученное значение — сжатый размер указанного файла. Если файл расположен на томе, который поддерживает разреженные файлы, и файл является разреженным, то полученное значение — разреженный размер указанного файла.
Синтаксис
DWORD GetCompressedFileSizeTransactedW(
[in] LPCWSTR lpFileName,
[out, optional] LPDWORD lpFileSizeHigh,
[in] HANDLE hTransaction
);
Параметры
[in] lpFileName
Имя файла.
Не указывайте имя файла на неисключаемом устройстве, например канал или устройство связи, так как его размер файла не имеет смысла.
Файл должен находиться на локальном компьютере; в противном случае функция завершается ошибкой, а для последнего кода ошибки задано значение ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[out, optional] lpFileSizeHigh
Указатель на переменную, которая получает высокий порядок DWORD размера сжатого файла. Возвращаемое значение функции — это низкий порядок DWORD размера сжатого файла.
Этот параметр может быть
[in] hTransaction
Дескриптор транзакции. Этот дескриптор возвращается функцией CreateTransaction.
Возвращаемое значение
Если функция выполнена успешно, Возвращаемое значение — это низкий порядок
Если функция завершается ошибкой, и lpFileSizeHighNULL, возвращаемое значение INVALID_FILE_SIZE. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Если возвращаемое значение равно INVALID_FILE_SIZE и lpFileSizeHigh неNULL, приложение должно вызывать GetLastError, чтобы определить, успешно ли выполнена функция (значение NO_ERROR) или сбой (значение отличается от NO_ERROR).
Замечания
Приложение может определить, сжимается ли том путем вызова
Если файл не находится на томе, который поддерживает сжатие или разреженные файлы, или если файл не сжимается или разреженный файл, то полученное значение — фактический размер файла, то же самое, что и значение, возвращаемое вызовом GetFileSize.
символьные ссылки: Если путь указывает на символьную ссылку, функция возвращает размер файла целевого объекта.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технологии | Поддержанный |
---|---|
Протокол SMB 3.0 | Нет |
Отработка отказа SMB 3.0 (TFO) | Нет |
SMB 3.0 с масштабируемыми общими папками (SO) | Нет |
Файловая система общего тома кластера (CSVFS) | Нет |
Отказоустойчивая файловая система (ReFS) | Нет |
SMB 3.0 не поддерживает TxF.
Заметка
Заголовок winbase.h определяет GetCompressedFileSizeTransacted как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winbase.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |
См. также
управления транзакциями