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 |