스토리지 주변 디바이스에 대한 요청 처리
스토리지 포트 드라이버가 기본 버스를 통해 요청을 실행해야 하는 모든 요청의 경우 클래스 드라이버는 SCSI CDB(명령 설명자 블록)가 포함된 SRB(SCSI 요청 블록)를 사용하여 IRP를 설정해야 합니다. 따라서 대부분의 스토리지 클래스 드라이버에는 SRB를 빌드하기 위한 하나 이상의 내부 BuildRequest 루틴이 있습니다. 이러한 루틴에 대한 자세한 내용은 스토리지 클래스 드라이버의 BuildRequest 루틴을 참조하세요.
또한 스토리지 클래스 드라이버는 기본 스토리지 포트 드라이버에 IRP_MJ_SCSI 요청을 전달합니다. 이러한 요청은 스토리지 필터 드라이버에서 비롯할 수 있습니다.
SCSI Pass-Through 요청 처리에 설명된 IOCTL_SCSI_PASS_THROUGH 요청의 경우 클래스 드라이버는 IoCallDriver를 사용하여 포트 드라이버에 IRP_MJ_DEVICE_CONTROL 요청을 전달하기 전에 IRP의 포트 드라이버 I/O 스택 위치에 IRP_MJ_DEVICE_CONTROL MinorFunction 코드를 설정해야 합니다.
모든 스토리지 클래스 드라이버는 기본 HBA의 기능을 초과하는 전송 요청(IRP_MJ_READ 및/또는 IRP_MJ_WRITE)을 분할할 책임이 있습니다. 따라서 대부분의 클래스 드라이버는 스토리지 클래스 드라이버의 SplitTransferRequest 루틴에 설명된 내부 SplitTransferRequest 루틴을 호출하거나 읽기 및 쓰기 요청에 대해 디스패치 루틴에서 동일한 기능을 구현합니다.
스토리지 주변 디바이스에 대한 요청을 처리하는 방법에 대한 자세한 내용은 다음 topics 참조하세요.