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 列舉類型中的其中一個值。
值 | 意義 |
---|---|
|
資料會以 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 透明容錯移轉 (TFO) | 是 |
具有向外延展檔案共用的 SMB 3.0 (SO) | 是 |
叢集共用磁片區檔案系統 (CsvFS) | 是 |
彈性檔案系統 (ReFS) | 是 |
SMB 3.0 支援小於或等於 64K 的資料流程清單。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | fileapi.h (包括 Windows.h、WinBase.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |