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 的延遲時間稍長一點。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista 中支援 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisMSleep (NDIS 5.1) 。 支援 NDIS 5.1 驅動程式(請參閱 NdisMSleep (NDIS 5.1) 。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | < DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Miniport_Driver_Function(ndis) |