Função UrsSetHardwareEventSupport (ursdevice.h)
Indica o suporte do driver cliente para relatar novos eventos de hardware.
Sintaxe
void UrsSetHardwareEventSupport(
[in] WDFDEVICE Device,
[in] BOOLEAN HardwareEventReportingSupported
);
Parâmetros
[in] Device
Um identificador para o objeto de dispositivo de estrutura que o driver cliente recuperou na chamada anterior para WdfDeviceCreate.
[in] HardwareEventReportingSupported
Um valor booliano que indica suporte para relatar eventos de hardware.
TRUE indica que o driver cliente relatará eventos de hardware chamando UrsReportHardwareEvent.
FALSE indica que o relatório de eventos de hardware não é tratado pelo driver do cliente.
Retornar valor
Nenhum
Comentários
Antes que o driver cliente possa relatar eventos de hardware, o driver do cliente para o controlador de função dupla deve indicar para a extensão de classe que o driver dá suporte a eventos de hardware chamando esse método. Normalmente, o driver chama UrsSetHardwareEventSupport na função de retorno de chamada EvtDevicePrepareHardware do driver. O driver não deve chamar esse método depois que EvtDevicePrepareHardware tiver retornado. Caso contrário, o método falhará e uma interrupção será emitida se o Verificador de Driver estiver habilitado.
Para determinados controladores, o driver do cliente pode não dar suporte à detecção de função antes de executar uma operação de comutador de função. Nesse caso, o driver cliente deve definir HardwareEventReportingSupported como FALSE. O sistema operacional gerencia a função do controlador.
Caso contrário, se o driver der suporte à detecção de função, ele deverá definir HardwareEventReportingSupported como TRUE. Isso indica para a extensão de classe que o driver do cliente manipulará eventos de hardware, como interrupções de pino de ID, e relatará à extensão de classe que a função precisa ser alterada. O driver pode relatar eventos chamando UrsReportHardwareEvent.
Exemplos
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 | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 |
Servidor mínimo com suporte | Windows Server 2016 |
Plataforma de Destino | Windows |
Versão mínima do KMDF | 1.15 |
Cabeçalho | ursdevice.h (inclua Urscx.h) |
Biblioteca | Urscxstub.lib |
IRQL | PASSIVE_LEVEL |