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


Функция FindFirstStreamW (fileapi.h)

Перечисляет первый поток с типом потока ::$DATA в указанном файле или каталоге.

Чтобы выполнить эту операцию как транзакцию, используйте функцию FindFirstStreamTransactedW .

Синтаксис

HANDLE FindFirstStreamW(
  [in]  LPCWSTR            lpFileName,
  [in]  STREAM_INFO_LEVELS InfoLevel,
  [out] LPVOID             lpFindStreamData,
        DWORD              dwFlags
);

Параметры

[in] lpFileName

Полное имя файла.

[in] InfoLevel

Уровень сведений возвращаемых данных. Этот параметр является одним из значений в типе перечисления STREAM_INFO_LEVELS .

Значение Значение
FindStreamInfoStandard
0
Данные возвращаются в WIN32_FIND_STREAM_DATA структуре.

[out] lpFindStreamData

Указатель на буфер, который получает данные файлового потока. Формат этих данных зависит от значения параметра InfoLevel .

dwFlags

Зарезервировано для последующего использования. Этот параметр должен быть равен нулю.

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

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

Если функция завершается неудачно, возвращается значение INVALID_HANDLE_VALUE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Если потоки не найдены, функция завершается сбоем, и GetLastError возвращает ERROR_HANDLE_EOF (38).

Если файловая система не поддерживает потоки, функция завершается сбоем и GetLastError возвращает ERROR_INVALID_PARAMETER (87).

Комментарии

Функция FindFirstStreamW открывает дескриптор поиска и возвращает сведения о первом потоке $DATA в указанном файле или каталоге. Для файлов всегда используется поток данных без имени по умолчанию ::$DATA. Каталоги не имеют $DATA потоков по умолчанию и не могут иметь поток данных без имени, но могут иметь именованные потоки данных, заданные после их создания. После установки дескриптора поиска используйте его в вызовах функции FindNextStreamW для поиска других потоков в указанном файле или каталоге. Если дескриптор поиска больше не нужен, его следует закрыть с помощью функции FindClose .

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

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

SMB 3.0 поддерживает список потоков размером не более 64 КБ.

Требования

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

См. также

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

FindClose

FindFirstStreamTransactedW

FindNextStreamW

STREAM_INFO_LEVELS

WIN32_FIND_STREAM_DATA