This function stalls the caller on the current processor for a given interval.
Header file: | Ndis.h |
Windows CE versions: | 2.0 and later |
VOID NdisStallExecution( IN UINT MicrosecondsToStall );
For the specified MicrosecondsToStall, the caller’s thread of execution stalls on the current processor, consuming CPU cycles. When the specified interval expires, the caller resumes execution.
Unless a driver is running at IRQL >= DISPATCH_LEVEL, it should call the NdisMSleep function, which accepts larger delay intervals without monopolizing a processor for its callers, instead of this function. For example, an NIC driver’s MiniportInitialize function should wait for state changes in the NIC with NdisMSleep.
Both NdisMSleep and this function allow an NIC driver to specify a delay consistently and independently of the clock speed of the host CPU. Neither function involves a timer object used by the NdisSetTimer or the NdisSetPeriodicTimer function. The resolution of the host system clock varies, so very short delays can take slightly longer than the caller of NdisMSleep or this function specified.
A call to this function prevents any other operating system activity on the current processor and prevents system interrupts from occurring during the stall. Therefore, callers should always specify a stall interval of no longer than 50 microseconds.
A driver that calls this function can run at any IRQL.