Modo comune per ottenere informazioni sul BIOS tramite C
Domanda
Dopo aver letto alcune cose sembra che sia possibile mappare la memoria SMBIOS e analizzarla. Non ho idea di come procedere. Non riesco a utilizzare alcun codice gestito in quanto vorrei che fosse compilabile con qualsiasi sistema operativo.
Qualcuno ha qualche esempio di codice su come procedere?
Soluzione
Sulla maggior parte dei sistemi, non è mappato nella memoria accessibile in modalità utente, quindi è necessario chiamare alcune API di sistema.
Su Windows, puoi chiamare GetSystemFirmwareTable .
Altri suggerimenti
Per Linux suppongo che dovresti dare un'occhiata al dmidecode source (GPL) per codice concreto ...
L'uso e l'analisi dell'output di dmidecode può essere tutto ciò che serve ...
Ho scritto una classe riutilizzabile per leggere tutte le cose SMBIOS.
È un codice molto pulito con una corretta gestione degli errori e facile da estendere. È possibile derivare una classe da questa classe che utilizza i dati analizzati per visualizzarla o fare ciò che si desidera con essa.
Trovi anche un link alla documentazione SMBios effettiva nei commenti del codice.
Puoi scaricarlo dalla mia homepage: ftp://ftp.netcult.ch/mirror/elmue/SMBiosClass.zip
Elmue