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_COMPRESSION と FILE_VOL_IS_COMPRESSED は相互に排他的です。
値 | 意味 |
---|---|
|
指定されたボリュームでは、大文字と小文字を区別するファイル名がサポートされます。 |
|
指定されたボリュームでは、ディスクに名前を配置するときに、ファイル名の大文字と小文字の保持がサポートされます。 |
|
指定されたボリュームでは、ディスクに表示されるファイル名の Unicode がサポートされます。 |
|
指定されたボリュームは、アクセス制御リスト (ACL) を保持して適用します。 たとえば、NTFS ファイル システムでは ACL が保持および適用され、FAT ファイル システムでは保持されません。 |
|
指定されたボリュームは、ファイルベースの圧縮をサポートします。 |
|
指定されたボリュームでは、ディスク クォータがサポートされます。 |
|
指定されたボリュームでは、スパース ファイルがサポートされます。 |
|
指定されたボリュームでは、ポイントの再解析がサポートされています。 |
|
指定されたボリュームは、DoubleSpace ボリュームなどの圧縮ボリュームです。 |
|
指定されたボリュームは、オブジェクト識別子をサポートします。 |
|
指定されたボリュームは、暗号化されたファイル システム (EFS) をサポートしています。 詳細については、「 ファイルの暗号化」を参照してください。 |
|
指定されたボリュームは、名前付きストリームをサポートします。 |
|
指定されたボリュームは読み取り専用です。 |
|
指定されたボリュームは、単一の順次書き込みをサポートします。 |
|
指定されたボリュームはトランザクションをサポートします。 詳細については、「 KTM について」を参照してください。 |
|
指定されたボリュームでは、ハード リンクがサポートされています。 詳細については、「 ハード リンクとジャンクション」を参照してください。
Windows Vista および Windows Server 2008: この値はサポートされていません。 |
|
指定されたボリュームは拡張属性をサポートします。 拡張属性は、アプリケーションがファイルに関連付けることができるアプリケーション固有のメタデータの一部であり、ファイルのデータの一部ではありません。
Windows Vista および Windows Server 2008: この値はサポートされていません。 |
|
ファイル システムでは、FileID による開きがサポートされています。 詳細については、「 FILE_ID_BOTH_DIR_INFO」を参照してください。
Windows Vista および Windows Server 2008: この値はサポートされていません。 |
|
指定されたボリュームは、更新シーケンス番号 (USN) ジャーナルをサポートします。 詳細については、「 履歴レコードの変更」を参照してください。
Windows Vista および Windows Server 2008: この値はサポートされていません。 |
|
指定されたボリュームは、同じボリューム上のファイル間での論理クラスターの共有をサポートします。 ファイル システムは、共有クラスターへの書き込み時に再割り当てを行います。 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 |