Fungsi UrsSetHardwareEventSupport (ursdevice.h)

Menunjukkan dukungan driver klien untuk melaporkan peristiwa perangkat keras baru.

Sintaks

void UrsSetHardwareEventSupport(
  [in] WDFDEVICE Device,
  [in] BOOLEAN   HardwareEventReportingSupported
);

Parameter

[in] Device

Handel ke objek perangkat kerangka kerja yang diambil driver klien dalam panggilan sebelumnya ke WdfDeviceCreate.

[in] HardwareEventReportingSupported

Nilai boolean yang menunjukkan dukungan untuk melaporkan peristiwa perangkat keras.

TRUE menunjukkan driver klien akan melaporkan peristiwa perangkat keras dengan memanggil UrsReportHardwareEvent.

FALSE menunjukkan pelaporan peristiwa perangkat keras tidak ditangani oleh driver klien.

Nilai kembali

Tidak ada

Keterangan

Sebelum driver klien dapat melaporkan peristiwa perangkat keras, driver klien untuk pengontrol peran ganda harus menunjukkan ke ekstensi kelas bahwa driver mendukung peristiwa perangkat keras dengan memanggil metode ini. Biasanya, driver memanggil UrsSetHardwareEventSupport dalam fungsi panggilan balik EvtDevicePrepareHardware driver. Driver tidak boleh memanggil metode ini setelah EvtDevicePrepareHardware kembali. Jika tidak, metode gagal dan jeda dikeluarkan jika Pemverifikasi Driver diaktifkan.

Untuk pengontrol tertentu, driver klien mungkin tidak mendukung deteksi peran sebelum melakukan operasi pengalihan peran. Dalam hal ini, driver klien harus mengatur HardwareEventReportingSupported ke FALSE. Sistem operasi mengelola peran pengontrol.

Jika tidak, jika driver mendukung deteksi peran, driver harus mengatur HardwareEventReportingSupported ke TRUE. Ini menunjukkan ekstensi kelas bahwa driver klien akan menangani peristiwa perangkat keras, seperti gangguan pin ID, dan melaporkan ke ekstensi kelas bahwa peran perlu diubah. Driver dapat melaporkan peristiwa dengan memanggil UrsReportHardwareEvent.

Contoh


EVT_WDF_DEVICE_PREPARE_HARDWARE EvtDevicePrepareHardware;


NTSTATUS
EvtDevicePrepareHardware (
    _In_ WDFDEVICE Device,
    _In_ WDFCMRESLIST ResourcesRaw,
    _In_ WDFCMRESLIST ResourcesTranslated
    )
{
    ULONG resourceCount;
    BOOLEAN hasHardwareEventSupport;

    UNREFERENCED_PARAMETER(ResourcesRaw);


    TRY {


        resourceCount = WdfCmResourceListGetCount(ResourcesTranslated);

        ...

        // DetermineHardwareEventSupport determines support by inspecting resources.
        // Implementation not shown.
        hasHardwareEventSupport = DetermineHardwareEventSupport(ResourcesRaw);


        UrsSetHardwareEventSupport(Device, hasHardwareEventSupport);

        if (hasHardwareEventSupport) {
            UrsReportHardwareEvent(Device, UrsHardwareEventIdGround);
        }

        ... 

    } FINALLY {
    }


    return STATUS_SUCCESS;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Server minimum yang didukung Server Windows 2016
Target Platform Windows
Versi KMDF minimum 1.15
Header ursdevice.h (termasuk Urscx.h)
Pustaka Urscxstub.lib
IRQL PASSIVE_LEVEL

Lihat juga

UrsReportHardwareEvent