Freigeben über


NDIS_WAIT_FOR_MUTEX Makro (ndis.h)

Das NDIS_WAIT_FOR_MUTEX Makro versetzt den aktuellen Thread in den Wartezustand, bis das angegebene Mutex-Objekt auf den signalierten Zustand festgelegt ist.

Syntax

void NDIS_WAIT_FOR_MUTEX(
   _M_
);

Parameter

_M_

Ein Zeiger auf ein initialisiertes NDIS_MUTEX Mutex-Objekt. Der Aufrufer initialisierte das Mutex-Objekt in einem vorherigen Aufruf des NDIS_INIT_MUTEX-Makros . NDIS_MUTEX ist ein Wrapper für den KMUTEX-Typ.

Rückgabewert

NDIS_WAIT_FOR_MUTEX gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich abgeschlossen wurde. Andernfalls wird ein entsprechender NTSTATUS-Fehlercode zurückgegeben.

Hinweise

NDIS-Netzwerktreiber sollten das makro NDIS_WAIT_FOR_MUTEX verwenden, um zu warten, bis ein Mutex in den signalierten Zustand wechselt.

Ein Treiber kann nicht auf ein nichtzero-Zeitintervall für ein Mutex-Objekt bei einem ausgelösten IRQL oder in einem beliebigen Threadkontext warten (das heißt, der Kontext des Threads, der aktuell ist, wenn eine Treiberfunktion aufgerufen wird).

NDIS_WAIT_FOR_MUTEX untersucht den aktuellen Zustand des Mutex-Objekts, um festzustellen, ob der Wartevorgang sofort erfüllt werden kann. Wenn der Vorgang sofort erfüllt werden kann, werden die erforderlichen Updates für das Mutex-Objekt vorgenommen. Andernfalls befindet sich der aktuelle Thread in einem Wartezustand, und ein neuer Thread wird für die Ausführung auf dem aktuellen Prozessor ausgewählt.

Dieses Makro ist ein NDIS-Wrapper für die KeWaitForSingleObject-Routine .

Aufrufer von NDIS_WAIT_FOR_MUTEX müssen am IRQL == PASSIVE_LEVEL und in einem nichtarbiträren Threadkontext ausgeführt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h
IRQL PASSIVE_LEVEL (siehe Abschnitt Hinweise)
DDI-Complianceregeln Irql_Synch_Function(ndis)

Weitere Informationen

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX