macro NDIS_WAIT_FOR_MUTEX (ndis.h)
La macro NDIS_WAIT_FOR_MUTEX inserisce il thread corrente nello stato di attesa fino a quando l'oggetto mutex specificato non viene impostato sullo stato segnalato.
Sintassi
void NDIS_WAIT_FOR_MUTEX(
_M_
);
Parametri
_M_
Puntatore a un oggetto mutex di tipo NDIS_MUTEX inizializzato. Il chiamante ha inizializzato l'oggetto mutex in una chiamata precedente alla macro NDIS_INIT_MUTEX. NDIS_MUTEX è un wrapper per il tipo KMUTEX.
Valore restituito
NDIS_WAIT_FOR_MUTEX restituisce STATUS_SUCCESS se l'operazione è stata completata correttamente. In caso contrario, restituisce un codice di errore NTSTATUS appropriato.
Osservazioni
I driver di rete NDIS devono usare la macro NDIS_WAIT_FOR_MUTEX per attendere che un mutex passi allo stato segnalato.
Un driver non può attendere un intervallo di tempo diverso da zero su un oggetto mutex in un IRQL generato o in un contesto di thread arbitrario (ovvero il contesto di qualsiasi thread sia corrente quando viene chiamata una funzione driver).
NDIS_WAIT_FOR_MUTEX esamina lo stato corrente dell'oggetto mutex per determinare se l'operazione di attesa può essere soddisfatta immediatamente. Se l'operazione può essere soddisfatta immediatamente, vengono eseguiti gli aggiornamenti necessari all'oggetto mutex. In caso contrario, il thread corrente è in uno stato di attesa e viene selezionato un nuovo thread per l'esecuzione nel processore corrente.
Questa macro è un wrapper NDIS per la routineKeWaitForSingleObject.
I chiamanti di NDIS_WAIT_FOR_MUTEX devono essere in esecuzione in IRQL == PASSIVE_LEVEL e in un contesto di thread non arbiverso.