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