UrsSetHardwareEventSupport-Funktion (ursdevice.h)

Gibt die Unterstützung des Clienttreibers für die Meldung neuer Hardwareereignisse an.

Syntax

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

Parameter

[in] Device

Ein Handle für das Framework-Geräteobjekt, das der Clienttreiber im vorherigen Aufruf von WdfDeviceCreate abgerufen hat.

[in] HardwareEventReportingSupported

Ein boolescher Wert, der die Unterstützung für das Melden von Hardwareereignissen angibt.

TRUE gibt an, dass der Clienttreiber Hardwareereignisse meldet, indem Er UrsReportHardwareEvent aufruft.

FALSE gibt an, dass die Hardwareereignisberichterstattung nicht vom Clienttreiber verarbeitet wird.

Rückgabewert

Keine

Bemerkungen

Bevor der Clienttreiber Hardwareereignisse melden kann, muss der Clienttreiber für den Controller mit zwei Rollen der Klassenerweiterung angeben, dass der Treiber Hardwareereignisse unterstützt, indem er diese Methode aufruft. In der Regel ruft der Treiber UrsSetHardwareEventSupport in der Rückruffunktion EvtDevicePrepareHardware des Treibers auf. Der Treiber darf diese Methode nicht aufrufen , nachdem EvtDevicePrepareHardware zurückgegeben wurde. Andernfalls schlägt die Methode fehl, und es wird eine Unterbrechung ausgegeben, wenn die Treiberüberprüfung aktiviert ist.

Bei bestimmten Controllern unterstützt der Clienttreiber möglicherweise keine Rollenerkennung, bevor er einen Rollenwechselvorgang ausführt. In diesem Fall muss der Clienttreiber HardwareEventReportingSupported auf FALSE festlegen. Das Betriebssystem verwaltet die Rolle des Controllers.

Andernfalls muss hardwareEventReportingSupported auf TRUE festgelegt werden, wenn der Treiber die Rollenerkennung unterstützt. Dies gibt der Klassenerweiterung an, dass der Clienttreiber Hardwareereignisse wie z. B. ID-Anheftunterbrechungen verarbeitet und der Klassenerweiterung meldet, dass die Rolle geändert werden muss. Der Treiber kann Ereignisse melden, indem er UrsReportHardwareEvent aufruft.

Beispiele


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;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Zielplattform Windows
KMDF-Mindestversion 1.15
Kopfzeile ursdevice.h (include Urscx.h)
Bibliothek Urscxstub.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

UrsReportHardwareEvent