GetVolumeInformationW

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

GetVolumeInformationW lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize

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

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

解説

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

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

[備考]
ユーザーがフロッピーディスクが入っていないフロッピードライブやコンパクトディスクが入っていない CD-ROM
ドライブに関する情報を取得しようとすると、システムはユーザーにフロッピーディスクまたはコンパクトディスクをそれぞれ挿入するよう求めるメッセージボックスを表示する。システムにこのメッセージボックスを表示させないようにするには、SEM_FAILCRITICALERRORS
を指定して SetErrorMode 関数を呼ぶ。FILE_VOL_IS_COMPRESSED
フラグはボリュームベースの圧縮の唯一のインジケータである。圧縮を示すためにファイルシステム名は変更されない。たとえば、このフラグは
DoubleSpace
ボリューム上で設定されて返される。圧縮がボリュームベースの場合、ボリューム全体が圧縮されるかされないかとなる。FILE_FILE_COMPRESSION
フラグは、ファイルシステムがファイルベースの圧縮をサポートするかどうかを示す。圧縮がファイルベースの場合、個々のファイルが圧縮されたりされなかったりする。FILE_FILE_COMPRESSION
と FILE_VOL_IS_COMPRESSED
フラグは相互排他的である。両方のビットが設定されて返されることはない。lpMaximumComponentLength
に格納される最大コンポーネント長値は、ボリュームが通常の FAT
ファイルシステム(または他のファイルシステム)のファイル名より長いものをサポートすることを示す唯一のインジケータである。長いファイル名のサポートを示すためにファイルシステム名は変更されない。GetCompressedFileSize
関数はファイルの圧縮サイズを取得する。GetFileAttributes
関数は個々のファイルが圧縮されているかを判定できる。シンボリックリンクの動作?
パスがシンボリックリンクを指す場合、関数はターゲットのボリューム情報を返す。Windows 8 および Windows Server
2012 以降、この関数は以下の技術によりサポートされる。
(以下省略)

情報

プラグイン / モジュール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