Na verdade, a questão não está clara, mas, dependendo do que você quer dizer, a resposta é Sim, é claro que você pode , depende de quanto esforço você quer colocar resultado. Não requer "programação de baixo nível" (pelo menos não pela minha definição).
Se você estiver falando sobre o uso de unidades de disco virtual (VHD) e quiser identificar se uma unidade é física ou virtual, use o comando Powershell:
get-wmiobject -class win32_diskdrive | format-list deviceid, model
No meu sistema, com três unidades físicas e um contêiner VHD, obtenho
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
Acho óbvio qual é o dispositivo virtual! Claro, você precisará fazer mais trabalho para mapear a letra da unidade para o modelo, mas eu não chamaria escrever um script de nível muito baixo.