GetLogicalDriveStringsA 関数 (winbase.h)
システム内の有効なドライブを指定する文字列でバッファーを埋めます。
構文
DWORD GetLogicalDriveStringsA(
[in] DWORD nBufferLength,
[out] LPSTR lpBuffer
);
パラメーター
[in] nBufferLength
TCHAR の lpBuffer が指すバッファーの最大サイズ。 このサイズには、終端の 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 |