Hmmm..i don't have a way to get a position from the layer below me because i am throwing the data over the network after processing it. I don't have any hardware for which my driver is working. Can you please let me know when your better version with sample granularity is ready? Thanks. On Sat, May 3, 2014 at 6:09 PM, Matthew van Eerde < Matthew.van.Eerde@xxxxxxxxxxxxx> wrote: > Do you have any way of getting a real position from the layer below you? > That would be much better than relying on KeQueryInterruptTime(). Or are > you throwing the data on the floor like MSVad does? > > > > Don’t use my code; it’s just a proof-of-concept to demonstrate that you > can get much better than 0.29 ms jitter using sample accuracy instead of > millisecond accuracy. > > In particular, I really don’t like this line: > > > > ULONG ulByteDisplacement = (ULONG)((m_ulDmaMovementRate * ullElapsed + > ullHnsInHalfASec) / ullHnsPerSec); > > > > This line introduces slop into the byte position which accumulates over > time. I think that’s why my skew actually regressed (but I’m not sure.) > > > > I’m working on a better version which attempts to maintain sample > granularity but eliminates the slop. > > > > >