Domanda

Ho bisogno dimensioni determind di un volume logico e stamparlo. GetDiskFreeSpaceEx sta tornando dimensioni come numero a 64 bit (?). Cosa posso fare con esso?

È stato utile?

Soluzione

Si può fare quello che vuoi con esso, tuttavia è un po 'scomodo per fare calcoli con in Masm32. Si dovrebbe essere in grado di riempire qualsiasi altra struttura dati che utilizza 64 bit interi. E 'anche possibile fare alcune operazioni aritmetiche su 64 bit come la divisione, caricando il valore in EDX: EAX (così caricare i primi 4 byte in EAX, e il successivo 4 in EDX). Tuttavia, fate attenzione che troppo pieno è possibile qui, che deve essere gestita o evitato.

Se si desidera solo per stampare la dimensione del volume di utilizzare questa funzione si può solo richiamare la funzione di libreria printf C runtime:

invoke crt_printf,chr$("GetDiskFreeSpaceEx, total bytes: %I64d%c"),
                  dqTotalBytes,10

Tuttavia, come il manuale dice "Per determinare il numero totale di byte su un disco o volume, utilizzare IOCTL_DISK_GET_LENGTH_INFO ." Il codice precedente si dice solo quanti sono disponibili per l'utente corrente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top