다음을 통해 공유


IDE_HW_INTERRUPT 콜백 함수(irb.h)

IdeHwInterrupt 미니포트 드라이버 루틴은 미니포트 드라이버의 컨트롤러가 연결된 HBA(호스트 버스 어댑터)의 인터럽트를 처리합니다.

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

구문

IDE_HW_INTERRUPT IdeHwInterrupt;

BOOLEAN IdeHwInterrupt(
  [in] PVOID ChannelExtension
)
{...}

매개 변수

[in] ChannelExtension

채널 확장에 대한 포인터입니다.

반환 값

컨트롤러 채널 중 하나에서 인터럽트가 생성되면 AtaHwInterrruptTRUE를 반환합니다. 채널이 인터럽트 생성하지 않은 경우 루틴은 가능한 한 빨리 FALSE 를 반환해야 합니다.

설명

IdeHwInterrupt 루틴은 인터럽트 기반 I/O 작업을 완료합니다.

표시된 채널이 인터럽트를 생성하지 않은 경우 미니포트 드라이버는 컨트롤러의 다른 채널에 대한 인터럽트를 처리하기 위해 IdeHwInterrupt 루틴에 대해 두 번째(재귀적) 호출을 수행해야 합니다.

미니포트 드라이버가 인터럽트 처리에 많은 시간이 필요한 경우 다음 단계를 수행해야 합니다.

  1. HBA에서 인터럽트 해제
  2. ChannelExtension 매개 변수로 표시되는 채널에서 인터럽트 사용 안 함
  3. AtaPortRequestWorkerRoutine을 사용하여 작업자 루틴을 요청합니다.
  4. 작업자 루틴에서 추가 처리를 완료합니다.
  5. 채널에서 인터럽트 사용
IdeHwInterrupt 루틴에서 다음 ATA 포트 루틴을 호출해서는 안 됩니다. 그러나 미니포트 드라이버는 작업자 루틴을 요청하고 작업자 루틴에서 호출할 수 있습니다.

작업자 루틴은 TRUE를 반환하기 전에 HBA에서 인터럽트 지우기를 수행해야 합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 irb.h(Irb.h 포함)

추가 정보

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine