다음을 통해 공유


Storport 미니포트 드라이버와 Storport의 인터페이스

Storport 드라이버와 Storport 미니포트 드라이버 간의 통신은 SCSI 요청 블록(SRB) 및 미니포트 드라이버 콜백 루틴을 통해 이루어집니다. Storport 미니포트 드라이버 콜백 루틴에 대한 자세한 내용은 Storport Miniport 드라이버 루틴을 참조하세요.

개별 SRB 함수, SRB 플래그 및 SRB 상태 값에 대한 개요 및 정의는 SCSI_REQUEST_BLOCK 참조하세요.

미니포트 드라이버가 각 개별 SRB 함수에 응답하는 방법에 대한 자세한 내용은 HwStorStartIo를 참조하세요.

Storport는 비동기 처리를 위해 SRB를 Storport 미니포트 드라이버로 전달합니다. 일반적으로 미니포트 드라이버는 실제로 요청을 완료하는 데 다소 시간이 걸립니다. 태그가 지정된 큐를 지원하는 HBA(호스트 버스 어댑터)는 내부적으로 요청을 큐에 대기하고 Storport가 각 요청에 할당하는 태그로 표시된 순서대로 처리할 수 있습니다. SRB(SCSI_REQUEST_BLOCK) 구조에는 Storport 및 미니포트 드라이버가 호스트 어댑터의 내부 큐에서 SRB를 정렬하는 방법을 지정하는 데 사용하는 두 개의 멤버가 포함됩니다.

  • QueueTag: Storport는 각 SRB의 QueuedTag 멤버에 개수 또는 "태그" 값을 할당합니다. 이 태그는 어댑터가 패킷을 처리해야 하는 순서를 나타냅니다. 또한 태그 값을 사용하면 Storport에서 아직 미해결 상태로 완료된 SRB와 시간이 초과된 SRB를 추적할 수 있습니다.

  • QueueAction: SRB에서 SRB_FLAGS_QUEUE_ACTION_ENABLE 플래그를 설정할 때 사용할 태그가 지정된 큐 메시지를 나타냅니다. SrbFlags. 미니포트의 QueueAction 사용은 미니포트별로 다릅니다. HBA에서 지원하는 경우 SCSI 기반 미니포트는 SCSI 사양을 따를 수 있습니다. QueueAction 은 다음 값 중 하나일 수 있습니다.

의미
SRB_SIMPLE_TAG_REQUEST 이전 SRB_HEAD_OF_QUEUE_TAG_REQUEST 및 SRB_ORDERED_QUEUE_TAG_REQUEST 요청이 모두 종료되면 요청을 큐에 대기하고 순서대로 실행합니다.
SRB_ORDERED_QUEUE_TAG_REQUEST 이전 SRB_HEAD_OF_QUEUE_TAG_REQUEST 모든 이전 요청이 완료된 후에만 요청을 실행합니다.
SRB_HEAD_OF_QUEUE_TAG_REQUEST 큐의 맨 앞에 요청을 배치하고 다른 모든 SRB_HEAD_OF_QUEUE_TAG_REQUEST 태그가 지정된 요청을 포함하여 큐의 다른 모든 요청보다 먼저 실행합니다.

자세한 내용은 SCSI 사양을 참조하세요.