Condividi tramite


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.

Commenti

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 in un oggetto mutex in un irQL generato o in un contesto di thread arbitrario , ovvero il contesto di qualsiasi thread è 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, gli aggiornamenti necessari vengono eseguiti nell'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 routine KeWaitForSingleObject .

I chiamanti di NDIS_WAIT_FOR_MUTEX devono essere in esecuzione in IRQL == PASSIVE_LEVEL e in un contesto di thread non arbiverso.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis.h
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)
Regole di conformità DDI Irql_Synch_Function(ndis)

Vedi anche

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX