Función ScsiPortIoMapTransfer (srb.h)
La rutina ScsiPortIoMapTransfer configura el controlador DMA del sistema para que un controlador de miniporte transfiera datos a través de un HBA subordinado.
Sintaxis
SCSIPORT_API VOID ScsiPortIoMapTransfer(
[in] PVOID HwDeviceExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID LogicalAddress,
[in] ULONG Length
);
Parámetros
[in] HwDeviceExtension
Puntero a la extensión de dispositivo de hardware. Se trata de un área de almacenamiento por HBA que el controlador de puerto asigna e inicializa en nombre del controlador de minipuerto. Los controladores de minipuerto suelen almacenar información específica de HBA en esta extensión, como el estado del HBA y los intervalos de acceso asignados del HBA. Esta área está disponible para el controlador de miniport en el miembro DeviceExtension-HwDeviceExtension> del objeto de dispositivo del HBA inmediatamente después de que el controlador de miniporte llame a ScsiPortInitialize. El controlador de puerto libera esta memoria cuando quita el dispositivo.
[in] Srb
Puntero al bloque de solicitud SCSI para la transferencia DMA.
[in] LogicalAddress
Especifica la dirección inicial de la operación de transferencia. Este valor puede ser la dirección base de un búfer en el que o desde qué datos se van a transferir. Este valor puede ser un desplazamiento dentro de este búfer.
[in] Length
Especifica el número de bytes que se van a transferir.
Valor devuelto
None
Observaciones
Solo los controladores de miniporte de HBA que usan un controlador DMA del sistema (DMA subordinado) llaman a ScsiPortIoMapTransfer. Se debe llamar a esta rutina antes de que un controlador de minipuerto configure su HBA para transferir datos. El intervalo especificado por LogicalAddress y Length debe estar dentro del búfer descrito por el SRB especificado.
Después de que el controlador de puerto específico del sistema operativo programa el controlador DMA del sistema, llama a la rutina HwScsiDmaStarted del controlador de miniporte. HwScsiDmaStarted debe programar el HBA para iniciar la transferencia de datos. Tenga en cuenta que un HBA puede interrumpirse entre la llamada del controlador de miniporte a ScsiPortIoMapTransfer y la llamada del controlador de puerto específico del sistema operativo a la rutina HwScsiDmaStarted del controlador de miniportador.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | srb.h (incluya Miniport.h, Scsi.h) |
Library | Scsiport.lib |