GetVolumeInformationByHandleW

指定したファイルに関連付けられたファイルシステムとボリュームに関する情報を取得する。

GetVolumeInformationByHandleW hFile, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize

hFile : [intptr] ファイルのハンドル。
lpVolumeNameBuffer : [wstr] 指定したボリュームの名前を受け取るバッファへのポインタ。最大バッファサイズは `MAX_PATH+1`。
nVolumeNameSize : [int] ボリューム名バッファの長さ(**WCHAR** 単位)。最大バッファサイズは `MAX_PATH+1`。ボリューム名バッファが提供されていない場合、このパラメータは無視される。
lpVolumeSerialNumber : [var] ボリュームシリアル番号を受け取る変数へのポインタ。シリアル番号が不要な場合、このパラメータは **NULL** でよい。この関数は、ハードディスクがフォーマットされたときにオペレーティングシステムが割り当てるボリュームシリアル番号を返す。製造元が割り当てるハードディスクのシリアル番号をプログラムで取得するには、Windows Management Instrumentation (WMI) [Win32_PhysicalMedia](/previous-versions/windows/desktop/cimwin32a/win32-physicalmedia) プロパティ **SerialNumber** を使用する。
lpMaximumComponentLength : [var] 指定したファイルシステムがサポートするファイル名コンポーネントの最大長(**WCHAR** 単位)を受け取る変数へのポインタ。ファイル名コンポーネントとは、ファイル名のバックスラッシュ間の部分である。*_lpMaximumComponentLength_ が指す変数に格納される値は、指定したファイルシステムが長い名前をサポートすることを示すために使用される。たとえば、長い名前をサポートする FAT ファイルシステムでは、関数は以前の 8.3 インジケータではなく 255 を格納する。長い名前は NTFS ファイルシステムを使用するシステムでもサポートできる。
lpFileSystemFlags : [var] 指定したファイルシステムに関連付けられたフラグを受け取る変数へのポインタ。このパラメータは以下のフラグの 1 つ以上を含むことができる。ただし、**FILE_FILE_COMPRESSION** と **FILE_VOL_IS_COMPRESSED** は相互排他的である。
lpFileSystemNameBuffer : [wstr] ファイルシステムの名前を受け取るバッファへのポインタ。たとえば FAT ファイルシステムまたは NTFS ファイルシステム。バッファサイズは _nFileSystemNameSize_ パラメータで指定する。
nFileSystemNameSize : [int] ファイルシステム名バッファの長さ(**WCHAR** 単位)。最大バッファサイズは `MAX_PATH+1`。ファイルシステム名バッファが提供されていない場合、このパラメータは無視される。

(プラグイン / モジュール : kernel32.dll)

解説

指定したファイルに関連付けられたファイルシステムとボリュームに関する情報を取得する。

[戻り値]
要求されたすべての情報が取得された場合、戻り値は 0 以外。要求されたすべての情報が取得されなかった場合、戻り値は
0。拡張エラー情報を取得するには
[GetLastError](/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror)
を呼ぶ。

[備考]
Windows 8 および Windows Server 2012 では、この関数は以下の技術によりサポートされる。 | 技術 |
サポート | |--------|--------| | Server Message Block (SMB) 3.0 protocol
| No | | SMB 3.0 Transparent Failover (TFO) | No | | SMB 3.0 with
Scale-out File Shares (SO) | No | | Cluster Shared Volume File System
(CsvFS) | Yes | | Resilient File System (ReFS) | Yes | SMB
はボリューム管理関数をサポートしない。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs