Поделиться через


макрос 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)

См. также

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX