Solicitud de E/S de ejemplo: información general
En la ilustración siguiente se muestra información general sobre lo que sucede cuando un subsistema abre un objeto de archivo que representa un archivo de datos en nombre de una aplicación.
El subsistema llama a un servicio del sistema de E/S para abrir un archivo con nombre.
El administrador de E/S llama al administrador de objetos para buscar el archivo con nombre y para ayudar a resolver los vínculos simbólicos del objeto de archivo. También llama al monitor de referencia de seguridad para comprobar que el subsistema tiene los derechos de acceso correctos para abrir ese objeto de archivo.
Si el volumen aún no está montado, el administrador de E/S suspende temporalmente la solicitud abierta y llama a uno o varios sistemas de archivos hasta que uno de ellos reconozca el objeto de archivo como algo que haya almacenado en uno de los dispositivos de almacenamiento masivo que usa el sistema de archivos. Cuando el sistema de archivos ha montado el volumen, el administrador de E/S reanuda la solicitud.
El administrador de E/S asigna memoria para e inicializa un IRP para la solicitud abierta. Para los controladores, una apertura equivale a una solicitud "create".
El administrador de E/S llama al controlador del sistema de archivos y lo pasa al IRP. El controlador del sistema de archivos accede a su ubicación de pila de E/S en el IRP para determinar qué operación debe llevar a cabo, comprueba los parámetros, determina si el archivo solicitado está en caché y, si no es así, configura la ubicación de pila de E/S del controlador siguiente inferior en irP.
Ambos controladores procesan el IRP y completan la operación de E/S solicitada, llamando a las rutinas de compatibilidad de modo kernel proporcionadas por el administrador de E/S y por otros componentes del sistema (no se muestran en la figura anterior).
Los controladores devuelven el IRP al administrador de E/S con el bloque de estado de E/S establecido en irP para indicar si la operación solicitada se realizó correctamente o por qué se produjo un error.
El administrador de E/S obtiene el estado de E/S del IRP, por lo que puede devolver información de estado a través del subsistema protegido al autor de la llamada original.
El administrador de E/S libera el IRP completado.
El administrador de E/S devuelve un identificador para el objeto de archivo al subsistema si la operación de apertura se realizó correctamente. Si se produjo un error, devuelve el estado adecuado al subsistema.
Después de que un subsistema abra correctamente un objeto de archivo que representa un archivo de datos, un dispositivo o un volumen, el subsistema usa el identificador devuelto para identificar el objeto de archivo en solicitudes posteriores para las operaciones de E/S del dispositivo (normalmente solicitudes de control de E/S de lectura, escritura o dispositivo). Para realizar dicha solicitud, el subsistema llama a los servicios del sistema de E/S. El administrador de E/S enruta estas solicitudes como IRP enviadas a los controladores adecuados.