필수 및 선택적 SCSI 미니포트 드라이버 루틴

미니포트 드라이버의 HwScsiXxx 루틴은 드라이버 작성기에서 선택한 이름을 가질 수 있습니다. DriverEntry 는 필수 이름입니다.

모든 SCSI 미니포트 드라이버에는 최소한 다음 시스템 정의 루틴이 있어야 합니다.

필수 루틴 설명
DriverEntry 미니포트 드라이버 초기화
HwScsiFindAdapter 컴퓨터에서 드라이버 지원 호스트 버스 어댑터(HBA)를 구성하는 방법(또는 여부)을 결정합니다.
HwScsiInitialize 지원되는 HBA 초기화
HwScsiStartIo 들어오는 요청에 대한 미니포트의 HBA에 대한 작업을 시작합니다.
HwScsiResetBus 버스 재설정 요청을 처리합니다.

각 HBA 및 드라이버 디자이너에 따라 SCSI 미니포트 드라이버에는 다음 시스템 정의 루틴의 일부 또는 전부도 있습니다.

루틴에서 반환된 값 설명
HwScsiInterrupt HBA에서 생성된 인터럽트는 HBA가 인터럽트 생성을 생성하지 않는 경우에만 선택 사항이므로 미니포트 드라이버는 폴링하여 HBA의 모든 I/O 작업을 관리합니다. 그러나 폴링을 단독으로 사용하면 미니포트 드라이버의 성능과 HBA의 I/O 처리량에 부정적인 영향을 미칩니다. 이러한 미니포트 드라이버에는 HwScsiTimer 루틴도 있어야 합니다.
HwScsiDisableInterruptsCallbackHwScsiEnableInterruptsCallback 인터럽트 기반 I/O 작업이 오래 걸리는 경우 지연된 I/O 처리를 처리합니다.
HwScsiTimer HBA 또는 드라이버 디자이너에서 결정한 다른 용도로 긴 지연이 필요한 시간 작업입니다. HwScsiInterrupt 루틴이 없는 경우 미니포트 드라이버에는 HwScsiTimer 루틴 있어야 HBA의 효율적인 폴링에 HwScsiTimer 루틴을 사용할 수 있습니다.
HwScsiDmaStarted HBA가 시스템 DMA 컨트롤러를 사용하는 경우 포트 드라이버에서 시스템 DMA 컨트롤러를 프로그래밍한 후 HBA 전송을 설정하는 데 필요합니다.
HwScsiAdapterState HBA에 BIOS 또는 x86 실제 모드 드라이버가 없고/또는 x86 전용 Microsoft Windows 시스템에서 실행되지 않는 경우에만 선택 사항입니다.
HwScsiAdapterControl 미니포트 드라이버가 플러그 앤 플레이 지원하는 경우 필요합니다.
HwScsiWmiExecuteMethod 데이터 블록과 연결된 메서드를 실행합니다. 이 루틴은 선택 사항입니다.
HwScsiWmiFunctionControl 이벤트 알림을 사용하거나 사용하지 않도록 설정하고 미니포트 드라이버가 수집하는 데 비용이 많이 드는 데이터 블록에 대한 데이터 수집을 사용하거나 사용하지 않도록 설정합니다. 선택 사항입니다.
HwScsiWmiQueryDataBlock 단일 인스턴스 또는 데이터 블록의 모든 인스턴스를 가져옵니다. 필수 사항입니다.
HwScsiWmiQueryReginfo SCSI 포트 드라이버에서 미니포트 드라이버를 대신하여 등록할 데이터 및 이벤트 블록에 대한 정보를 가져옵니다. 필수 사항입니다.
HwScsiWmiSetDataBlock 데이터 블록의 단일 인스턴스에 있는 모든 데이터 항목을 변경합니다. 선택 사항입니다.
HwScsiWmiSetDataItem 데이터 블록 인스턴스의 단일 데이터 항목을 변경합니다. 선택 사항입니다.

DriverEntry를 제외한 앞의 각 미니포트 드라이버 루틴에는 해당 기능을 설명하기 위해 선택한 이름이 있습니다. 모든 미니포트 드라이버의 초기 진입점에 필요한 이름인 DriverEntry를 제외하고 미니포트 드라이버 루틴의 이름은 드라이버 작성기가 선택하는 모든 항목일 수 있습니다.

SCSI 미니포트 드라이버의 오류 처리는 SCSI 미니포트 드라이버에 대한 오류 처리 요구 사항을 설명합니다.