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 |