Rimuovere in modo sicuro un'unità USB utilizzando l'API Win32?
Domanda
Come rimuovo un'unità USB utilizzando l'API Win32?Lavoro molto su sistemi embedded e su uno di questi devo copiare i miei programmi su una chiavetta USB e inserirla nell'hardware di destinazione.
Dato che lavoro principalmente sulla console, non mi piace usare il mouse e fare clic sulla piccola icona della barra delle applicazioni centinaia di volte al giorno.
Mi piacerebbe scrivere un piccolo programma per fare esattamente questo in modo da poterlo inserire nei miei makefile, ma non ho trovato nessuna chiamata API che faccia la stessa cosa.
Qualche idea?
Soluzione
Puoi utilizzare la funzione CM_Request_Device_Eject() oltre ad alcune altre possibilità.Consulta i seguenti progetti e articoli:
Espulsione sviluppo:Semplice.http://www.withopf.com/tools/deveject/
Un utile articolo di CodeProject:http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx
Altri suggerimenti
Sembra Sincronizzazione consente di specificare -e per espellere le unità rimovibili.Sebbene non sia un'API win32, probabilmente potresti semplicemente chiamare sync -e [drive_letter]
dal tuo makefile.
Ecco un articolo sulla tecnologia sui supporti di memorizzazione rimovibili.Cercare DismountNtmsMedia
.
Ecco una soluzione in Delphi, che ho modificato e inserito in un servizio per l'utilizzo in un'azienda molto grande.Vai a: testo del collegamento
Cerca "scapi (Setup & Config Manager API)" e scaricalo.Ci sarà un programma demo chiamato USBView che ti aiuterà sulla buona strada.Se disponi di Delphi, questo include anche un componente TUSBDeviceTree che puoi utilizzare per raccogliere informazioni su un dispositivo USB quando.
Saluti