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 miniport. Los controladores de miniportar 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 DeviceExtension->HwDeviceExtension miembro 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 dicho búfer.
[in] Length
Especifica el número de bytes que se van a transferir.
Valor devuelto
Ninguno
Observaciones
Solo los controladores de miniportar 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 miniporte configure su HBA para transferir datos. El intervalo especificado por el LogicalAddress y Longitud debe estar dentro del búfer descrito por la SRB especificada.
Después de que el controlador de puerto específico del sistema operativo programa el controlador DMA del sistema, llama a la rutina del controlador de miniporte HwScsiDmaStarted. HwScsiDmaStarted debe programar el HBA para iniciar la transferencia de datos. Tenga en cuenta que un HBA puede interrumpir entre la llamada del controlador de miniporte a ScsiPortIoMapTransfer y la llamada del controlador de puerto específico del sistema operativo a la rutina de HwScsiDmaStarted del controlador de miniport.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Escritorio |
encabezado de | srb.h (include Miniport.h, Scsi.h) |
biblioteca de | Scsiport.lib |