GetVolumeInformationByHandleW 関数 (fileapi.h)

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

ファイルまたはディレクトリの現在の圧縮状態を取得するには、 FSCTL_GET_COMPRESSIONを使用します。

構文

BOOL GetVolumeInformationByHandleW(
  [in]            HANDLE  hFile,
  [out, optional] LPWSTR  lpVolumeNameBuffer,
  [in]            DWORD   nVolumeNameSize,
  [out, optional] LPDWORD lpVolumeSerialNumber,
  [out, optional] LPDWORD lpMaximumComponentLength,
  [out, optional] LPDWORD lpFileSystemFlags,
  [out, optional] LPWSTR  lpFileSystemNameBuffer,
  [in]            DWORD   nFileSystemNameSize
);

パラメーター

[in] hFile

ファイルへのハンドル。

[out, optional] lpVolumeNameBuffer

指定したボリュームの名前を受け取るバッファーへのポインター。 最大バッファー サイズは です MAX_PATH+1

[in] nVolumeNameSize

ボリューム名バッファーの長さ ( WCHAR単位)。 最大バッファー サイズは です MAX_PATH+1

ボリューム名バッファーが指定されていない場合、このパラメーターは無視されます。

[out, optional] lpVolumeSerialNumber

ボリュームのシリアル番号を受け取る変数へのポインター。

シリアル番号が不要な場合、このパラメーターは NULL にすることができます

この関数は、ハード ディスクのフォーマット時にオペレーティング システムによって割り当てられるボリュームのシリアル番号を返します。 製造元が割り当てるハード ディスクのシリアル番号をプログラムで取得するには、Windows Management Instrumentation (WMI) Win32_PhysicalMedia プロパティ SerialNumber を使用します。

[out, optional] lpMaximumComponentLength

指定したファイル システムがサポートするファイル名コンポーネントの最大長 ( WCHAR単位) を受け取る変数へのポインター。

ファイル名コンポーネントは、円記号の間のファイル名の部分です。

*lpMaximumComponentLength が指す変数に格納されている値は、指定されたファイル システムが長い名前をサポートしていることを示すために使用されます。 たとえば、長い名前をサポートする FAT ファイル システムの場合、関数は前の 8.3 インジケーターではなく値 255 を格納します。 NTFS ファイル システムを使用するシステムでも、長い名前をサポートできます。

[out, optional] lpFileSystemFlags

指定したファイル システムに関連付けられているフラグを受け取る変数へのポインター。

このパラメーターには、次のフラグの 1 つ以上を指定できます。 ただし、 FILE_FILE_COMPRESSIONFILE_VOL_IS_COMPRESSED は相互に排他的です。

意味
FILE_CASE_SENSITIVE_SEARCH
0x00000001
指定されたボリュームでは、大文字と小文字を区別するファイル名がサポートされます。
FILE_CASE_PRESERVED_NAMES
0x00000002
指定されたボリュームでは、ディスクに名前を配置するときに、ファイル名の大文字と小文字の保持がサポートされます。
FILE_UNICODE_ON_DISK
0x00000004
指定されたボリュームでは、ディスクに表示されるファイル名の Unicode がサポートされます。
FILE_PERSISTENT_ACLS
0x00000008
指定されたボリュームは、アクセス制御リスト (ACL) を保持して適用します。 たとえば、NTFS ファイル システムでは ACL が保持および適用され、FAT ファイル システムでは保持されません。
FILE_FILE_COMPRESSION
0x00000010
指定されたボリュームは、ファイルベースの圧縮をサポートします。
FILE_VOLUME_QUOTAS
0x00000020
指定されたボリュームでは、ディスク クォータがサポートされます。
FILE_SUPPORTS_SPARSE_FILES
0x00000040
指定されたボリュームでは、スパース ファイルがサポートされます。
FILE_SUPPORTS_REPARSE_POINTS
0x00000080
指定されたボリュームでは、ポイントの再解析がサポートされています。
FILE_VOLUME_IS_COMPRESSED
0x00008000
指定されたボリュームは、DoubleSpace ボリュームなどの圧縮ボリュームです。
FILE_SUPPORTS_OBJECT_IDS
0x00010000
指定されたボリュームは、オブジェクト識別子をサポートします。
FILE_SUPPORTS_ENCRYPTION
0x00020000
指定されたボリュームは、暗号化されたファイル システム (EFS) をサポートしています。 詳細については、「 ファイルの暗号化」を参照してください。
FILE_NAMED_STREAMS
0x00040000
指定されたボリュームは、名前付きストリームをサポートします。
FILE_READ_ONLY_VOLUME
0x00080000
指定されたボリュームは読み取り専用です。
FILE_SEQUENTIAL_WRITE_ONCE
0x00100000
指定されたボリュームは、単一の順次書き込みをサポートします。
FILE_SUPPORTS_TRANSACTIONS
0x00200000
指定されたボリュームはトランザクションをサポートします。 詳細については、「 KTM について」を参照してください。
FILE_SUPPORTS_HARD_LINKS
0x00400000
指定されたボリュームでは、ハード リンクがサポートされています。 詳細については、「 ハード リンクとジャンクション」を参照してください。

Windows Vista および Windows Server 2008: この値はサポートされていません。

FILE_SUPPORTS_EXTENDED_ATTRIBUTES
0x00800000
指定されたボリュームは拡張属性をサポートします。 拡張属性は、アプリケーションがファイルに関連付けることができるアプリケーション固有のメタデータの一部であり、ファイルのデータの一部ではありません。

Windows Vista および Windows Server 2008: この値はサポートされていません。

FILE_SUPPORTS_OPEN_BY_FILE_ID
0x01000000
ファイル システムでは、FileID による開きがサポートされています。 詳細については、「 FILE_ID_BOTH_DIR_INFO」を参照してください。

Windows Vista および Windows Server 2008: この値はサポートされていません。

FILE_SUPPORTS_USN_JOURNAL
0x02000000
指定されたボリュームは、更新シーケンス番号 (USN) ジャーナルをサポートします。 詳細については、「 履歴レコードの変更」を参照してください。

Windows Vista および Windows Server 2008: この値はサポートされていません。

FILE_SUPPORTS_BLOCK_REFCOUNTING
0x08000000
指定されたボリュームは、同じボリューム上のファイル間での論理クラスターの共有をサポートします。 ファイル システムは、共有クラスターへの書き込み時に再割り当てを行います。 FSCTL_DUPLICATE_EXTENTS_TO_FILEがサポートされている操作であることを示します。

[out, optional] lpFileSystemNameBuffer

ファイル システムの名前 (FAT ファイル システムや NTFS ファイル システムなど) を受け取るバッファーへのポインター。 バッファー サイズは、 nFileSystemNameSize パラメーターによって指定されます。

[in] nFileSystemNameSize

ファイル システム名バッファーの長さ ( WCHAR単位)。 最大バッファー サイズは です MAX_PATH+1

ファイル・システム名バッファーが指定されていない場合、このパラメーターは無視されます。

戻り値

要求されたすべての情報が取得された場合、戻り値は 0 以外になります。

要求されたすべての情報が取得されない場合、戻り値は 0 になります。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル いいえ
SMB 3.0 Transparent Failover (TFO) いいえ
スケールアウト ファイル共有 (SO) を使う SMB 3.0 いいえ
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい

SMB では、ボリューム管理機能はサポートされていません。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー fileapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

KTM について

ファイルの暗号化

GetCompressedFileSize

GetFileAttributes

GetVolumeInformation

SetErrorMode

SetVolumeLabel

ボリューム管理の関数