IWDFInterrupt ::TryToAcquireInterruptLock, méthode (wudfddi.h)
[Avertissement : UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Bien démarrer 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é acquis. Sinon, la méthode retourne FALSE.
Remarques
Contrairement à IWDFInterrupt ::AcquireInterruptLock, IWDFInterrupt ::TryToAcquireInterruptLock n’attend pas que le verrou d’interruption devienne 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 évite la possibilité 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. Si elle est connectée au débogueur, l’infrastructure 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 aux interruptions matérielles et de gestion des interruptions.
Exigences
Exigence | Valeur |
---|---|
fin du support | Indisponible dans UMDF 2.0 et versions ultérieures. |
plateforme cible | Bureau |
version minimale de UMDF | 1.11 |
d’en-tête | wudfddi.h |
DLL | WUDFx.dll |