Compartilhar via


NDIS_WAIT_FOR_MUTEX macro (ndis.h)

A macro NDIS_WAIT_FOR_MUTEX coloca o thread atual no estado de espera até que o objeto mutex especificado seja definido como o estado sinalizado.

Sintaxe

void NDIS_WAIT_FOR_MUTEX(
   _M_
);

Parâmetros

_M_

Um ponteiro para um objeto mutex do tipo NDIS_MUTEX inicializado. O chamador inicializou o objeto mutex em uma chamada anterior à macro NDIS_INIT_MUTEX . NDIS_MUTEX é um wrapper para o tipo KMUTEX.

Retornar valor

NDIS_WAIT_FOR_MUTEX retornará STATUS_SUCCESS se a operação for concluída com êxito. Caso contrário, ele retornará um código de erro NTSTATUS apropriado.

Comentários

Os drivers de rede do NDIS devem usar a macro NDIS_WAIT_FOR_MUTEX para aguardar a transição de um mutex para o estado sinalizado.

Um driver não pode esperar por um intervalo de tempo diferente de zero em um objeto mutex em um IRQL gerado ou em um contexto de thread arbitrário (ou seja, o contexto de qualquer thread atual quando uma função de driver é chamada).

NDIS_WAIT_FOR_MUTEX examina o estado atual do objeto mutex para determinar se a operação de espera pode ser atendida imediatamente. Se a operação puder ser atendida imediatamente, as atualizações necessárias serão feitas no objeto mutex. Caso contrário, o thread atual está em um estado de espera e um novo thread é selecionado para execução no processador atual.

Essa macro é um wrapper NDIS para a rotina KeWaitForSingleObject .

Os chamadores de NDIS_WAIT_FOR_MUTEX devem estar em execução em IRQL == PASSIVE_LEVEL e em um contexto de thread nonarbitrary.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h
IRQL PASSIVE_LEVEL (consulte a seção Comentários)
Regras de conformidade de DDI Irql_Synch_Function(ndis)

Confira também

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX