Partager via


EVT_URS_SET_ROLE fonction de rappel (ursdevice.h)

L’extension de classe URS appelle ce rappel d’événement lorsqu’il exige que le pilote client modifie le rôle du contrôleur.

Syntaxe

EVT_URS_SET_ROLE EvtUrsSetRole;

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

Paramètres

[in] Device

Handle de l’objet d’appareil framework que le pilote client a récupéré lors de l’appel précédent à WdfDeviceCreate.

[in] Role

Valeur de type URS_ROLE qui indique le rôle à définir pour l’appareil du contrôleur.

Valeur de retour

Si l’opération réussit, la fonction de rappel doit retourner STATUS_SUCCESS, ou une autre valeur d’état pour laquelle NT_SUCCESS(status) a la valeur TRUE. Sinon, il doit retourner une valeur d’état pour laquelle NT_SUCCESS(status) a la valeur FALSE.

Remarques

Pour inscrire l’implémentation du pilote client du rappel d’événement, le pilote doit définir le membre EvtUrsSetRole de URS_CONFIG à un pointeur de fonction de la méthode d’implémentation, puis appeler la méthode UrsDeviceInitialize en passant la structure remplie. Le pilote doit appeler la méthode après avoir créé l’objet d’appareil framework pour le contrôleur.

Exemples



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

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Windows Server 2016
plateforme cible Windows
version minimale de KMDF 1.15
d’en-tête ursdevice.h (include Urscx.h)
IRQL PASSIVE_LEVEL

Voir aussi

UrsDeviceInitialize