Funzione UrsSetHardwareEventSupport (ursdevice.h)
Indica il supporto del driver client per la segnalazione di nuovi eventi hardware.
Sintassi
void UrsSetHardwareEventSupport(
[in] WDFDEVICE Device,
[in] BOOLEAN HardwareEventReportingSupported
);
Parametri
[in] Device
Handle per l'oggetto dispositivo framework recuperato dal driver client nella chiamata precedente a WdfDeviceCreate.
[in] HardwareEventReportingSupported
Valore booleano che indica il supporto per la segnalazione di eventi hardware.
TRUE indica che il driver client segnala gli eventi hardware chiamando UrsReportHardwareEvent.
FALSE indica che la segnalazione degli eventi hardware non viene gestita dal driver client.
Valore restituito
nessuno
Osservazioni
Prima che il driver client possa segnalare gli eventi hardware, il driver client per il controller a doppio ruolo deve indicare all'estensione della classe che il driver supporta gli eventi hardware chiamando questo metodo. In genere, il driver chiama UrsSetHardwareEventSupport nella funzione di callback EvtDevicePrepareHardware del driver. Il driver non deve chiamare questo metodo dopo la restituzione di EvtDevicePrepareHardware . In caso contrario, il metodo ha esito negativo e viene generata un'interruzione se Driver Verifier è abilitato.
Per determinati controller, il driver client potrebbe non supportare il rilevamento dei ruoli prima di eseguire un'operazione di cambio di ruolo. In tal caso, il driver client deve impostare HardwareEventReportingSupported su FALSE. Il sistema operativo gestisce il ruolo del controller.
In caso contrario, se il driver supporta il rilevamento dei ruoli, deve impostare HardwareEventReportingSupported su TRUE. Indica all'estensione della classe che il driver client gestirà gli eventi hardware, ad esempio interruzioni del pin ID, e segnala all'estensione della classe che il ruolo deve essere modificato. Il driver può segnalare eventi chiamando UrsReportHardwareEvent.
Esempio
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 |
Server minimo supportato | Windows Server 2016 |
Piattaforma di destinazione | Windows |
Versione KMDF minima | 1.15 |
Intestazione | ursdevice.h (include Urscx.h) |
Libreria | Urscxstub.lib |
IRQL | PASSIVE_LEVEL |