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