I THINK (not 100% sure) that if you install Windows XP as a secondary OS, the drive letter may not be C:, and I imagine that throws away the guarantee of existence for C:. I think both Vista and 7 swap drive letters so it is always the C: drive. Just not XP.
HANDLE hFile=CreateFile("D:",GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,0);
if(hFile==INVALID_HANDLE_VALUE)
{
cout <<"Partition does not exist or you don\'t have rights to access it"<<endl;
}
else
{
cout <<"Partition exists"<<endl;
}
CloseHandle(hFile);