La «rimozione sicura» della chiavetta USB serve ancora? — Ragionarci a partire dalla rimozione rapida e dalla cache di scrittura

· Aggiornato il: · · Windows, USB, Archiviazione, Analisi dei guasti

Avete copiato i vostri file su una chiavetta USB. Sullo schermo compariva che la copia era completata. Eppure, prima di sfilarla, vi si chiede di passare ancora una volta dalla rimozione sicura dell’hardware.

Doveva essere finito: che cosa resta da finire?

I dati che un’applicazione ha consegnato a Windows possono essere ancora sul PC in attesa di essere scritti. Seguiamo un singolo file lungo il suo percorso verso la chiavetta USB.1

Si presuppone un’unità di archiviazione USB collegata a Windows 11. Il trasferimento di file da uno smartphone e i casi analoghi restano fuori dall’argomento.

1. Prima che qualcosa raggiunga la chiavetta USB, è il PC a trattenerlo

Per questa spiegazione dividiamo il file in tre parti: A, B e C. L’applicazione le consegna a Windows nell’ordine e chiede che vengano scritte sulla chiavetta USB.

Se dovesse attendere ogni singola scrittura sulla chiavetta USB, anche l’applicazione resterebbe in attesa. Windows può quindi rispondere appena ha preso i dati nella memoria del PC e scriverli sulla chiavetta USB più tardi. Lo scopo è non far attendere l’applicazione e trattare insieme le scritture piccole. Quell’area di trattenimento temporaneo è la cache di scrittura.12

Considerate il momento in cui Windows ha ricevuto A, B e C, ma è riuscito a scrivere sulla chiavetta USB solo A e B. C aspetta il proprio turno sul PC.

Per lo stesso file, ciò che il PC ha ricevuto e ciò che la chiavetta USB ha registrato non coincidonoMostra il momento in cui Windows ha ricevuto A, B e C, A e B sono registrati sulla chiavetta USB e C attende ancora di essere scritto nella cache lato PC.Windows ha ricevuto A, B e CLa memoria del PC trattiene C, in attesa di scritturaRegistrato sulla chiavetta USB: solo A e B

Figura 1: L’applicazione ha consegnato tutti e tre. Eppure, in questo momento, C non è ancora sulla chiavetta USB.

Se sfilate ora, C, rimasto sul PC, non raggiungerà mai la chiavetta USB. Manca una parte del file che state portando via.

L’applicazione ha consegnato tutto. Ma la chiavetta USB non ha ancora tutto. In una progettazione che rimanda le scritture, entrambe le affermazioni possono essere vere insieme.

Il momento in cui compare il messaggio di completamento dipende dall’applicazione e dalle impostazioni. Questo esempio non afferma che dopo la segnalazione di fine di Esplora file restino sempre delle scritture in sospeso.2

Nel diagramma, una linea continua indica una relazione che vale sempre e una linea tratteggiata indica una relazione condizionale (le condizioni sono nella spiegazione di ciascuna relazione nella pagina di dettaglio). L’elenco completo delle relazioni (in totale 6, con evidenza e livello di certezza) e le definizioni dei concetti principali sono raccolti nella pagina di dettaglio della mappa della conoscenza (in giapponese). Dati: JSON-LD / Turtle

2. Completate la scrittura di quanto è stato trattenuto prima di sfilare

Come sfilare allora la chiavetta USB senza lasciare indietro C?

La rimozione sicura dell’hardware è l’azione che comunica a Windows: questo dispositivo sta per uscire, completa quindi le scritture rimaste. Portare a termine le operazioni ancora presenti nella cache è uno dei suoi compiti.3

Per il file di cui sopra, significa scrivere C, che era ancora sul PC, e attendere finché anche la chiavetta USB contiene A, B e C.

Come finisce la stessa scrittura in sospeso C a seconda di come si rimuove l'unitàSe la connessione viene interrotta mentre C è ancora sul PC, la chiavetta USB contiene solo A e B; se C viene scritto con l'unità ancora collegata, la chiavetta USB contiene A, B e C.Sfilare prima di scrivere CScrivere C con la connessione ancora attivaC è sul PC, in attesa di scritturaLa chiavetta USB ha solo A e BLa chiavetta USB ha A, B e C

Figura 2: Ciò che volete attendere con la rimozione sicura non è il trascorrere del tempo, ma il completamento delle scritture rimaste.

Limitarsi ad aspettare un poco prima di sfilare non vi dice nulla su ciò che resta. L’azione di rimozione chiede a Windows di eseguire il lavoro di chiusura e potete attendere la notifica che indica che il dispositivo può essere rimosso.4

L’impostazione «Prestazioni migliori» di Windows è il criterio che consente quella cache. In cambio del raggruppamento delle scritture per efficienza, occorre eseguire la rimozione sicura dell’hardware prima di sfilare.3

3. «Rimozione rapida», il criterio che non rimanda

Forse state pensando: se il resto va comunque scritto prima di sfilare, perché lasciare qualcosa sul PC fin dall’inizio?

È esattamente questo «Rimozione rapida». Windows non mette in cache le scritture dirette al dispositivo in questione, il che consente di omettere il passaggio di rimozione. In altre parole, non adotta l’approccio di lasciare C sul PC per scriverlo più tardi.3

Il lavoro di scrittura sulla chiavetta USB resta. C’è meno margine per raggruppare le scritture per efficienza e le prestazioni possono calare, ma in cambio l’unità diventa più facile da rimuovere.3

Un criterio che rimanda le scritture e uno che non lo faCon Prestazioni migliori il PC può trattenere scritture in sospeso ma il loro completamento va confermato al momento della rimozione, mentre con Rimozione rapida Windows non rimanda le scritture in quel modo.Prestazioni miglioriIl PC può trattenere scrittureScrivere il resto prima di sfilareRimozione rapidaLe scritture non vengono rimandateIl passaggio di rimozione dopo il lavoro può essere omesso

Figura 3: Il lavoro di scrittura sulla chiavetta USB non sparisce; ciò che cambia è se venga rimandato.

Da Windows 10 versione 1809 l’impostazione predefinita è «Rimozione rapida». È su questo che si fondano le affermazioni secondo cui ormai si può semplicemente sfilare la chiavetta. L’impostazione, però, può essere cambiata dispositivo per dispositivo.3

In breve: completate il lavoro rimandato prima di sfilare, oppure non lo rimandate affatto? Entrambe le affermazioni — che la rimozione sicura sia necessaria e che sia inutile — nascono da questa differenza di impostazione.

Anche con «Rimozione rapida» ciò non significa che possiate interrompere una copia o un salvataggio in corso. Attendete la fine dell’operazione e salvate prima le modifiche non salvate.5

4. Su quale impostazione è la vostra chiavetta USB?

In Esplora file individuate nome e lettera dell’unità USB in questione.

Fate clic con il pulsante destro sul pulsante Start, aprite Gestione disco e fate clic con il pulsante destro sull’etichetta del dispositivo corrispondente nell’elenco in basso. «Proprietà > Criteri» mostra quale delle due opzioni è selezionata.3

Se «Criteri» non è visibile, esiste anche una disposizione in cui si seleziona l’unità nella scheda «Hardware» e si aprono da lì le proprietà. Se state soltanto consultando, non modificate l’impostazione. Se non potete eseguire questi passaggi su un PC aziendale, rivolgetevi all’amministrazione.3

Se non conoscete l’impostazione, usare la rimozione sicura dell’hardware è la pratica più semplice da seguire. Completate salvataggi e copie, poi chiudete le applicazioni che usano la chiavetta USB. Scegliete il dispositivo sotto «Rimozione sicura dell’hardware ed espulsione supporti» nell’area di notifica e sfilatelo quando la notifica indica che il dispositivo può essere rimosso. Se l’icona è nascosta, aprite l’elenco delle icone nascoste.4

Quando sono collegati più dispositivi, verificate che il nome selezionato corrisponda alla chiavetta USB che sfilate davvero.

5. Perché dice che il dispositivo è in uso se la copia è finita?

A, B e C del file sono stati tutti scritti sulla chiavetta USB. Ma se l’applicazione con cui avete controllato il contenuto tiene ancora aperto il file, l’azione successiva potrebbe rileggerlo o riscriverlo.

Il processo di rimozione verifica anche se quel tipo di utilizzo può essere concluso. Quando è ancora aperto un handle — il riferimento con cui un’applicazione lavora su un file — la rimozione può essere rifiutata anche se letture e scritture si sono fermate.67

Un'applicazione in uso resta legata a file già scrittiAnche quando A, B e C sono tutti registrati sulla chiavetta USB, un'applicazione che mantiene un handle sui file può bloccare la rimozione del dispositivo.Mantiene un handleApplicazione che tiene ancora aperto il fileFile sulla chiavetta USB: A, B e CIl riferimento resta anche quando letture e scritture cessano

Figura 4: Questo è il caso in cui il motivo per cui non riuscite a rimuovere il dispositivo non sono dati mancanti, ma il fatto che il dispositivo è ancora in uso.

In questo caso non limitatevi ad aspettare: salvate ciò che va salvato e chiudete l’applicazione. Chiudete anche ogni finestra di Esplora file che mostra la chiavetta USB e riprovate la rimozione.

Se non vi viene in mente nulla, cercate in Process Explorer il nome del file o della cartella sulla chiavetta USB e scoprite quale processo lo tiene aperto. Evitate di chiudere a forza un handle così trovato, perché può destabilizzare l’applicazione o il sistema. Chiudete l’applicazione con la sua procedura normale e, se si tratta di un’applicazione gestionale o di un servizio, verificate con la persona responsabile.87

Questo è un esempio di causa. Per i metodi di analisi dettagliati, si veda Process Explorer e Handle nella pratica.

6. Una nota per chi sviluppa applicazioni: che cosa significa «Salvataggio completato»

Decidete in modo consapevole se la vostra applicazione segnala «Salvataggio completato» già quando i dati sono stati consegnati a Windows, oppure solo dopo aver verificato l’esito delle scritture che le servono.

L’API Win32 FlushFileBuffers scrive i dati nel buffer del file indicato. Una chiamata su un normale handle di file non salva il documento non salvato di un’altra applicazione e non conclude l’uso dell’intera chiavetta USB.2

Prima e dopo la cache di Windows ci sono inoltre i dati non salvati all’interno dell’applicazione e la cache interna del dispositivo. «Rimozione rapida» non è un’impostazione che elimina anche quelli.9

Ogni luogo che trattiene dati ha un proprietario diversoMostra i dati non salvati all'interno dell'applicazione, la cache dei file lato Windows e la cache lato dispositivo, nell'ordine in cui i dati le attraversano.Operazione di salvataggioScrittura sul dispositivoNell'applicazione: modifiche non salvateLato Windows: la cache dei fileLato dispositivo: cache interna e supporto

Figura 5: Che restino dati in ciascuno strato dipende dalle impostazioni e dall’implementazione. Non scambiate l’impostazione di uno strato per la verifica di completamento di un altro.

Un’applicazione che gestisce le notifiche di rimozione ha bisogno anche di operazioni di pulizia, come la chiusura dei propri handle di dispositivo.10 La scelta fra le API è trattata nell’articolo su Cache Manager e WriteFile.

Ciò che potete portare via su una chiavetta USB sono i dati la cui scrittura su di essa è terminata. Se non conoscete l’impostazione, completate il vostro lavoro e usate la rimozione sicura dell’hardware. Dei file importanti conservate una copia in un luogo diverso dalla chiavetta USB.

Articoli correlati

  1. Microsoft Learn, File Caching. La cache dei file in memoria, la scrittura differita e il ruolo del flush.  2

  2. Microsoft Learn, FlushFileBuffers function. Le scritture ordinarie rispetto alla scrittura dei dati nel buffer. Fare il flush di un file e rimuovere un dispositivo sono cose diverse.  2 3

  3. Microsoft Learn, Manage default media removal policy. La differenza fra «Rimozione rapida» e «Prestazioni migliori», la modifica del valore predefinito e il controllo dell’impostazione per singolo dispositivo.  2 3 4 5 6 7

  4. Microsoft Support, Safely remove hardware in Windows. L’azione di rimozione dall’area di notifica e la notifica che il dispositivo può essere rimosso.  2

  5. Microsoft Learn, Handling an IRP_MN_SURPRISE_REMOVAL Request. Gli errori di I/O e le operazioni di pulizia che seguono una disconnessione imprevista del dispositivo. 

  6. Microsoft Learn, Handling an IRP_MN_QUERY_REMOVE_DEVICE Request. La verifica prima della rimozione, gli handle aperti e il modo in cui rispondono il file system e le applicazioni. 

  7. Microsoft Learn, Handle. L’esame dei riferimenti ai file aperti e l’avvertenza sulla chiusura forzata degli handle.  2

  8. Microsoft Learn, Process Explorer. La ricerca del processo che tiene aperto un determinato file o una determinata directory. 

  9. Microsoft Learn, File Buffering. La distinzione fra i buffer dei file lato Windows e la cache lato hardware. 

  10. Microsoft Learn, DBT_DEVICEQUERYREMOVE event. Come un’applicazione si prepara alla rimozione e chiude i propri handle di dispositivo. 

Articoli recenti con gli stessi tag per approfondire argomenti vicini.

Queste pagine collocano l’argomento in un contesto più ampio di servizi e decisioni.

L’articolo è direttamente collegato ai servizi seguenti.

Domande frequenti

Domande che ricorrono nelle consulenze sull’argomento dell’articolo.

La rimozione sicura della chiavetta USB serve ancora su Windows 11?
Dipende dai criteri di rimozione del dispositivo in questione. «Rimozione rapida» è pensata perché quel passaggio possa essere omesso; con «Prestazioni migliori» occorre eseguire la rimozione sicura dell'hardware. Se non conoscete l'impostazione, è più semplice completare salvataggi e copie, chiudere le applicazioni che usano la chiavetta e poi eseguire l'azione di rimozione.
Con «Rimozione rapida» posso sfilare la chiavetta durante una copia?
No. «Rimozione rapida» è un criterio che impedisce a Windows di mettere in cache le scritture e di rimandarle. Non è una funzione che completa dati che non avete ancora consegnato e non significa che possiate interrompere una copia o un salvataggio in corso.
Dove controllo se un'unità è impostata su «Rimozione rapida»?
Individuate lettera e nome dell'unità USB in Esplora file, aprite le proprietà del dispositivo corrispondente in Gestione disco e guardate la scheda «Criteri». Se la scheda non è visibile, selezionate il dispositivo nella scheda «Hardware» e aprite da lì le proprietà. La disposizione varia a seconda dell'ambiente e per la sola consultazione non occorre modificare l'impostazione.
Perché Windows dice che il dispositivo è in uso se le scritture sono terminate?
Se un'applicazione tiene ancora aperto un file o una cartella, l'uso del dispositivo non è necessariamente finito, anche se il traffico si è momentaneamente fermato. Salvate e chiudete prima i file coinvolti, verificate che copie e backup siano terminati e riprovate la rimozione. Se serve, usate Process Explorer per trovare il processo che li tiene aperti, ma evitate di chiudere gli handle a forza.
Se uso la rimozione sicura dell'hardware, un documento che ho dimenticato di salvare verrà scritto sulla chiavetta USB?
No. La rimozione sicura dell'hardware non sostituisce il comando Salva di un'applicazione. Salvate prima il documento e verificate che l'applicazione abbia segnalato la fine dell'operazione. Non tenete dati importanti soltanto su una chiavetta USB: conservatene una copia anche altrove.

Profilo dell’autore

Pagina di presentazione dell’autore dell’articolo.

Go Komura

Rappresentante di KomuraSoft LLC

Specializzato nello sviluppo di software Windows, nella consulenza tecnica e nell’analisi dei malfunzionamenti, soprattutto nei progetti con sistemi esistenti e guasti difficili da riprodurre.

Torna al blog