Compartilhar via


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

A extensão de classe URS invoca esse retorno de chamada de evento quando exige que o driver do 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 de estrutura que o driver cliente recuperou na chamada anterior para WdfDeviceCreate.

[in] Role

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

Retornar valor

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

Comentários

Para registrar a implementação do driver cliente do retorno de chamada de evento, o driver deve definir o membro EvtUrsSetRole do URS_CONFIG como 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 de 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
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)
IRQL PASSIVE_LEVEL

Confira também

UrsDeviceInitialize