Determina la geometria del disco su Windows
-
09-06-2019 - |
Domanda
Devo determinare a livello di codice quanti settori, testine e cilindri si trovano su un disco fisico da Windows XP.Qualcuno conosce l'API per determinarlo?Dove potrebbe Windows esporre queste informazioni?
Soluzione
Utilizzo DispositivoIoControl con codice di controllo IOCTL_DISK_GET_DRIVE_GEOMETRIA O IOCTL_DISK_GET_DRIVE_GEOMETRY_EX.
C'è un codice di esempio in MSDN per farlo Qui.
Altri suggerimenti
C'è un codice di controllo a cui puoi passare DispositivoIoControl per ottenere la geometria del disco fisico.
WMI è bravo anche in questo, l'ho usato con grande successo.
using( ManagementClass driveClass = new ManagementClass( "Win32_DiskDrive" ) )
{
using( ManagementObjectCollection physicalDrives = driveClass.GetInstances( ) )
{
foreach( ManagementObject drive in physicalDrives )
{
string cylinders = ( string )drive["TotalCylinders"];
// ... etc ...
drive.Dispose( );
}
}
}
Per un elenco delle proprietà aggiuntive dell'unità che puoi utilizzare, consulta questa pagina
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow