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