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 列挙型の値の 1 つです。

意味
FindStreamInfoStandard
0
データは 、WIN32_FIND_STREAM_DATA 構造体で返されます。

[out] lpFindStreamData

ファイル ストリーム データを受信するバッファーへのポインター。 このデータの形式は 、InfoLevel パラメーターの値によって異なります。

dwFlags

将来利用するために予約されています。 このパラメーターは 0 である必要があります。

戻り値

関数が成功した場合、戻り値は 、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) はい
スケールアウト ファイル共有 (SO) を使う SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい
 

SMB 3.0 では、64K 以下のストリームの一覧がサポートされています。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー fileapi.h (Windows.h、WinBase.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

File Management 関数

FindClose

FindFirstStreamTransactedW

FindNextStreamW

STREAM_INFO_LEVELS

WIN32_FIND_STREAM_DATA