IInterruptSync 인터페이스(portcls.h)
인터페이스는 IInterruptSync
ISR(인터럽트 서비스 루틴) 목록의 실행을 ISR이 아닌 루틴과 동기화하는 인터럽트 동기화 개체를 나타냅니다. PortCls 시스템 드라이버는 이 인터페이스를 구현하고 어댑터 드라이버에 노출합니다. 미니포트 드라이버는 인터럽트 리소스에 IInterruptSync
연결하는 새 IInterruptSync
개체를 만드는 PortCls 함수 PcNewInterruptSync를 호출하여 개체에 대한 참조를 가져옵니다. IInterruptSync
는 IUnknown 인터페이스에서 상속됩니다.
IInterruptSync::RegisterServiceRoutine 메서드는 ISR을 동기화 개체와 연결합니다. 둘 이상의 ISR을 단일 동기화 개체와 연결할 수 있습니다. 인터럽트가 발생하면 동기화 개체는 PcNewInterruptSync 함수의 Mode 매개 변수에 따라 지정된 순서와 방식으로 목록의 ISR을 실행합니다.
의 IInterruptSync
또 다른 측면은 ISR의 실행을 ISR이 아닌 다른 루틴과 동기화하는 기능입니다. 비 ISR 루틴이 IInterruptSync::CallSynchronizedRoutine 에 전달되고 실행을 시작하면 동기화 개체에 등록된 모든 ISR의 실행은 해당 루틴 실행이 완료될 때까지 보류됩니다.
RegisterServiceRoutine 및 CallSynchronizedRoutine 메서드는 모두 다음과 같이 정의된 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 |