bool Win32AudioCDManager::tryAddDrive(char drive, DriveList &drives) { Common::String drivePath = Common::String::format("%c:\\", drive); // Ensure it's an actual CD drive if (GetDriveTypeA(drivePath.c_str()) != DRIVE_CDROM) return false; debug(2, "Detected drive %c:\\ as a CD drive", drive); drives.push_back(drive); return true; }
void EnumerateDrivesAndPartitions() { WCHAR name[MAX_PATH+1]; for (DWORD i=0; i<1024; i++) { wsprintf(name, L"\\\\.\\PhysicalDrive%d", i); auto h = CreateFile(name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr); if (h==INVALID_HANDLE_VALUE) continue; auto d = new Drive(); d->Init(h, i, name); g_drives.push_back(shared_ptr<Drive>(d)); CloseHandle(h); } }