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