Fungsi WdfInterruptReportActive (wdfinterrupt.h)

[Hanya berlaku untuk KMDF]

WdfInterruptReportActive menginformasikan sistem bahwa interupsi aktif dan driver siap untuk memproses permintaan interupsi pada baris terkait.

Sintaks

void WdfInterruptReportActive(
  [in] WDFINTERRUPT Interrupt
);

Parameter

[in] Interrupt

Handel ke objek interupsi kerangka kerja.

Nilai kembali

Tidak ada

Keterangan

Hanya driver yang mengimplementasikan manajemen daya status fungsi yang memanggil WdfInterruptReportActive.

Driver tidak perlu memanggil WdfInterruptReportActive segera setelah membuat interupsi. Driver hanya boleh memanggil WdfInterruptReportActive setelah sebelumnya disebut WdfInterruptReportInactive.

Biasanya, driver memanggil WdfInterruptReportActive dari rutinitas ComponentActiveConditionCallback , atau dari ComponentIdleStateCallback ketika Status adalah 0 (menunjukkan sepenuhnya pada status F0).

Jika driver Anda memanggil metode ini pada sistem operasi yang lebih awal dari Windows 8, pemverifikasi kerangka kerja melaporkan kesalahan.

Untuk informasi selengkapnya, lihat Mendukung Status Daya Fungsi.

Contoh

Contoh berikut menunjukkan bagaimana driver mungkin memanggil WdfInterruptReportActive dari rutinitas ComponentIdleStateCallback dari driver KMDF. Driver mendaftarkan satu komponen dengan memanggil 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;


    …

}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Target Platform Universal
Versi KMDF minimum 1.11
Header wdfinterrupt.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.)
IRQL <=DISPATCH_LEVEL
Aturan kepatuhan DDI DriverCreate(kmdf)

Lihat juga

WdfInterruptReportInactive