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 de retour
NDIS_WAIT_FOR_MUTEX retourne STATUS_SUCCESS si l’opération s’est terminée correctement. Sinon, elle 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 déclenché ou dans un contexte de thread arbitraire (autrement dit, le contexte de tout 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 apportées à l’objet mutex. Sinon, le thread actuel est dans un état d’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 nonarbitraire.