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 函式才能繼續其作業。
NdisMSleep和 NdisStallExecution 都允許迷你埠驅動程式指定一致且獨立於主機 CPU 時鐘速度的延遲。 這兩個函式都未涉及定時器物件,例如 NdisSetTimerObject 函式所使用的定時器物件。 主機系統時鐘的解析度會有所不同,因此非常短的延遲時間可能會比 NdisMSleep 或 NdisStallExecution 的呼叫端所指定的延遲時間稍長。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 支援 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) |