Compartilhar via


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

Consulte também

ursReportHardwareEvent