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) |