макрос NDIS_WAIT_FOR_MUTEX (ndis.h)
Макрос NDIS_WAIT_FOR_MUTEX помещает текущий поток в состояние ожидания, пока указанный объект мьютекса не будет задан сигнальным состоянием.
Синтаксис
void NDIS_WAIT_FOR_MUTEX(
_M_
);
Параметры
_M_
Указатель на инициализированный объект мьютекса NDIS_MUTEX типа. Вызывающий объект инициализировал объект мьютекса перед вызовом макроса NDIS_INIT_MUTEX. NDIS_MUTEX — это оболочка для типа KMUTEX.
Возвращаемое значение
NDIS_WAIT_FOR_MUTEX возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае возвращается соответствующий код ошибки NTSTATUS.
Замечания
Сетевые драйверы NDIS должны использовать макрос NDIS_WAIT_FOR_MUTEX для ожидания перехода мьютекса в сигнальное состояние.
Драйвер не может ожидать ненулевого интервала времени в объекте мьютекса в вызываемом IRQL или в произвольном контексте потока (т. е. контекст любого потока, текущего при вызове функции драйвера).
NDIS_WAIT_FOR_MUTEX проверяет текущее состояние объекта мьютекса, чтобы определить, может ли операция ожидания быть выполнена немедленно. Если операция может быть выполнена немедленно, необходимые обновления вносятся в объект мьютекса. В противном случае текущий поток находится в состоянии ожидания, а новый поток выбирается для выполнения на текущем процессоре.
Этот макрос представляет собой оболочку NDIS для подпрограммы KeWaitForSingleObj ect.
Вызывающие NDIS_WAIT_FOR_MUTEX должны выполняться в IRQL == PASSIVE_LEVEL и в контексте непарбитрарного потока.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.0 и более поздних версиях. |
целевая платформа | Всеобщий |
заголовка | ndis.h |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
правил соответствия DDI | Irql_Synch_Function(ndis) |