IInterruptSync 인터페이스(portcls.h)

인터페이스는 IInterruptSync ISR(인터럽트 서비스 루틴) 목록의 실행을 ISR이 아닌 루틴과 동기화하는 인터럽트 동기화 개체를 나타냅니다. PortCls 시스템 드라이버는 이 인터페이스를 구현하고 어댑터 드라이버에 노출합니다. 미니포트 드라이버는 인터럽트 리소스에 IInterruptSync 연결하는 새 IInterruptSync 개체를 만드는 PortCls 함수 PcNewInterruptSync를 호출하여 개체에 대한 참조를 가져옵니다. IInterruptSyncIUnknown 인터페이스에서 상속됩니다.

IInterruptSync::RegisterServiceRoutine 메서드는 ISR을 동기화 개체와 연결합니다. 둘 이상의 ISR을 단일 동기화 개체와 연결할 수 있습니다. 인터럽트가 발생하면 동기화 개체는 PcNewInterruptSync 함수의 Mode 매개 변수에 따라 지정된 순서와 방식으로 목록의 ISR을 실행합니다.

IInterruptSync 또 다른 측면은 ISR의 실행을 ISR이 아닌 다른 루틴과 동기화하는 기능입니다. 비 ISR 루틴이 IInterruptSync::CallSynchronizedRoutine 에 전달되고 실행을 시작하면 동기화 개체에 등록된 모든 ISR의 실행은 해당 루틴 실행이 완료될 때까지 보류됩니다.

RegisterServiceRoutineCallSynchronizedRoutine 메서드는 모두 다음과 같이 정의된 PINTERRUPTSYNCROUTINE 형식의 함수 포인터를 허용합니다.

  typedef NTSTATUS (*PINTERRUPTSYNCROUTINE)
  (
      IN  struct IInterruptSync *InterruptSync,
      IN  PVOID                  DynamicContext
  );

InterruptSync 멤버는 동기화 개체에 대한 포인터입니다. DynamicContext 멤버는 호출될 때 루틴에 전달되는 컨텍스트 값을 포함합니다.

자세한 내용은 인터럽트 동기화 개체를 참조하세요.

상속

IInterruptSync 인터페이스는 IUnknown 인터페이스에서 상속됩니다.

메서드

IInterruptSync 인터페이스에는 이러한 메서드가 있습니다.

 
IInterruptSync::CallSynchronizedRoutine

CallSynchronizedRoutine 메서드는 ISR(인터럽트 서비스 루틴)이 아니라 실행을 ISR과 동기화해야 하는 루틴을 호출합니다.
IInterruptSync::Connect

Connect 메서드는 동기화 개체를 인터럽트로 연결합니다.
IInterruptSync::D sconnect

Disconnect 메서드는 인터럽트에서 동기화 개체의 연결을 끊습니다.
IInterruptSync::GetKInterrupt

GetKInterrupt 메서드는 포트 클래스 동기화 개체에서 WDM 인터럽트 개체를 가져옵니다.
IInterruptSync::RegisterServiceRoutine

RegisterServiceRoutine 메서드는 인터럽트 발생 시 호출할 ISR(인터럽트 서비스 루틴)을 등록합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 portcls.h