システム内の有効なドライブを指定する文字列をバッファーに格納します。
構文
DWORD GetLogicalDriveStringsW(
[in] DWORD nBufferLength,
[out] LPWSTR lpBuffer
);
パラメーター
[in] nBufferLength
LPBuffer が指すバッファーの最大サイズ (TCHAR 単位)。 この値には、終端の 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 デバイス名前空間内のドライブの連結を返します。 ドライブが両方の名前空間に存在する場合、この関数は Local MS-DOS Device 名前空間のエントリを返します。 詳細については、「 MS DOS デバイス名の定義」を参照してください。
Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。
| テクノロジー | サポートされています |
|---|---|
| サーバー メッセージ ブロック (SMB) 3.0 プロトコル | なし |
| SMB 3.0 透過的フェールオーバー (TFO) | なし |
| SMB 3.0 とスケールアウト ファイル共有 (SO) | なし |
| クラスター共有ボリューム ファイル システム (CsvFS) | はい |
| 回復性のあるファイル システム (ReFS) | はい |
SMB はボリューム管理機能をサポートしていません。
例示
例については、「ファイル ハンドルからファイル名を取得する」を参照してください。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | fileapi.h (Windows.h を含む) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |
こちらも参照ください
GetLogicalDrives の