다음을 통해 공유


WdfInterruptSynchronize 함수(wdfinterrupt.h)

[KMDF 및 UMDF에 적용]

WdfInterruptSynchronize 메서드는 인터럽트 개체의 스핀 잠금을 유지하면서 디바이스의 DIRQL에서 지정된 콜백 함수를 실행합니다.

수동 수준 인터럽트 개체의 경우 이 메서드는 인터럽트 개체의 수동 수준 인터럽트 잠금을 유지하면서 수동 수준에서 지정된 콜백 함수를 실행합니다.

구문

BOOLEAN WdfInterruptSynchronize(
  [in] WDFINTERRUPT                  Interrupt,
  [in] PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
  [in] WDFCONTEXT                    Context
);

매개 변수

[in] Interrupt

프레임워크 인터럽트 개체에 대한 핸들입니다.

[in] Callback

EvtInterruptSynchronize 콜백 함수에 대한 포인터입니다.

[in] Context

프레임워크가 EvtInterruptSynchronize 콜백 함수에 전달하는 드라이버 제공 정보에 대한 형식화되지 않은 포인터입니다.

반환 값

WdfInterruptSynchronizeEvtInterruptSynchronize 콜백 함수가 반환하는 부울 상태 값을 반환합니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

드라이버가 선점되지 않고 디바이스 인터럽트 서비스를 효과적으로 사용하지 않도록 설정하여 실행해야 하는 코드를 실행하려면 해당 코드를 EvtInterruptSynchronize 콜백 함수에 배치해야 합니다. 콜백 함수 실행을 예약하려면 드라이버가 WdfInterruptSynchronize를 호출해야 합니다.

WdfInterruptSynchronize 메서드는 EvtInterruptSynchronize 콜백 함수 실행이 완료된 후 를 반환합니다.

드라이버는 WdfInterruptSynchronize를 호출하는 대신 WdfInterruptAcquireLockWdfInterruptReleaseLock을 호출할 수 있습니다.

WdfInterruptSynchronize 메서드에 대한 자세한 내용은 인터럽트 코드 동기화를 참조하세요.

프레임워크 기반 드라이버에서 인터럽트 처리에 대한 자세한 내용은 하드웨어 인터럽트 처리를 참조하세요.

수동 수준 인터럽트의 경우 드라이버는 IRQL = PASSIVE_LEVEL WdfInterruptSynchronize 를 호출해야 합니다.

요청 처리기와 같은 임의의 스레드 컨텍스트에서 WdfInterruptSynchronize를 호출하지 마세요.

예제

다음 코드 예제에서는 WdfInterruptSynchronize 를 호출하여 EvtInterruptSynchronize 콜백 함수의 실행을 예약하는 방법을 보여 줍니다.

BOOLEAN synchronizeReturnValue;

synchronizeReturnValue = WdfInterruptSynchronize(
                                         WdfInterrupt,
                                         MyEvtInterruptSynchronize,
                                         CallbackContext
                                         );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfinterrupt.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

EvtInterruptSynchronize

WdfInterruptAcquireLock

WdfInterruptReleaseLock