Configuración de IRP en controladores intermedios

Cualquier controlador intermedio en capas entre un controlador del sistema de archivos y un controlador de dispositivo multimedia extraíble debe configurar la ubicación de pila de E/S del controlador de nivel inferior en IRP. Desde las solicitudes entrantesde IRP_MJ_READ, IRP_MJ_WRITE y IRP_MJ_DEVICE_CONTROL, el controlador intermedio debe copiar sus propias marcas de ubicación de pila de E/S en la ubicación de pila de E/S del controlador de nivel inferior siguiente cuando configura la ubicación de pila de E/S para el controlador inferior.

Si el controlador intermedio asigna nuevos IRP para controladores de medios extraíbles de nivel inferior, debe configurar esos IRP de la siguiente manera:

  • Para las solicitudes de transferencia, debe configurar el contexto de subproceso en cada IRP asignado por el controlador desde el valor de Tail.Overlay.Thread en el IRP original.

  • Para IRP_MJ_READ, IRP_MJ_WRITE y IRP_MJ_DEVICE_CONTROL solicitudes, debe copiar las marcas de ubicación de pila de E/S del IRP original a cada IRP asignado por el controlador.

De lo contrario, 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.