﻿//**************************************
// Name: Drive Info
// Description:Shows a list of all the available drives and their types.
// By: Thomas1965
//**************************************

#include <iostream>
#include <cstring>
#include <windows.h>
using std::cout;
void ShowDriveInfo(PCSTR DriveInfo);
int main()
{
 const int BUF_SIZE = 128;
 char buffer[BUF_SIZE] = {0};
 
 GetLogicalDriveStringsA(BUF_SIZE-1, buffer);
 cout << "Drive info\n";
 cout << "==========\n\n";
 PSTR cp = buffer;
 while(*cp)
 {
ShowDriveInfo(cp);
cp += strlen(cp) + 1;
 }
 cout << "\n\n";
 system("pause");
 return EXIT_SUCCESS;
}
void ShowDriveInfo(PCSTR DriveInfo)
{
 cout << "Info for drive " << DriveInfo << "\t";
 switch (GetDriveTypeA(DriveInfo)) 
 {
case 0:
 cout << "Unknown drive type\n";
 break;
case 1:
 cout << "Drive does not exist\n";
 break;
case DRIVE_CDROM:
 cout << "CD ROM\n";
 break;
case DRIVE_FIXED:
 cout << "Hard disk\n";
 break;
case DRIVE_RAMDISK:
 cout << "Ram disk\n";
 break;
case DRIVE_REMOTE:
 cout << "Network drive\n";
 break;
case DRIVE_REMOVABLE:
 cout << "Floppy disk / Flash disk\n";
 break;
 }
}