ScsiPortIoMapTransfer 함수(srb.h)
ScsiPortIoMapTransfer 루틴은 하위 HBA를 통해 데이터를 전송하도록 미니포트 드라이버에 대한 시스템 DMA 컨트롤러를 설정합니다.
구문
SCSIPORT_API VOID ScsiPortIoMapTransfer(
[in] PVOID HwDeviceExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID LogicalAddress,
[in] ULONG Length
);
매개 변수
[in] HwDeviceExtension
하드웨어 디바이스 확장에 대한 포인터입니다. 포트 드라이버가 미니포트 드라이버를 대신하여 할당하고 초기화하는 HBA별 스토리지 영역입니다. 미니포트 드라이버는 일반적으로 HBA 상태 및 HBA의 매핑된 액세스 범위와 같은 HBA 관련 정보를 이 확장에 저장합니다. 이 영역은 미니포트 드라이버가 ScsiPortInitialize를 호출한 직후 HBA 디바이스 개체의 DeviceExtension-HwDeviceExtension> 멤버의 미니포트 드라이버에서 사용할 수 있습니다. 포트 드라이버는 디바이스를 제거할 때 이 메모리를 해제합니다.
[in] Srb
DMA 전송에 대한 SCSI 요청 블록에 대한 포인터입니다.
[in] LogicalAddress
전송 작업의 시작 주소를 지정합니다. 이 값은 데이터를 전송할 버퍼의 기본 주소일 수 있습니다. 이 값은 이러한 버퍼 내의 오프셋일 수 있습니다.
[in] Length
전송할 바이트 수를 지정합니다.
반환 값
없음
설명
시스템 DMA 컨트롤러(하위 DMA)를 사용하는 HBA의 미니포트 드라이버만 ScsiPortIoMapTransfer를 호출합니다. 이러한 미니포트 드라이버가 데이터를 전송하도록 HBA를 설정하기 전에 이 루틴을 호출해야 합니다. LogicalAddress 및 Length로 지정된 범위는 지정된 SRB에서 설명하는 버퍼 내에 있어야 합니다.
운영 체제별 포트 드라이버가 시스템 DMA 컨트롤러를 프로그래밍한 후 미니포트 드라이버의 HwScsiDmaStarted 루틴을 호출합니다. HwScsiDmaStarted는 HBA를 프로그래밍하여 데이터 전송을 시작해야 합니다. HBA는 미니포트 드라이버의 ScsiPortIoMapTransfer 호출과 미니포트 드라이버의 HwScsiDmaStarted 루틴에 대한 운영 체제별 포트 드라이버 호출 간에 중단될 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | srb.h(Miniport.h, Scsi.h 포함) |
라이브러리 | Scsiport.lib |