NdisMSleep-Funktion (ndis.h)

Die NdisMSleep-Funktion verzögert die Ausführung des Aufrufers um ein bestimmtes Intervall in Mikrosekunden.

Syntax

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

Parameter

[in] MicrosecondsToSleep

Die Anzahl der zu verzögernden Mikrosekunden.

Rückgabewert

Keine

Bemerkungen

Für die angegebene Zeit im Parameter MicrosecondsToSleep wird der Ausführungsthread des Aufrufers in einen Wartezustand versetzt, sodass andere Threads die Arbeit mit dem aktuellen Prozessor erledigen können. Wenn das angegebene Intervall abläuft, setzt der Aufrufer von NdisMSleep die Ausführung fort.

Ein NDIS-Treiber sollte NdisMSleep immer vor der NdisStallExecution-Funktion aufrufen, es sei denn, der Treiber wird unter IRQL >= DISPATCH_LEVEL ausgeführt. NdisMSleep kann ein größeres Verzögerungsintervall als NdisStallExecution akzeptieren, das niemals mit einem Intervall von mehr als 50 Mikrosekunden aufgerufen werden sollte. Rufen Sie NdisMSleep nicht mit einem Timeout von mehr als 30.000.000 Mikrosekunden (d. a. 30 Sekunden oder einer halben Minute) auf.

Miniport-Treiber können NdisMSleep von ihren MiniportInitializeEx - und möglicherweise MiniportHaltEx-Funktionen aufrufen, wenn beide Funktionen auf Zustandsänderungen in der NIC warten müssen, bevor diese Funktion ihre Vorgänge fortsetzt.

Sowohl NdisMSleep als auch NdisStallExecution ermöglichen es einem Miniporttreiber, eine Verzögerung konsistent und unabhängig von der Taktgeschwindigkeit der Host-CPU anzugeben. Keine der Funktionen umfasst ein Timerobjekt, z. B. jene, die von der NdisSetTimerObject-Funktion verwendet werden. Die Auflösung der Hostsystemuhr variiert, sodass sehr kurze Verzögerungen etwas länger dauern können als die Verzögerungszeit, die der Aufrufer von NdisMSleep oder NdisStallExecution angegeben hat.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisMSleep (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisMSleep (NDIS 5.1)).
Zielplattform Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL < DISPATCH_LEVEL
DDI-Complianceregeln Irql_Miniport_Driver_Function(ndis)

Weitere Informationen

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback