Función UrsSetHardwareEventSupport (ursdevice.h)
Indica la compatibilidad del controlador de cliente para informar de nuevos eventos de hardware.
Sintaxis
void UrsSetHardwareEventSupport(
[in] WDFDEVICE Device,
[in] BOOLEAN HardwareEventReportingSupported
);
Parámetros
[in] Device
Identificador del objeto de dispositivo de marco que el controlador de cliente recuperó en la llamada anterior a WdfDeviceCreate.
[in] HardwareEventReportingSupported
Valor booleano que indica la compatibilidad con la generación de informes de eventos de hardware.
TRUE indica que el controlador cliente notificará eventos de hardware mediante una llamada a UrsReportHardwareEvent.
FALSE indica que el controlador cliente no controla los informes de eventos de hardware.
Valor devuelto
None
Observaciones
Para que el controlador cliente pueda notificar eventos de hardware, el controlador de cliente para el controlador de doble rol debe indicar a la extensión de clase que el controlador admite eventos de hardware llamando a este método. Normalmente, el controlador llama a UrsSetHardwareEventSupport en la función de devolución de llamada EvtDevicePrepareHardware del controlador. El controlador no debe llamar a este método después de que EvtDevicePrepareHardware haya devuelto. De lo contrario, se produce un error en el método y se emite una interrupción si el Comprobador de controladores está habilitado.
Para determinados controladores, es posible que el controlador cliente no admita la detección de roles antes de realizar una operación de cambio de rol. En ese caso, el controlador cliente debe establecer HardwareEventReportingSupported en FALSE. El sistema operativo administra el rol del controlador.
De lo contrario, si el controlador admite la detección de roles, debe establecer HardwareEventReportingSupported en TRUE. Esto indica a la extensión de clase que el controlador cliente controlará eventos de hardware, como interrupciones de patillas de identificador, e informar a la extensión de clase que debe cambiarse el rol. El controlador puede notificar eventos llamando a UrsReportHardwareEvent.
Ejemplos
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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Servidor mínimo compatible | Windows Server 2016 |
Plataforma de destino | Windows |
Versión mínima de KMDF | 1.15 |
Encabezado | ursdevice.h (incluya Urscx.h) |
Library | Urscxstub.lib |
IRQL | PASSIVE_LEVEL |