Partager via


macro NDIS_WAIT_FOR_MUTEX (ndis.h)

La macro NDIS_WAIT_FOR_MUTEX place le thread actuel dans l’état d’attente jusqu’à ce que l’objet mutex spécifié soit défini sur l’état signalé.

Syntaxe

void NDIS_WAIT_FOR_MUTEX(
   _M_
);

Paramètres

_M_

Pointeur vers un objet mutex de type NDIS_MUTEX initialisé. L’appelant a initialisé l’objet mutex dans un appel antérieur à la macro NDIS_INIT_MUTEX . NDIS_MUTEX est un wrapper pour le type KMUTEX.

Valeur retournée

NDIS_WAIT_FOR_MUTEX retourne STATUS_SUCCESS si l’opération s’est terminée avec succès. Sinon, il retourne un code d’erreur NTSTATUS approprié.

Remarques

Les pilotes réseau NDIS doivent utiliser la macro NDIS_WAIT_FOR_MUTEX pour attendre qu’un mutex passe à l’état signalé.

Un pilote ne peut pas attendre un intervalle de temps différent de zéro sur un objet mutex à un IRQL élevé ou dans un contexte de thread arbitraire (c’est-à-dire le contexte de n’importe quel thread actuel lorsqu’une fonction de pilote est appelée).

NDIS_WAIT_FOR_MUTEX examine l’état actuel de l’objet mutex pour déterminer si l’opération d’attente peut être satisfaite immédiatement. Si l’opération peut être satisfaite immédiatement, les mises à jour nécessaires sont effectuées sur l’objet mutex. Sinon, le thread actuel est en attente et un nouveau thread est sélectionné pour l’exécution sur le processeur actuel.

Cette macro est un wrapper NDIS pour la routine KeWaitForSingleObject .

Les appelants de NDIS_WAIT_FOR_MUTEX doivent s’exécuter à IRQL == PASSIVE_LEVEL et dans un contexte de thread nonarbitrary.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h
IRQL PASSIVE_LEVEL (voir la section Remarques)
Règles de conformité DDI Irql_Synch_Function(ndis)

Voir aussi

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX