EVT_URS_SET_ROLE fonction de rappel (ursdevice.h)

L’extension de classe URS appelle ce rappel d’événement lorsqu’elle nécessite 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 de périphérique d’infrastructure 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 de contrôleur.

Valeur retournée

Si l’opération réussit, la fonction de rappel doit retourner STATUS_SUCCESS, ou une autre valeur status pour laquelle NT_SUCCESS(status) est égal à TRUE. Sinon, elle doit retourner une valeur de status pour laquelle NT_SUCCESS(status) est 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 sur un pointeur de fonction de la méthode d’implémentation, puis appeler la méthode UrsDeviceInitialize en passant la structure renseignée. Le pilote doit appeler la méthode après avoir créé l’objet de périphérique d’infrastructure 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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
Plateforme cible Windows
Version KMDF minimale 1.15
En-tête ursdevice.h (include Urscx.h)
IRQL PASSIVE_LEVEL

Voir aussi

UrsDeviceInitialize