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 |