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