[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호출하는 대신 드라이버는 WdfInterruptAcquireLock 호출하고 WdfInterruptReleaseLock 수 있습니다.
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) |