mov eax, Timeout ; milliseconds to wait
mov edx, RefData ; reference data
mov esi, Callback ; address of callback procedure
VxDCall IOS_Set_Async_Time_Out
mov [Result], esi ; 0 if not scheduled, otherwise handle
Same as the VMM service Set_Async_Timeout.
The callback procedure is called with ecx equal to the number of milliseconds that have elapsed since the actual time-out occurred. Time-outs are often delayed by 10 milliseconds or more since the normal system timer runs at 20 milliseconds or slower. If you need more accurate time-outs, then you must increase the timer interrupt frequency. See the VTD documentation in "Kernel Services" for more details on setting the timer interrupt rate.