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 signalisierten Zustand festgelegt ist.

Syntax

void NDIS_WAIT_FOR_MUTEX(
   _M_
);

Parameter

_M_

Ein Zeiger auf ein initialisiertes NDIS_MUTEX-Typ-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.

Bemerkungen

NDIS-Netzwerktreiber sollten das NDIS_WAIT_FOR_MUTEX Makro verwenden, um auf einen Mutex zu warten, um zum signalierten Zustand zu wechseln.

Ein Treiber kann nicht auf ein Nichtzero-Zeitintervall für ein Mutex-Objekt bei einem ausgelösten IRQL oder in einem beliebigen Threadkontext warten (d. a. der Kontext des aktuellen Threads, wenn eine Treiberfunktion aufgerufen wird).

NDIS_WAIT_FOR_MUTEX überprüft 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 Aktualisierungen an 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 bei IRQL ausgeführt werden == PASSIVE_LEVEL und in einem nichtarbiträren Threadkontext.

Anforderungen

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

Siehe auch

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX