Rutinas de controlador SCSI miniport obligatorias y opcionales
Las rutinas HwScsiXxx de un controlador de miniporte pueden tener cualquier nombre elegido por el escritor de controladores. DriverEntry es un nombre obligatorio.
Cada controlador de miniporte SCSI debe tener al menos las siguientes rutinas definidas por el sistema:
Rutina requerida | Descripción |
---|---|
DriverEntry | Inicializa el controlador de minipuerto. |
HwScsiFindAdapter | Determina cómo (o si) los adaptadores de bus host admitidos por el controlador (HBA) están configurados en la máquina. |
HwScsiInitialize | Inicializa los HBA admitidos. |
HwScsiStartIo | Inicia las operaciones en el HBA de la miniporta para las solicitudes entrantes. |
HwScsiResetBus | Controla las solicitudes de restablecimiento de bus |
Según cada HBA y el diseñador de controladores, los controladores de miniporte SCSI también tienen algunas o todas las siguientes rutinas definidas por el sistema:
Rutina | Descripción |
---|---|
HwScsiInterrupt | Controla las interrupciones generadas por HBA, que es opcional si y solo si el HBA no genera interrupciones para que el controlador de miniporte administre todas las operaciones de E/S en su HBA mediante sondeos. Sin embargo, el uso del sondeo exclusivamente tiene un efecto adverso en el rendimiento de un controlador de minipuerto y en el rendimiento de E/S de su HBA. Este controlador de minipuerto también debe tener una rutina HwScsiTimer . |
HwScsiDisableInterruptsCallback y HwScsiEnableInterruptsCallback | Controle el procesamiento de E/S diferido si las operaciones de E/S controladas por interrupciones tardan mucho tiempo. |
HwScsiTimer | Tiempos de operaciones que requieren retrasos largos en el HBA o para cualquier otro propósito determinado por el diseñador de controladores. Un controlador de miniport debe tener una rutina HwScsiTimer si no tiene ninguna rutina HwScsiInterrupt para que pueda usar la rutina HwScsiTimer para un sondeo eficaz de su HBA. |
HwScsiDmaStarted | Necesario si el HBA usa un controlador DMA del sistema, para configurar una transferencia HBA después de programar el controlador DMA del sistema. |
HwScsiAdapterState | Opcional si y solo si el HBA no tiene ningún controlador bios o x86-real-mode o nunca se ejecutará en sistemas de Microsoft Windows x86 solo. |
HwScsiAdapterControl | Necesario si el controlador de minipuerto admite Plug and Play. |
HwScsiWmiExecuteMethod | Ejecuta un método asociado a un bloque de datos. Esta rutina es opcional. |
HwScsiWmiFunctionControl | Habilita o deshabilita la notificación de eventos, y también habilita o deshabilita la recopilación de datos para bloques de datos que el controlador de miniporte designado como costoso recopilar. Opcional. |
HwScsiWmiQueryDataBlock | Obtiene una única instancia o todas las instancias de un bloque de datos. Necesario. |
HwScsiWmiQueryReginfo | Obtiene información sobre los bloques de datos y eventos que se van a registrar en nombre del controlador de miniporte mediante el controlador de puerto SCSI. Necesario. |
HwScsiWmiSetDataBlock | Cambia todos los elementos de datos de una sola instancia de un bloque de datos. Opcional. |
HwScsiWmiSetDataItem | Cambia un único elemento de datos en una instancia de un bloque de datos. Opcional. |
Cada una de las rutinas anteriores del controlador de miniporte, excepto DriverEntry, tiene un nombre elegido para describir su funcionalidad. Excepto driverEntry, que es un nombre obligatorio para cada punto de entrada inicial del controlador de miniporte, los nombres de las rutinas de controlador de miniportar pueden ser cualquier cosa que elija el escritor de controladores.
El control de errores en los controladores de miniporte SCSI describe los requisitos de control de errores para los controladores de miniporte SCSI.