Compartir a través de


EVT_URS_SET_ROLE función de devolución de llamada (ursdevice.h)

La extensión de clase URS invoca esta devolución de llamada de eventos cuando requiere que el controlador de cliente cambie el rol del controlador.

Sintaxis

EVT_URS_SET_ROLE EvtUrsSetRole;

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

Parámetros

[in] Device

Identificador del objeto de dispositivo de marco que el controlador cliente recuperó en la llamada anterior a WdfDeviceCreate.

[in] Role

Valor de tipo URS_ROLE que indica el rol que se va a establecer para el dispositivo controlador.

Valor devuelto

Si la operación se realiza correctamente, la función de devolución de llamada debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) es igual a TRUE. De lo contrario, debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.

Comentarios

Para registrar la implementación del controlador cliente de la devolución de llamada del evento, el controlador debe establecer el miembro EvtUrsSetRole de URS_CONFIG en un puntero de función del método de implementación y, a continuación, llamar al método UrsDeviceInitialize pasando la estructura rellenada. El controlador debe llamar al método después de crear el objeto de dispositivo de marco para el controlador.

Ejemplos



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 Value
Cliente mínimo compatible Windows 10
Servidor mínimo compatible Windows Server 2016
Plataforma de destino Windows
Versión mínima de KMDF 1.15
Encabezado ursdevice.h (incluya Urscx.h)
IRQL PASSIVE_LEVEL

Consulte también

UrsDeviceInitialize