<Return[G]><Top>

GetVolumeInformation

Declare Function Api_GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal RootPathName$, ByVal VolNameBuff$, ByVal VolNameSize&, VolSerialNum&, MaxComponentLen&, FileSysFlag&, ByVal FileSysNameBuff$, ByVal FileSysNameSize&)

Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

指定されたルートディレクトリのファイルシステムとボリュームに関する情報を取得する。

パラメータ
lpRootPathName
    ボリュームのルートディレクトリ名を保持している文字列へのポインタを指定する。

    NULL を指定すると、現在のディレクトリのルートディレクトリが使われる。最後に円記号(\)を追加しなければならない。

    たとえば、「\\MyServer\MyShare」は「\\MyServer\MyShare\」、C ドライブは「C:\」と指定する。
lpVolumeNameBuffer
    1 個のバッファへのポインタを指定する。関数から制御が返ると、このバッファに、指定されたボリュームの名前が格納される。

    この情報が不要なときは、NULL を指定する。
nVolumeNameSize
    ボリューム名バッファのサイズを、TCHAR 単位で指定する。

    lpVolumeNameBuffer パラメータで NULL を指定した場合、nVolumeNameSize パラメータは無視される。
lpVolumeSerialNumber
    1 個の変数へのポインタを指定する。関数から制御が返ると、この変数に、ボリュームのシリアル番号が格納される。

    シリアル番号の情報が不要な場合、NULL を指定する。
    Windows 95/98:問い合わせたボリュームがネットワークドライブの場合、シリアル番号は返らない。
lpMaximumComponentLength
    1 個の変数へのポインタを指定する。

    関数から制御が返ると、この変数に、指定したファイルシステムがサポートしているファイル名コンポーネントの最大長が TCHAR 単位で格

    納される。ファイル名コンポーネントとは、ファイル名(パス名)のうち、両側が円記号(\)で挟まれた部分のことを指す。
    lpMaximumComponentLength が指す変数に格納された値を使うと、指定したファイルシステムが長いファイル名をサポートしているかどうか

    を判断できる。たとえば、長いファイル名をサポートしている FAT ファイルシステム(VFAT)に対してこの関数を実行すると、以前の 8.3

    の値ではなく、255 という値が返る。NTFS ファイルシステムでも、長いファイル名がサポートされている。
lpFileSystemFlags
    1 個の変数へのポインタを指定する。

    関数から制御が返ると、この変数に、指定したファイルシステムに関連付けられたフラグが格納される。

    次の値の任意の組み合わせが格納される。ただし、FS_FILE_COMPRESSION と FS_VOL_IS_COMPRESSED は相互に排他的で、

    これらの両方が同時に返ることはない。

    値                                                   

意味                                                                                                                       

    FS_CASE_IS_PRESERVED

ファイルシステムは、ディスクにファイル名を記録するときに、大文字と小文字を区別して保存する。

    FS_CASE_SENSITIVE

ファイルシステムは、ファイル名の大文字と小文字の区別をサポートしている。

    FS_UNICODE_STORED_ON_DISK

ファイルシステムは、Unicode のファイル名をサポートしていて、ディスク上でも正しく表示される。

    FS_PERSISTENT_ACLS

 

ファイルシステムは、ACL(アクセス制御リスト)の保存と適用を行う。

たとえば、NTFS は ACL の保存と適用を行うが、FAT は ACL をサポートしていない。

    FS_FILE_COMPRESSION

ファイルシステムは、ファイルベースの圧縮をサポートしている。

    FS_VOL_IS_COMPRESSED

指定されたボリュームは、圧縮ボリューム(たとえば、DoubleSpace のボリューム)である。

    FILE_NAMED_STREAMS

ファイルシステムは、名前付きストリームをサポートしている。

    FILE_SUPPORTS_ENCRYPTION

ファイルシステムは、暗号化ファイルシステム(EFS)をサポートしている。

    FILE_SUPPORTS_OBJECT_IDS

ファイルシステムは、オブジェクト識別子をサポートしている。

    FILE_SUPPORTS_REPARSE

                                           _POINTS

ファイルシステムは、再解析ポイントをサポートしている。

 

    FILE_SUPPORTS_SPARSE_FILES

 

ファイルシステムは、スパースファイル(疎なファイル、未使用の領域が多い、または同じ値が

長く続くファイル)をサポートしている。

    FILE_VOLUME_QUOTAS

ファイルシステムは、ディスククォータ(ディスク使用量の割り当て機能)をサポートしている。

lpFileSystemNameBuffer
    1 個のバッファへのポインタを指定する。

    関数から制御が返ると、このバッファに、ファイルシステムの名前("FAT"、"NTFS" など)が格納される。この情報が不要な場合、

    NULL を指定する。
nFileSystemNameSize
    システム名バッファの長さを、TCHAR 単位で指定する。lpFileSystemNameBuffer パラメータで NULL を指定した場合、

    nFileSystemNameSize パラメータは無視される。
 

戻り値
    要求されたすべての情報を取得できた場合、0 以外の値が返る。
    それ以外の場合は、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。