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 da 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 cliente.
Valor de retorno
Nenhum
Observações
Antes que o driver cliente possa relatar eventos de hardware, o driver cliente do controlador de função dupla deve indicar à 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 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 do Verificador de Driver estiver habilitado.
Para determinados controladores, o driver 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 à extensão de classe que o driver 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 |
---|---|
de cliente com suporte mínimo | Windows 10 |
servidor com suporte mínimo | Windows Server 2016 |
da 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 |