指定されたドライブの種別を取得します。ドライブの種別の取得には、GetDriveType()関数を利用します。 交換可能か固定か、CD-ROM か RAM ディスクかネットワークドライブかを判別できます。
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <windows.h>
/*
	ドライブの種別を調べる
*/
int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	// 標準出力にユニコード出力する
	setlocale( LC_ALL, "Japanese" );
	// 'C'~'Z'
	for ( int nI = L'C'; nI < L'Z'; nI++ ) {
		TCHAR waBuf[ MAX_PATH ];
		// パスの生成
		::_swprintf_p( waBuf, _countof( waBuf ), L"%c:¥¥", nI );
		std::wcout << waBuf << L" ->";
		// ドライブの種別の取得
		UINT nType = ::GetDriveType( waBuf );
		switch( nType ) {
		case DRIVE_UNKNOWN:
			{
				std::wcout << L"ドライブの種類を判別できませんでした。" << std::endl;
			}
			break;
		case DRIVE_NO_ROOT_DIR:
			{
				std::wcout << L"指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウントされていません(未フォーマットや、メディアが挿入されていないなど)。" << std::endl;
			}
			break;
		case DRIVE_REMOVABLE:
			{
				std::wcout << L"このディスクは、ドライブから取り出せます。" << std::endl;
			}
			break;
		case DRIVE_FIXED:
			{
				std::wcout << L"このディスクは、ドライブから取り出せません。" << std::endl;
			}
			break;
		case DRIVE_REMOTE:
			{
				std::wcout << L"このドライブは、リモート(ネットワーク)ドライブです。" << std::endl;
			}
			break;
		case DRIVE_CDROM:
			{
				std::wcout << L"このドライブは、CD-ROM ドライブです。" << std::endl;
			}
			break;
		case DRIVE_RAMDISK:
			{
				std::wcout << L"このドライブは、RAM ディスクです。" << std::endl;
			}
			break;
		}
	}
	// 正常終了
	return( 0 );
}
C:\ ->このディスクは、ドライブから取り出せません。 D:\ ->このディスクは、ドライブから取り出せません。 E:\ ->このディスクは、ドライブから取り出せません。 F:\ ->このドライブは、CD-ROM ドライブです。 G:\ ->このディスクは、ドライブから取り出せません。 H:\ ->このディスクは、ドライブから取り出せません。 I:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 J:\ ->このドライブは、CD-ROM ドライブです。 K:\ ->このディスクは、ドライブから取り出せません。 L:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 M:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 N:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 O:\ ->このドライブは、CD-ROM ドライブです。 P:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 Q:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 R:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 S:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 T:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 U:\ ->指定のルートディレクトリが存在しません。たとえば、パスにボリュームがマウン トされていません(未フォーマットや、メディアが挿入されていないなど)。 V:\ ->このディスクは、ドライブから取り出せます。 W:\ ->このディスクは、ドライブから取り出せます。 X:\ ->このディスクは、ドライブから取り出せます。 Y:\ ->このディスクは、ドライブから取り出せます。