Поделиться через


Функция NdisMSleep (ndis.h)

Функция NdisMSleep задерживает выполнение вызывающего объекта в течение заданного интервала в микросекундах.

Синтаксис

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

Параметры

[in] MicrosecondsToSleep

Число микросекунд для задержки.

Возвращаемое значение

None

Remarks

В течение заданного времени в параметре MicrosecondsToSleep поток выполнения вызывающего объекта переводится в состояние ожидания, что позволяет другим потокам выполнять работу на текущем процессоре. По истечении заданного интервала вызывающий объект NdisMSleep возобновляет выполнение.

Драйвер NDIS всегда должен вызывать NdisMSleep в выборе функции NdisStallExecution , если только драйвер не работает в IRQL >= DISPATCH_LEVEL. NdisMSleep может принимать больший интервал задержки, чем NdisStallExecution, который никогда не следует вызывать с интервалом больше 50 микросекунд. Не вызывайте NdisMSleep с временем ожидания более 30 000 000 микросекунд (то есть 30 секунд или полминуты).

Драйверы miniport могут вызывать NdisMSleep из своих функций MiniportInitializeEx и, возможно, MiniportHaltEx , если любая из функций должна ждать изменения состояния в сетевом адаптере, прежде чем эта функция продолжит свою работу.

NdisMSleep и NdisStallExecution позволяют драйверу мини-порта задавать задержку согласованно и независимо от тактовой скорости ЦП узла. Ни функция не включает в себя объект таймера, например объект, используемый функцией NdisSetTimerObject . Разрешение часов системы узла меняется, поэтому очень короткие задержки могут занять немного больше времени, чем время задержки, указанное вызывающим объектом NdisMSleep или NdisStallExecution .

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisMSleep (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisMSleep (NDIS 5.1)).
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL < DISPATCH_LEVEL
Правила соответствия DDI Irql_Miniport_Driver_Function(ndis)

См. также раздел

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback