Partilhar via


EVT_URS_SET_ROLE função de retorno de chamada (ursdevice.h)

A extensão da classe URS invoca esse retorno de chamada de evento quando exige que o driver cliente altere a função do controlador.

Sintaxe

EVT_URS_SET_ROLE EvtUrsSetRole;

NTSTATUS EvtUrsSetRole(
  [in] WDFDEVICE Device,
  [in] URS_ROLE Role
)
{...}

Parâmetros

[in] Device

Um identificador para o objeto de dispositivo da estrutura que o driver cliente recuperou na chamada anterior para WdfDeviceCreate.

[in] Role

Um valor de tipo URS_ROLE que indica a função a ser definida para o dispositivo controlador.

Valor de retorno

Se a operação for bem-sucedida, a função de retorno de chamada deverá retornar STATUS_SUCCESS ou outro valor de status para o qual NT_SUCCESS(status) é igual a TRUE. Caso contrário, ele deverá retornar um valor de status para o qual NT_SUCCESS(status) é igual a FALSE.

Observações

Para registrar a implementação do driver cliente do retorno de chamada de evento, o driver deve definir o EvtUrsSetRole membro do URS_CONFIG para um ponteiro de função do método de implementação e, em seguida, chamar o método UrsDeviceInitialize passando a estrutura preenchida. O driver deve chamar o método depois de criar o objeto de dispositivo da estrutura para o controlador.

Exemplos



NTSTATUS
EvtUrsSetRole (
    _In_ WDFDEVICE Device,
    _In_ URS_ROLE Role
    )
{
    NTSTATUS status;
    PFDO_CONTEXT fdoContext;

    TRACE_FUNC_ENTRY(TRACE_FLAG);
    TRY {


           // Change the current role of the controller to the specified role.
           // The driver might have stored the control registers in the device context. 
           // Read and write the register to get and set the current role. 

        }


        TRACE_INFO(TRACE_FLAG, "[Device: 0x%p] Successfully set role to %!URS_ROLE!", Device, Role);

        status = STATUS_SUCCESS;

    } FINALLY {

    }

    TRACE_FUNC_EXIT(TRACE_FLAG);

    return status;
}

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)
IRQL PASSIVE_LEVEL

Consulte também

UrsDeviceInitialize