Compartir a través de


Función NdisMSleep (ndis.h)

La función NdisMSleep retrasa la ejecución del llamador durante un intervalo determinado en microsegundos.

Sintaxis

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

Parámetros

[in] MicrosecondsToSleep

Número de microsegundos que se van a retrasar.

Valor devuelto

None

Observaciones

Para el tiempo dado en el parámetro MicrosecondsToSleep , el subproceso de ejecución del autor de la llamada se coloca en un estado de espera, lo que permite que otros subprocesos realicen el trabajo en el procesador actual. Cuando expira el intervalo especificado, el autor de la llamada de NdisMSleep reanuda la ejecución.

Un controlador NDIS siempre debe llamar a NdisMSleep en preferencia a la función NdisStallExecution a menos que el controlador se ejecute en IRQL >= DISPATCH_LEVEL. NdisMSleep puede aceptar un intervalo de retraso mayor que NdisStallExecution, que nunca se debe llamar con un intervalo superior a 50 microsegundos. No llame a NdisMSleep con un tiempo de espera de más de 30 000 000 microsegundos (es decir, 30 segundos o medio minuto).

Los controladores de miniport pueden llamar a NdisMSleep desde su MiniportInitializeEx y, posiblemente, las funciones MiniportHaltEx cuando cualquiera de las funciones debe esperar a que se produzcan cambios de estado en la NIC antes de que esa función continúe con sus operaciones.

Tanto NdisMSleep como NdisStallExecution permiten que un controlador de miniporte especifique un retraso de forma coherente e independiente de la velocidad del reloj de la CPU del host. Ninguna de las funciones implica un objeto de temporizador como los usados por la función NdisSetTimerObject . La resolución del reloj del sistema host varía, por lo que los retrasos muy cortos pueden tardar ligeramente más tiempo que el autor de la llamada de NdisMSleep o NdisStallExecution especificado.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte NdisMSleep (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte NdisMSleep (NDIS 5.1)).
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL < DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_Miniport_Driver_Function(ndis)

Consulte también

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback