Поделиться через


Функция LZRead (lzexpand.h)

Считывает (максимум) указанное количество байтов из файла и копирует их в буфер.

Синтаксис

INT LZRead(
  [in]  INT  hFile,
  [out] CHAR *lpBuffer,
  [in]  INT  cbRead
);

Параметры

[in] hFile

Дескриптор файла.

[out] lpBuffer

Указатель на буфер, который получает байты, считанные из файла. Убедитесь, что этот буфер больше , чем cbRead.

[in] cbRead

Число считываемых байтов.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение указывает количество прочитанных байтов.

Если функция завершается сбоем, возвращаемое значение представляет собой код LZERROR_*. Эти коды имеют значения меньше нуля. Обратите внимание, что LZRead не вызывает ни SetLastError, ни SetLastErrorEx; таким образом, его сбой не влияет на код последней ошибки потока.

Ниже приведен список кодов ошибок, которые LZRead может возвращать при сбое.

Код возврата Описание
LZERROR_BADINHANDLE
Недопустимый дескриптор, определяющий исходный файл. Не удается прочитать файл.
LZERROR_BADOUTHANDLE
Недопустимый дескриптор, определяющий целевой файл. Не удается записать файл.
LZERROR_BADVALUE
Один из входных параметров недопустим.
LZERROR_GLOBALLOC
Превышено максимальное количество открытых сжатых файлов или не удается выделить локальную память.
LZERROR_GLOBLOCK
Дескриптор файла LZ не может быть заблокирован.
LZERROR_READ
Недопустимый формат исходного файла.
LZERROR_WRITE
Недостаточно места для выходного файла.
 

Для этой функции нет расширенных сведений об ошибке; не вызывать GetLastError.

Комментарии

Дескриптор, определяющий файл, должен быть получен путем вызова функции LZInit или LZOpenFile .

Если файл сжат, LZRead работает с развернутым изображением файла и копирует байты данных в указанный буфер.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

CsvFs выполняет перенаправление операций ввода-вывода для сжатых файлов.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header lzexpand.h (включая Windows.h)
Библиотека Lz32.lib
DLL Lz32.dll

См. также раздел

Сжатие и распаковка файлов

Функции управления файлами

LZInit

LZOpenFile

LZSeek