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