GetFileInformationByHandle 関数 (fileapi.h)
指定したファイルのファイル情報を取得します。
この関数のより高度なバージョンについては、「 GetFileInformationByHandleEx」を参照してください。
ファイル ハンドルを使用してファイル情報を設定するには、「 SetFileInformationByHandle」を参照してください。
構文
BOOL GetFileInformationByHandle(
[in] HANDLE hFile,
[out] LPBY_HANDLE_FILE_INFORMATION lpFileInformation
);
パラメーター
[in] hFile
取得する情報を含むファイルへのハンドル。
このハンドルはパイプ ハンドルにしないでください。
[out] lpFileInformation
ファイル情報を受け取る BY_HANDLE_FILE_INFORMATION 構造体へのポインター。
戻り値
関数が成功した場合、戻り値は 0 以外であり、ファイル情報データは lpFileInformation パラメーターによって指されるバッファーに格納されます。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
オペレーティング システムの基になるネットワーク機能と、接続されているサーバーの種類によっては、 GetFileInformationByHandle 関数が失敗したり、部分的な情報を返したり、指定されたファイルの完全な情報を返したりする場合があります。
BY_HANDLE_FILE_INFORMATION構造体で返される VolumeSerialNumber メンバーと FileIndex メンバーを比較して、2 つのパスが同じターゲットにマップされているかどうかを判断できます。たとえば、2 つのファイル パスを比較し、それらが同じディレクトリにマップされているかどうかを判断できます。
IIn Windows 8とWindows Server 2012、この関数は次のテクノロジでサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 Transparent Failover (TFO) | はい |
スケールアウト ファイル共有 (SO) を使う SMB 3.0 | はい |
クラスターの共有ボリューム ファイル システム (CsvFS) | はい |
Resilient File System (ReFS) | はい |
Transacted Operations
呼び出し時にスレッドにバインドされたトランザクションがある場合、関数は分離ファイル ビューの圧縮ファイル サイズを返します。 詳細については、「 トランザクション NTFS について」を参照してください。要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | fileapi.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |