Actually, the question isn't clear, but, depending on what you mean, the answer is Yes, of course you can, it just depends how much effort you want to put into getting the result. It doesn't require "low level programming" (at least not by my definition).
If you are talking about using Virtual Disk (VHD) drives and want to identify if a drive is physical or virtual, the Powershell command:
get-wmiobject -class win32_diskdrive | format-list deviceid, model
On my system, with 3 physical drives and a VHD container connect, I get
deviceid : \\.\PHYSICALDRIVE0
model : TOSHIBA MK1637GSX ATA Device
deviceid : \\.\PHYSICALDRIVE1
model : WDC WD3200BEVT-22ZCT0 ATA Device
deviceid : \\.\PHYSICALDRIVE2
model : JMCR SD/MMC SCSI Disk Device
deviceid : \\.\PHYSICALDRIVE3
model : Msft Virtual Disk SCSI Disk Device
I think it's obvious which one is the Virtual device! Of course, you will need to do more work to map from the drive letter to the model, but I wouldn't call writing a script very low-level.