pendrive - ¿Quitar con seguridad una unidad USB con la API de Win32?
inmunizador de memorias usb (6)
¿Cómo elimino una unidad USB con la API de Win32? Trabajo mucho en sistemas integrados y en uno de ellos tengo que copiar mis programas en una memoria USB e insertarlos en el hardware de destino.
Como trabajo principalmente en la consola, no me gusta utilizar el mouse y hacer clic en el ícono de la barra de tareas pequeña cientos de veces al día.
Me encantaría escribir un pequeño programa para hacer exactamente eso, así puedo ponerlo en mis makefiles, pero no encontré ninguna llamada API que haga lo mismo.
¿Algunas ideas?
Aquí hay un artículo de Technet sobre medios de almacenamiento extraíbles. Busque DismountNtmsMedia
.
Aquí hay una solución en Delphi, que he modificado y puesto en un servicio para su uso en una empresa muy grande. Ir a: enlace de texto
Busque "scapi (API de configuración y administrador de configuración)" y descárguelo. Habrá un programa de demostración llamado USBView que lo pondrá en camino. Si tiene Delphi, esto también incluye un componente TUSBDeviceTree que puede usar para recopilar información sobre un dispositivo USB cuando.
Saludos
Consulte el artículo Q165721 de Microsoft Knowledge Base: http://support.microsoft.com/kb/165721 - incluye el código fuente completo de C.
Este artículo y muestra deberían hacer el truco: http://support.microsoft.com/default.aspx?scid=kb;en-us;165721
Puede usar la función CM_Request_Device_Eject () así como algunas otras posibilidades. Consulte los siguientes proyectos y artículos:
DevEject: Directo. http://www.withopf.com/tools/deveject/
Un artículo útil de CodeProject: http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx
Parece que Sync permite especificar -e para expulsar unidades extraíbles. Aunque no es una API de win32, probablemente puedas simplemente llamar a la sync -e [drive_letter]
desde tu archivo MAKE.