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.

Nota Los modelos de controlador de puerto ATA y controlador de minipuerto de ATA pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar los modelos del controlador Storport y del controlador storport miniport .
 

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)

Consulte también

IDE_REQUEST_BLOCK

IdeHwStartIo