¿Sigue siendo necesario «quitar el USB de forma segura»? — Pensarlo desde la extracción rápida y la caché de escritura

· Actualizado el: · · Windows, USB, Almacenamiento, Investigación de fallos

Ha copiado sus archivos a una memoria USB. La pantalla decía que la copia había terminado. Y aun así, antes de desconectarla, le piden que pase una vez más por «Quitar hardware de forma segura».

Se suponía que había terminado, así que ¿qué queda por terminar?

Los datos que una aplicación entregó a Windows pueden seguir esperando en el PC a ser escritos. Sigamos un único archivo en su camino hacia la memoria USB.1

Se da por supuesto un almacenamiento USB conectado a Windows 11. La transferencia de archivos desde un teléfono móvil y casos similares quedan fuera del alcance.

1. Antes de que algo llegue a la memoria USB, el PC lo retiene

Para esta explicación, dividamos el archivo en tres fragmentos: A, B y C. La aplicación se los entrega a Windows por orden y pide que se escriban en la memoria USB.

Si tuviera que esperar a cada escritura en la memoria USB, la aplicación también quedaría esperando. Por eso Windows puede responder en cuanto ha tomado los datos en la memoria del PC y escribirlos en la memoria USB más tarde. La idea es no hacer esperar a la aplicación y atender juntas las escrituras pequeñas. Esa zona de retención temporal es la caché de escritura.12

Piense en el momento en que Windows ha recibido A, B y C, pero solo ha conseguido escribir A y B en la memoria USB. C espera su turno en el PC.

Para el mismo archivo, lo que el PC ha recibido y lo que la memoria USB ha grabado no coincidenMuestra el momento en que Windows ha recibido A, B y C, A y B están grabados en la memoria USB y C sigue esperando en la caché del lado del PC a ser escrito.Windows ha recibido A, B y CLa memoria del PC retiene C, a la espera de escrituraGrabado en la memoria USB: solo A y B

Figura 1: La aplicación entregó los tres. Aun así, en este momento C todavía no está en la memoria USB.

Si desconecta ahora, C, que sigue en el PC, nunca llegará a la memoria USB. Falta una parte del archivo que se lleva.

La aplicación lo entregó todo. Pero la memoria USB todavía no lo tiene todo. En un diseño que aplaza las escrituras, ambas cosas pueden ser ciertas a la vez.

Cuándo aparece el mensaje de finalización depende de la aplicación y de la configuración. Este ejemplo no afirma que siempre queden escrituras pendientes después de que el Explorador de archivos informe de que ha terminado.2

En el diagrama, una línea continua marca una relación que siempre se cumple y una línea discontinua una relación condicional (las condiciones están en la explicación de cada relación en la página de detalle). La lista completa de relaciones (6 en total, con evidencia y grado de certeza) y las definiciones de los conceptos principales están reunidas en la página de detalle del mapa de conocimiento (en japonés). Datos: JSON-LD / Turtle

2. Termine de escribir lo retenido antes de desconectar

¿Cómo desconectar entonces la memoria USB sin dejar atrás a C?

«Quitar hardware de forma segura» es la acción que le dice a Windows: este dispositivo va a salir, así que termina las escrituras que queden. Completar las operaciones que siguen en la caché es una de sus tareas.3

Para el archivo anterior, eso significa escribir C, que aún estaba en el PC, y esperar hasta que la memoria USB contenga también A, B y C.

Cómo acaba la misma escritura pendiente C según la forma de retirar la unidadSi se corta la conexión mientras C sigue en el PC, la memoria USB solo contiene A y B; si C se escribe con la unidad aún conectada, la memoria USB contiene A, B y C.Desconectar antes de escribir CEscribir C con la conexión aún activaC está en el PC, a la espera de escrituraLa memoria USB solo tiene A y BLa memoria USB tiene A, B y C

Figura 2: Lo que quiere esperar con «Quitar hardware de forma segura» no es el paso del tiempo, sino que terminen las escrituras restantes.

Limitarse a esperar un poco antes de desconectar no le dice nada sobre si queda algo pendiente. La acción de extracción pide a Windows que ejecute el trabajo de cierre, y usted puede esperar el aviso que indica que el dispositivo se puede retirar.4

La opción «Mejor rendimiento» de Windows es la directiva que permite esa caché. A cambio de agrupar las escrituras por eficiencia, hay que ejecutar «Quitar hardware de forma segura» antes de desconectar.3

3. «Extracción rápida», la directiva que no aplaza nada

Quizá esté pensando: si el resto tiene que escribirse igualmente antes de desconectar, ¿por qué dejar algo en el PC para empezar?

Eso es exactamente «Extracción rápida». Windows no almacena en caché las escrituras dirigidas al dispositivo en cuestión, lo que permite omitir el paso de extracción. Dicho de otro modo, no emplea el enfoque de dejar C en el PC para escribirlo después.3

El trabajo de escribir en la memoria USB sigue existiendo. Hay menos margen para agrupar escrituras por eficiencia y el rendimiento puede bajar, pero a cambio la unidad resulta más fácil de retirar.3

Una directiva que aplaza las escrituras y otra que noCon Mejor rendimiento el PC puede retener escrituras pendientes pero hay que confirmar que terminan al retirar, mientras que con Extracción rápida Windows no aplaza las escrituras de ese modo.Mejor rendimientoEl PC puede retener escriturasEscribir el resto antes de desconectarExtracción rápidaLas escrituras no se aplazanEl paso de extracción tras el trabajo puede omitirse

Figura 3: El trabajo de escribir en la memoria USB no desaparece; lo que cambia es si se aplaza.

Desde Windows 10 versión 1809, el valor predeterminado es «Extracción rápida». En eso se basan las afirmaciones de que ya se puede sacar la memoria sin más. La opción, sin embargo, puede cambiarse dispositivo por dispositivo.3

En resumen: ¿termina el trabajo aplazado antes de desconectar, o no lo aplaza en ningún momento? Las dos afirmaciones —que la extracción segura es necesaria y que es innecesaria— proceden ambas de esta diferencia de configuración.

Incluso con «Extracción rápida», eso no significa que pueda interrumpir una copia o un guardado en curso. Espere a que la operación termine y guarde antes los cambios sin guardar.5

4. ¿En qué opción está su propia memoria USB?

En el Explorador de archivos, localice el nombre y la letra de la unidad USB en cuestión.

Haga clic con el botón derecho en el botón Inicio, abra Administración de discos y haga clic con el botón derecho en la etiqueta del dispositivo correspondiente en la lista inferior. «Propiedades > Directivas» muestra cuál de las dos opciones está seleccionada.3

Si «Directivas» no aparece, también existe una disposición en la que se selecciona la unidad en la pestaña «Hardware» y se abren las propiedades desde allí. Si solo está consultando, no cambie la opción. Si no puede realizar estos pasos en un PC de empresa, consulte a su administrador.3

Si no conoce la opción, usar «Quitar hardware de forma segura» es la práctica más sencilla de seguir. Termine de guardar y copiar y cierre después las aplicaciones que usan la memoria USB. Elija el dispositivo en «Quitar hardware de forma segura y expulsar el medio» del área de notificación y desconéctelo cuando el aviso indique que el dispositivo se puede retirar. Si el icono está oculto, abra la lista de iconos ocultos.4

Cuando hay varios dispositivos conectados, compruebe que el nombre que ha seleccionado corresponde a la memoria USB que realmente desconecta.

5. ¿Por qué dice que el dispositivo está en uso si la copia ha terminado?

A, B y C del archivo se han escrito todos en la memoria USB. Pero si la aplicación con la que comprobó el contenido mantiene aún abierto el archivo, la siguiente acción podría volver a leerlo o a escribirlo.

El proceso de extracción también comprueba si ese tipo de uso puede darse por terminado. Cuando sigue abierto un identificador —la referencia que una aplicación usa para trabajar con un archivo—, la extracción puede rechazarse aunque las lecturas y escrituras se hayan detenido.67

Una aplicación en uso sigue unida a archivos ya escritosAunque A, B y C estén todos grabados en la memoria USB, una aplicación que mantiene un identificador sobre los archivos puede bloquear la extracción del dispositivo.Mantiene un identificadorAplicación que mantiene abierto el archivoArchivos en la memoria USB: A, B y CLa referencia permanece aunque cesen lecturas y escrituras

Figura 4: Este es el caso en que la razón por la que no puede retirar el dispositivo no son datos que falten, sino que el dispositivo sigue en uso.

En ese caso, no se limite a esperar: guarde lo que haya que guardar y cierre la aplicación. Cierre también cualquier ventana del Explorador de archivos que muestre la memoria USB y vuelva a intentar la extracción.

Si no se le ocurre nada, busque en Process Explorer el nombre del archivo o de la carpeta en la memoria USB y averigüe qué proceso lo mantiene abierto. Evite cerrar a la fuerza un identificador que encuentre, porque puede desestabilizar la aplicación o el sistema. Cierre la aplicación por su procedimiento normal y, si se trata de una aplicación de negocio o un servicio, consúltelo con la persona responsable.87

Este es un ejemplo de causa. Para métodos de investigación detallados, véase Cómo usar Process Explorer y Handle.

6. Una nota para desarrolladores: qué significa «Guardado completado»

Decida de forma deliberada si su aplicación informa de «Guardado completado» en cuanto ha entregado los datos a Windows, o solo después de comprobar el resultado de las escrituras que necesita.

La API de Win32 FlushFileBuffers escribe los datos almacenados en búfer del archivo indicado. Una llamada sobre un identificador de archivo corriente no guarda el documento sin guardar de otra aplicación ni da por terminado el uso de toda la memoria USB.2

Antes y después de la caché de Windows están además los datos sin guardar dentro de la aplicación y la caché interna del dispositivo. «Extracción rápida» no es una opción que elimine también todo eso.9

Cada lugar que retiene datos tiene un propietario distintoMuestra los datos sin guardar dentro de la aplicación, la caché de archivos del lado de Windows y la caché del lado del dispositivo, en el orden en que los datos las atraviesan.Operación de guardadoEscritura en el dispositivoEn la aplicación: cambios sin guardarDel lado de Windows: la caché de archivosDel lado del dispositivo: caché interna y soporte

Figura 5: Que queden datos en cada capa depende de la configuración y de la implementación. No confunda la opción de una capa con la comprobación de finalización de otra.

Una aplicación que atiende los avisos de extracción necesita además tareas de limpieza, como cerrar sus identificadores de dispositivo.10 La elección entre las API se trata en el artículo sobre el administrador de caché y WriteFile.

Resumen

Lo que puede llevarse en una memoria USB son los datos cuya escritura en ella ha terminado. Si no conoce la opción, termine su trabajo y use «Quitar hardware de forma segura». De los archivos importantes, conserve una copia en un lugar distinto de la memoria USB.

Artículos relacionados

Enlaces de referencia

  1. Microsoft Learn, File Caching. La caché de archivos en memoria, la escritura diferida y el papel del vaciado.  2

  2. Microsoft Learn, FlushFileBuffers function. Las escrituras corrientes frente al vaciado de los datos almacenados en búfer. Vaciar un archivo y retirar un dispositivo son cosas distintas.  2 3

  3. Microsoft Learn, Manage default media removal policy. La diferencia entre «Extracción rápida» y «Mejor rendimiento», el cambio del valor predeterminado y la comprobación de la opción por dispositivo.  2 3 4 5 6 7

  4. Microsoft Support, Safely remove hardware in Windows. La acción de extracción desde el área de notificación y el aviso de que el dispositivo se puede retirar.  2

  5. Microsoft Learn, Handling an IRP_MN_SURPRISE_REMOVAL Request. Los fallos de E/S y la limpieza que siguen a una desconexión inesperada del dispositivo. 

  6. Microsoft Learn, Handling an IRP_MN_QUERY_REMOVE_DEVICE Request. La comprobación previa a la extracción, los identificadores abiertos y cómo responden el sistema de archivos y las aplicaciones. 

  7. Microsoft Learn, Handle. El examen de las referencias de archivo abiertas y la advertencia sobre cerrar identificadores a la fuerza.  2

  8. Microsoft Learn, Process Explorer. La búsqueda del proceso que mantiene abierto un archivo o directorio concreto. 

  9. Microsoft Learn, File Buffering. La distinción entre los búferes de archivo del lado de Windows y la caché del lado del hardware. 

  10. Microsoft Learn, DBT_DEVICEQUERYREMOVE event. Cómo una aplicación se prepara para la extracción y cierra sus identificadores de dispositivo. 

Artículos recientes con las mismas etiquetas para profundizar en temas cercanos.

Estas páginas sitúan el tema en un contexto más amplio de servicios y decisiones.

El artículo está directamente relacionado con los siguientes servicios.

Preguntas frecuentes

Preguntas habituales en las consultas sobre el tema del artículo.

¿Sigue siendo necesario quitar la memoria USB de forma segura en Windows 11?
Depende de la directiva de extracción del dispositivo en cuestión. «Extracción rápida» está pensada para que ese paso pueda omitirse; con «Mejor rendimiento» hay que ejecutar «Quitar hardware de forma segura». Si no conoce la opción, lo más sencillo es terminar de guardar y copiar, cerrar las aplicaciones que usan la memoria y ejecutar después la acción de extracción.
Con «Extracción rápida», ¿puedo desconectar la memoria durante una copia?
No. «Extracción rápida» es una directiva que impide que Windows almacene las escrituras en caché y las aplace. No es una función que complete datos que usted todavía no ha entregado, ni significa que pueda interrumpir una copia o un guardado en curso.
¿Dónde compruebo si una unidad está configurada como «Extracción rápida»?
Localice la letra y el nombre de la unidad USB en el Explorador de archivos, abra las propiedades del dispositivo correspondiente en Administración de discos y consulte la pestaña «Directivas». Si la pestaña no aparece, seleccione el dispositivo en la pestaña «Hardware» y abra sus propiedades desde allí. La disposición varía según el entorno, y para consultarla no hace falta cambiar la opción.
¿Por qué dice Windows que el dispositivo está en uso si las escrituras han terminado?
Si una aplicación mantiene todavía abierto un archivo o una carpeta, el uso del dispositivo no ha terminado necesariamente, aunque el tráfico se haya detenido por un momento. Guarde y cierre primero los archivos implicados, confirme que las copias y las copias de seguridad han terminado y vuelva a intentar la extracción. Si es necesario, use Process Explorer para encontrar el proceso que los mantiene abiertos, pero evite cerrar identificadores a la fuerza.
Si uso «Quitar hardware de forma segura», ¿se escribirá en el USB un documento que olvidé guardar?
No. «Quitar hardware de forma segura» no sustituye al comando Guardar de una aplicación. Guarde primero el documento y compruebe que la aplicación ha indicado que la operación terminó. No conserve datos importantes únicamente en una memoria USB: mantenga también una copia en otro sitio.

Perfil del autor

Página de presentación del autor del artículo.

Go Komura

Representante de KomuraSoft LLC

Especializado en desarrollo de software para Windows, consultoría técnica e investigación de fallos, sobre todo en proyectos con sistemas existentes y errores difíciles de reproducir.

Volver al blog