Partager via


NdisMSleep, fonction (ndis.h)

La fonction NdisMSleep retarde l’exécution de l’appelant pendant un intervalle donné en microsecondes.

Syntaxe

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

Paramètres

[in] MicrosecondsToSleep

Nombre de microsecondes à retarder.

Valeur de retour

None

Remarques

Pour le temps donné dans le paramètre MicrosecondsToSleep , le thread d’exécution de l’appelant est placé dans un état d’attente, ce qui permet à d’autres threads d’effectuer le travail sur le processeur actuel. Lorsque l’intervalle donné expire, l’appelant de NdisMSleep reprend l’exécution.

Un pilote NDIS doit toujours appeler NdisMSleep de préférence pour la fonction NdisStallExecution , sauf si le pilote s’exécute sur IRQL >= DISPATCH_LEVEL. NdisMSleep peut accepter un intervalle de délai supérieur à NdisStallExecution, qui ne doit jamais être appelé avec un intervalle supérieur à 50 microsecondes. N’appelez pas NdisMSleep avec un délai d’expiration de plus de 30 000 000 microsecondes (soit 30 secondes ou une demi-minute).

Les pilotes Miniport peuvent appeler NdisMSleep à partir de leur MiniportInitializeEx et, éventuellement, les fonctions MiniportHaltEx lorsque l’une ou l’autre des fonctions doit attendre que des changements d’état se produisent dans la carte réseau avant que cette fonction continue ses opérations.

NdisMSleep et NdisStallExecution permettent à un pilote miniport de spécifier un délai de manière cohérente et indépendante de la vitesse d’horloge du processeur hôte. Aucune des fonctions n’implique un objet minuteur tel que ceux utilisés par la fonction NdisSetTimerObject . La résolution de l’horloge du système hôte varie, de sorte que les délais très courts peuvent prendre un peu plus de temps que le délai spécifié par l’appelant de NdisMSleep ou NdisStallExecution .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisMSleep (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisMSleep (NDIS 5.1)).
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL < DISPATCH_LEVEL
Règles de conformité DDI Irql_Miniport_Driver_Function(ndis)

Voir aussi

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback