다음을 통해 공유


WdfInterruptReportActive 함수(wdfinterrupt.h)

[KMDF에만 적용]

WdfInterruptReportActive 인터럽트가 활성 상태이며 드라이버가 연결된 줄에서 인터럽트 요청을 처리할 준비가 되었음을 시스템에 알릴 수 있습니다.

구문론

VOID WdfInterruptReportActive(
  [in] WDFINTERRUPT Interrupt
);

매개 변수

[in] Interrupt

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

반환 값

없음

비고

기능 상태 전원 관리 호출을 구현하는 드라이버만 WdfInterruptReportActive .

드라이버는 인터럽트를 만든 직후 WdfInterruptReportActive 호출할 필요가 없습니다. 드라이버는 이전에 WdfInterruptReportInactive호출한 후에만 WdfInterruptReportActive 호출해야 합니다.

일반적으로 드라이버는 ComponentActiveConditionCallback 루틴에서 WdfInterruptReportActive 호출하거나 State 0일 때 ComponentIdleStateCallback 호출합니다(F0 상태의 전체 표시).

드라이버가 Windows 8 이전 운영 체제에서 이 메서드를 호출하는 경우 프레임워크의 검증 도구 오류를 보고합니다.

자세한 내용은 기능 전원 상태 지원 참조하세요.

예시

다음 예제에서는 드라이버가 KMDF 드라이버의 ComponentIdleStateCallback 루틴에서 WdfInterruptReportActive 호출하는 방법을 보여줍니다. 드라이버는 WdfDeviceWdmAssignPowerFrameworkSettings호출하여 단일 구성 요소를 등록합니다.

VOID
MyComponentIdleStateCallback(
    _In_ PVOID Context,
    _In_ ULONG Component,
    _In_ ULONG State
    )
{
    PFDO_DEVICE_DATA deviceData;
    PINTERRUPT_CONTEXT interruptContext;

    deviceData = FdoGetData((WDFDEVICE)Context);
    interruptContext = InterruptGetData(deviceData->Interrupt);

    switch (State) {
        case 0:
            if (interruptContext->ReportedInactive) {

                //
                // the interrupt was reported inactive earlier. We need to report active now.
                //
                WdfInterruptReportActive(deviceData->Interrupt);
                interruptContext->ReportedInactive = FALSE;

                //
                // Enable interrupt generation at hardware.
                // 
                WdfInterruptAcquireLock(deviceData->Interrupt);
                EnableInterruptInHardware();
                WdfInterruptReleaseLock(deviceData->Interrupt);

            }

        break;


    …

}

요구 사항

요구 사항 가치
지원되는 최소 클라이언트 Windows 8
대상 플랫폼 보편적
최소 KMDF 버전 1.11
헤더 wdfinterrupt.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf)

참고하십시오

WdfInterruptReportInactive