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

Confira também

UrsReportHardwareEvent