다음을 통해 공유


ScsiPortIoMapTransfer 함수(srb.h)

ScsiPortIoMapTransfer 루틴은 하위 HBA를 통해 데이터를 전송하도록 미니포트 드라이버에 대한 시스템 DMA 컨트롤러를 설정합니다.

참고 SCSI 포트 드라이버 및 SCSI 미니포트 드라이버 모델은 나중에 변경되거나 사용할 수 없습니다. 대신 Storport 드라이버Storport 미니포트 드라이버 모델을 사용하는 것이 좋습니다.
 

구문

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를 설정하기 전에 이 루틴을 호출해야 합니다. LogicalAddressLength로 지정된 범위는 지정된 SRB에서 설명하는 버퍼 내에 있어야 합니다.

운영 체제별 포트 드라이버가 시스템 DMA 컨트롤러를 프로그래밍한 후 미니포트 드라이버의 HwScsiDmaStarted 루틴을 호출합니다. HwScsiDmaStarted는 HBA를 프로그래밍하여 데이터 전송을 시작해야 합니다. HBA는 미니포트 드라이버의 ScsiPortIoMapTransfer 호출과 미니포트 드라이버의 HwScsiDmaStarted 루틴에 대한 운영 체제별 포트 드라이버 호출 간에 중단될 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 srb.h(Miniport.h, Scsi.h 포함)
라이브러리 Scsiport.lib

추가 정보

HwScsiDmaStarted

ScsiPortFlushDma