GetLogicalDriveStringsA 関数 (winbase.h)

システム内の有効なドライブを指定する文字列でバッファーを埋めます。

構文

DWORD GetLogicalDriveStringsA(
  [in]  DWORD nBufferLength,
  [out] LPSTR lpBuffer
);

パラメーター

[in] nBufferLength

TCHARlpBuffer が指すバッファーの最大サイズ。 このサイズには、終端の null 文字は含まれません。 このパラメーターが 0 の場合、 lpBuffer は使用されません。

[out] lpBuffer

一連の null で終わる文字列を受け取るバッファーへのポインター。システム内の有効なドライブごとに 1 つ、さらに null 文字が追加されています。 各文字列はデバイス名です。

戻り値

関数が成功した場合、戻り値はバッファーにコピーされた文字列の長さ (文字数) であり、終端の null 文字は含まれません。 ANSI-ASCII null 文字では 1 バイトが使用されますが、Unicode (UTF-16) の null 文字では 2 バイトが使用されることに注意してください。

バッファーが十分な大きさでない場合、戻り値は nBufferLength より大きくなります。 ドライブ文字列を保持するために必要なバッファーのサイズです。

関数が失敗した場合は、0 を返します。 拡張エラー情報を取得するには、 GetLastError 関数を使用します。

注釈

バッファー内の各文字列は、 GetDriveType 関数や GetDiskFreeSpace 関数など、ルート ディレクトリが必要な場所で使用できます。

この関数は、グローバルおよびローカル MS-DOS デバイス名前空間内のドライブの連結を返します。 ドライブが両方の名前空間に存在する場合、この関数はローカル MS-DOS デバイス名前空間のエントリを返します。 詳細については、「 MS DOS デバイス名の定義」を参照してください。

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 XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

GetDiskFreeSpace

GetDriveType

GetLogicalDrives

ボリューム管理の関数