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