IDE_HW_BUILDIO función de devolución de llamada (irb.h)
La rutina del controlador ideHwBuildIo miniport se llama una vez para cada solicitud de E/S entrante.
Sintaxis
IDE_HW_BUILDIO IdeHwBuildio;
BOOLEAN IdeHwBuildio(
[in] PVOID ChannelExtension,
[in] PIDE_REQUEST_BLOCK Irb
)
{...}
Parámetros
[in] ChannelExtension
Puntero a la extensión del canal del controlador de minipuerto.
[in] Irb
Puntero a una estructura de tipo IDE_REQUEST_BLOCK que define el bloque de solicitud de entrada/salida (IRB) integrado de Device Electronics (IDE) que se va a procesar.
Valor devuelto
IdeHwBuildIo devuelve TRUE para confirmar la recepción de la estructura de IDE_REQUEST_BLOCK . El controlador de puerto omite un valor devuelto de FALSE.
Comentarios
Los controladores de minipuerto proporcionan una rutina de AtaHwBuildlo que realiza el procesamiento de E/S sin sincronizar con interrupciones habilitadas. Después de que IdeHwBuildIo complete todo el procesamiento sin sincronizar de una solicitud, vuelve al controlador de puerto y el controlador de puerto pasa la solicitud a la rutina IdeHwStartIo del controlador de miniporte, que realiza las tareas que requieren sincronización.
El controlador de minipuerto debe observar ciertas restricciones mientras ejecuta la rutina IdeHwBuildIo . El controlador de minipuerto llama a IdeHwBuildIo sin mantener ningún bloqueo. En concreto, el controlador de minipuerto no debe tocar ningún dato compartido en su extensión de canal, ni puede llamar a ninguna de las rutinas exportadas por el controlador de puerto ATA.
Si el controlador de minipuerto debe completar una solicitud mientras ejecuta la rutina IdeHwBuildIo , debe asignar el valor de estado de finalización adecuado al miembro IrbStatus de la estructura IDE_REQUEST_BLOCK a la que apunta el parámetro Irb . El controlador de minipuerto no debe establecer IrbStatus en un valor de IRB_STATUS_PENDING.
El controlador de minipuerto puede usar la rutina IdeHwBuildIo para indicar al controlador de puerto cómo se debe controlar un IRB. Por ejemplo, el controlador de minipuerto puede solicitar que el controlador de puerto asigne el búfer en DataBuffer estableciendo el miembro IrbFlags del IRB en el valor adecuado. El controlador de minipuerto no debe solicitar que el búfer asociado a una solicitud se asigne a menos que la solicitud sea algún tipo de transferencia de datos.
La rutina IdeHwBuildIo es similar a la rutina HwStorBuildIo de Storport en la funcionalidad. Para obtener más información sobre la rutina HwStorBuildIo , vea Rutina HwStorBuildIo sin sincronizar.
IdeHwBuildIo es una rutina opcional.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | irb.h (incluir Irb.h) |