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 つです。
値 | 意味 |
---|---|
|
データは 、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 |