Comment obtenir le numéro de série du disque dur en C ou en ASM sans WMI

comment obtenir le numéro de série du disque dur (pas le volume qui change à chaque réinstallation de Windows) en C ou en ASM, sans wmi (cause wmi requirejs droit d’administrateur). N’importe quel indice serait utile car en ce moment je n’ai rien trouvé sur le Web en C sans WMI, en quelques jours de recherche … Merci. EDIT: Pour le système Windows

Veuillez essayer mon outil open source, DiskId32, qui contient également le code source à l’ adresse http://www.winsim.com/diskid32/diskid32.html . Je n’ai qu’une version Win32 pour le moment. Peut-être qu’un jour j’appendai une version Win64.

Le numéro de série du disque dur et d’autres informations sur le disque dur, telles que la version du micrologiciel, etc., ne peuvent être obtenues à l’aide de SMART que je sache et qui nécessite des ioctls spéciaux pour le nœud de périphérique en mode bloc (/ dev / sda ou / dev / sdb). n’est généralement pas disponible pour un utilisateur régulier.

Je sais qu’il existe un outil appelé smartctl qui fait exactement ceci:

 sudo smartctl -i /dev/sda 

Des outils similaires existent également (hdparm, lshw, etc.).

Pour ce qui est d’essayer de comprendre cette information sans être un utilisateur privilégié, cela pourrait être possible uniquement si elle est exposée via / proc ou / sys, ce dont je doute fort qu’elle soit faite dans les pilotes de périphériques de bloc SATA actuels.