GetFileInformationByHandleEx 関数 (winbase.h)
指定したファイルのファイル情報を取得します。
デスクトップ アプリ用のこの関数のより基本的なバージョンについては、「 GetFileInformationByHandle」を参照してください。
ファイル ハンドルを使用してファイル情報を設定するには、「 SetFileInformationByHandle」を参照してください。
構文
BOOL GetFileInformationByHandleEx(
[in] HANDLE hFile,
[in] FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
[out] LPVOID lpFileInformation,
[in] DWORD dwBufferSize
);
パラメーター
[in] hFile
取得する情報を含むファイルへのハンドル。
このハンドルはパイプ ハンドルにしないでください。
[in] FileInformationClass
取得する情報の種類を指定する FILE_INFO_BY_HANDLE_CLASS 列挙値。
有効な値の表については、「解説」セクションを参照してください。
[out] lpFileInformation
要求されたファイル情報を受け取るバッファーへのポインター。 返される構造体は、 FileInformationClass で指定されたクラスに対応します。 有効な構造体型のテーブルについては、「解説」セクションを参照してください。
[in] dwBufferSize
lpFileInformation バッファーのサイズ (バイト単位)。
戻り値
関数が成功した場合、戻り値は 0 以外であり、ファイル情報データは lpFileInformation パラメーターによって指されるバッファーに格納されます。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
FileInformationClass が FileStreamInfo で、呼び出しは成功したがストリームが返されない場合、GetLastError によって返されるエラーはERROR_HANDLE_EOF。
特定のファイル情報クラスは、オペレーティング システムのリリースによって動作が若干異なります。 これらのクラスは基になるドライバーによってサポートされており、返される情報はオペレーティング システムのリリース間で変更される可能性があります。
次の表は、有効なファイル情報クラス型と、この関数で使用する対応するデータ構造体の型を示しています。
FileInformationClass 値 | lpFileInformation 型 |
---|---|
FileBasicInfo (0) | FILE_BASIC_INFO |
FileStandardInfo (1) | FILE_STANDARD_INFO |
FileNameInfo (2) | FILE_NAME_INFO |
FileStreamInfo (7) | FILE_STREAM_INFO |
FileCompressionInfo (8) | FILE_COMPRESSION_INFO |
FileAttributeTagInfo (9) | FILE_ATTRIBUTE_TAG_INFO |
FileIdBothDirectoryInfo (0xa) | FILE_ID_BOTH_DIR_INFO |
FileIdBothDirectoryRestartInfo (0xb) | FILE_ID_BOTH_DIR_INFO |
FileRemoteProtocolInfo (0xd) | FILE_REMOTE_PROTOCOL_INFO |
FileFullDirectoryInfo (0xe) | FILE_FULL_DIR_INFO |
FileFullDirectoryRestartInfo (0xf) | FILE_FULL_DIR_INFO |
FileStorageInfo (0x10) | FILE_STORAGE_INFO |
FileAlignmentInfo (0x11) | FILE_ALIGNMENT_INFO |
FileIdInfo (0x12) | FILE_ID_INFO |
FileIdExtdDirectoryInfo (0x13) | FILE_ID_EXTD_DIR_INFO |
FileIdExtdDirectoryRestartInfo (0x14) | FILE_ID_EXTD_DIR_INFO |
Transacted Operations
呼び出し時にスレッドにバインドされたトランザクションがある場合、関数は分離ファイル ビューの圧縮ファイル サイズを返します。 詳細については、「 トランザクション NTFS について」を参照してください。Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 Transparent Failover (TFO) | はい |
スケールアウト ファイル共有 (SO) を使う SMB 3.0 | はい |
クラスターの共有ボリューム ファイル システム (CsvFS) | はい |
Resilient File System (ReFS) | はい |
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib;Windows Server 2003 および Windows XP の FileExtd.lib |
[DLL] | Kernel32.dll |
再頒布可能パッケージ | Windows Server 2003 および Windows XP 上の Windows SDK。 |