IWDFInterrupt ::TryToAcquireInterruptLock, méthode (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La méthode TryToAcquireInterruptLock acquiert le verrou d’interruption si aucun autre thread ne l’a déjà acquis.

Syntaxe

BOOLEAN TryToAcquireInterruptLock();

Valeur de retour

La méthode retourne TRUE si le verrou d’interruption a été correctement acquis. Sinon, la méthode retourne FALSE.

Remarques

Contrairement à IWDFInterrupt ::AcquireInterruptLock, IWDFInterrupt ::TryToAcquireInterruptLock n’attend pas que le verrou d’interruption soit disponible si un autre thread le tient.

Lors de l’exécution dans un thread arbitraire, tel qu’une méthode de rappel de file d’attente d’E/S, les pilotes doivent appeler IWDFInterrupt ::TryToAcquireInterruptLock au lieu de IWDFInterrupt ::AcquireInterruptLock. Par exemple, le pilote appelle IWDFInterrupt ::TryToAcquireInterruptLock à partir de IQueueCallbackRead ::OnRead. Cela permet d’éviter le risque d’interblocage, comme décrit dans la section Remarques de IWDFInterrupt ::AcquireInterruptLock.

Le pilote ne doit pas tenter d’acquérir le verrou de manière récursive. S’il est connecté au débogueur, le framework introduit un point d’arrêt dans ce scénario.

Pour plus d’informations sur le verrouillage manuel des interruptions, consultez Synchronisation du code d’interruption.

Pour plus d’informations sur la gestion des interruptions dans les pilotes UMDF, consultez Accès au matériel et Gestion des interruptions.

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1.11
En-tête wudfddi.h
DLL WUDFx.dll

Voir aussi

IWDFInterrupt

IWDFInterrupt ::AcquireInterruptLock

WdfInterruptTryToAcquireLock