Функция 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) |