Compartir a través de


NDIS_WAIT_FOR_MUTEX macro (ndis.h)

La macro NDIS_WAIT_FOR_MUTEX coloca el subproceso actual en el estado de espera hasta que el objeto de exclusión mutua especificado se establece en el estado señalado.

Sintaxis

void NDIS_WAIT_FOR_MUTEX(
   _M_
);

Parámetros

_M_

Puntero a un objeto de exclusión mutua de tipo NDIS_MUTEX inicializado. El autor de la llamada inicializó el objeto de exclusión mutua en una llamada anterior a la macro NDIS_INIT_MUTEX . NDIS_MUTEX es un contenedor para el tipo KMUTEX.

Valor devuelto

NDIS_WAIT_FOR_MUTEX devuelve STATUS_SUCCESS si la operación se completó correctamente. De lo contrario, devuelve un código de error NTSTATUS adecuado.

Comentarios

Los controladores de red NDIS deben usar la macro NDIS_WAIT_FOR_MUTEX para esperar a que una exclusión mutua pase al estado señalado.

Un controlador no puede esperar un intervalo de tiempo distinto de cero en un objeto de exclusión mutua en un IRQL elevado o en un contexto de subproceso arbitrario (es decir, el contexto de cualquier subproceso actual cuando se llama a una función de controlador).

NDIS_WAIT_FOR_MUTEX examina el estado actual del objeto de exclusión mutua para determinar si la operación de espera se puede satisfacer inmediatamente. Si la operación se puede satisfacer inmediatamente, se realizan las actualizaciones necesarias para el objeto de exclusión mutua. De lo contrario, el subproceso actual está en estado de espera y se selecciona un nuevo subproceso para su ejecución en el procesador actual.

Esta macro es un contenedor NDIS para la rutina KeWaitForSingleObject .

Los autores de llamadas de NDIS_WAIT_FOR_MUTEX deben ejecutarse en IRQL == PASSIVE_LEVEL y en un contexto de subproceso nobitrario.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h
IRQL PASSIVE_LEVEL (consulte la sección Comentarios)
Reglas de cumplimiento de DDI Irql_Synch_Function(ndis)

Consulte también

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX