Comprobar marcas en el objeto device

Para cada IRP que solicite una operación de E/S hacia o desde medios extraíbles, un controlador de dispositivo multimedia extraíble debe determinar si DO_VERIFY_VOLUME ya está establecido en sus marcas DeviceObject>. Si se establece este valor, el controlador debe hacer lo siguiente:

  • Para las solicitudes de IRP_MJ_READ, IRP_MJ_WRITE y IRP_MJ_DEVICE_CONTROL , compruebe si SL_OVERRIDE_VERIFY_VOLUME está establecido en el miembro Flags de la estructura IO_STACK_LOCATION del controlador. Si es así, continúe con la operación solicitada.

    Las solicitudes de control de dispositivo que devuelven información sobre la estructura lógica del medio subyacente SL_OVERRIDE_VERIFY_VOLUME han establecido en el miembro Flags de la ubicación de pila de E/S cuando un IFS monta o vuelve a montar un volumen de medios extraíble.

  • De lo contrario, el controlador debe rechazar la realización de solicitudes de E/S para la unidad, el dispositivo o la partición correspondientes mientras DO_VERIFY_VOLUME se establece en sus marcas DeviceObject>. Un controlador de medios extraíble debe producir un error en los IRP enviados al dispositivo correspondiente hasta que el FSD borre DO_VERIFY_VOLUME en las marcas DeviceObject-Flag> del controlador de medios extraíbles.

Si un controlador de dispositivo multimedia extraíble no produce errores IRP cuando se establece DO_VERIFY_VOLUME y SL_OVERRIDE_VERIFY_VOLUME no está establecido para las solicitudes de transferencia anteriores, el sistema de archivos no puede mantener la integridad de los datos de archivo almacenados en caché ni hacer que se pida al usuario que vuelva a montar el medio que contiene un archivo abierto.