NdisMSleep 函式 (ndis.h)

NdisMSleep 函式會延遲以毫秒為單位的指定間隔執行呼叫端。

語法

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

參數

[in] MicrosecondsToSleep

要延遲的微秒數。

傳回值

備註

對於 MicrosecondsToSleep 參數中的指定時間,呼叫端的執行線程會進入等候狀態,進而讓其他線程在目前的處理器上完成工作。 當指定的間隔到期時, NdisMSleep 的呼叫端會繼續執行。

除非驅動程式是在 IRQL >= DISPATCH_LEVEL 執行,否則 NDIS 驅動程式應該一律呼叫 NdisMSleep,以喜好設定為 NdisStallExecution 函式。 NdisMSleep 可以接受比 NdisStallExecution 更大的延遲間隔,這 絕對不應該 以大於 50 毫秒的間隔呼叫。 請勿呼叫 NdisMSleep ,逾時超過 30,000,000 毫秒, (也就是 30 秒或半分鐘) 。

Miniport 驅動程式可以從其 MiniportInitializeEx 呼叫 NdisMSleep,而且當其中一個函式必須等候 NIC 中發生狀態變更後,MiniportHaltEx 函式才能繼續其作業。

NdisMSleepNdisStallExecution 都允許迷你埠驅動程式指定一致且獨立於主機 CPU 時鐘速度的延遲。 這兩個函式都未涉及定時器物件,例如 NdisSetTimerObject 函式所使用的定時器物件。 主機系統時鐘的解析度會有所不同,因此非常短的延遲時間可能會比 NdisMSleepNdisStallExecution 的呼叫端所指定的延遲時間稍長。

規格需求

需求
最低支援的用戶端 支援 NDIS 6.0 和 NDIS 5.1 驅動程式, (請參閱 Windows Vista 中的 NdisMSleep (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 NdisMSleep (NDIS 5.1) ) 。
目標平台 Universal
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL < DISPATCH_LEVEL
DDI 合規性規則 Irql_Miniport_Driver_Function (ndis)

另請參閱

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback