Compartir a través de


Packet-Driven E/S con IRP reutilizables

El administrador de E/S, el administrador de Plug and Play y el administrador de energía usan paquetes de solicitud de E/S (IRP) para comunicarse con controladores en modo kernel y para permitir que los controladores se comuniquen entre sí.

El administrador de E/S realiza los pasos siguientes:

  • Acepta solicitudes de E/S, que normalmente se originan en aplicaciones en modo de usuario.

  • Crea IRP para representar las solicitudes de E/S.

  • Enruta los IRP a los controladores adecuados.

  • Realiza un seguimiento de los IRP hasta que se completan.

  • Devuelve el estado al solicitante original de cada operación de E/S.

Un IRP se puede enrutar a más de un controlador. Por ejemplo, una solicitud para abrir un archivo en un disco podría ir primero a un controlador del sistema de archivos, a través de un controlador reflejado intermedio y, en última instancia, a un controlador de disco y, posiblemente, a un controlador de bus de hardware PnP. Este conjunto de controladores se conoce como pila de controladores.

Por lo tanto, cada IRP tiene una parte fija, más una ubicación de pila de E/ S específica del controlador para cada controlador que controla el dispositivo:

  • En la parte fija (o encabezado), el administrador de E/S mantiene información sobre la solicitud original, como el identificador y los parámetros del subproceso del autor de la llamada, la dirección del objeto de dispositivo en el que está abierto un archivo, etc. La parte fija también contiene un bloque de estado de E/S, en el que los controladores establecen información sobre el estado de la operación de E/S solicitada.

  • En la ubicación de pila de E/S del controlador de nivel superior, el administrador de E/S, el administrador de Plug and Play o el administrador de energía establece parámetros específicos del controlador, como el código de función de la operación solicitada y el contexto que usa el controlador correspondiente para determinar lo que debe hacer. A su vez, cada controlador configura la ubicación de pila de E/S del controlador inferior siguiente en la pila de controladores.

A medida que cada controlador procesa un IRP, puede acceder a su ubicación de pila de E/S en el IRP, reutilizando así el IRP en cada fase de las operaciones del controlador. Además, los controladores de nivel superior pueden crear (o reutilizar) IRP para enviar solicitudes a controladores incluso de nivel inferior.

Para obtener una explicación detallada de los IRP, consulte Control de IRP.