EVT_URS_SET_ROLE funzione di callback (ursdevice.h)

L'estensione della classe URS richiama questo callback di evento quando richiede al driver client di modificare il ruolo del controller.

Sintassi

EVT_URS_SET_ROLE EvtUrsSetRole;

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

Parametri

[in] Device

Handle per l'oggetto dispositivo framework recuperato dal driver client nella chiamata precedente a WdfDeviceCreate.

[in] Role

Valore di tipo URS_ROLE che indica il ruolo da impostare per il dispositivo controller.

Valore restituito

Se l'operazione ha esito positivo, la funzione di callback deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(status) è TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(status) è uguale a FALSE.

Commenti

Per registrare l'implementazione del driver client del callback dell'evento, il driver deve impostare il membro EvtUrsSetRole di URS_CONFIG su un puntatore a funzione del metodo di implementazione e quindi chiamare il metodo UrsDeviceInitialize passando la struttura popolata. Il driver deve chiamare il metodo dopo aver creato l'oggetto dispositivo framework per il controller.

Esempio



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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Windows Server 2016
Piattaforma di destinazione Windows
Versione KMDF minima 1.15
Intestazione ursdevice.h (include Urscx.h)
IRQL PASSIVE_LEVEL

Vedi anche

UrsDeviceInitialize