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 |