[ntp:questions] help with setting up NTP on windows with a USB GPS

Dave Hart davehart at gmail.com
Tue Dec 1 09:47:43 UTC 2009

On Nov 30 22:06 UTC, Dave Baxter wrote:
> I had (killed it now) a version of the patched serial.sys for PPS
> support, but it BSOD'd the machine at boot time (black screen) needing a
> physical removal of the hard drive, and temporary fitment into another
> PC to put the original file back.

I'm sorry to hear that.  I note that to me, BSOD/bluescreen means
something distinct from hanging with a black/blank screen.  The former
implies a "bugcheck", akin to a kernel panic.

I managed to develop the two revisions of serialpps.sys without
experiencing any bluescreens.  In fact, it was about as painless as I
could have hoped for, but then I haven't actually tried any of the 64-
bit builds.  Given the tiny changes between serial.sys and
serialpps.sys, and the fact that the code to implement the new "ioctl"
interface is cloned from several other examples in serial.sys,
combined with experience from a number of other users, I will be
surprised if there turns out to be a bug unique to serialpps.sys
involved here.

> At present, I can't find a ready-to-use binary of that file.  Dave
> Hart's site befuddles me, all I can see there is a *Huge* collection of
> files, what file do I need and where from, exactly please.?

To have full PPSAPI capability with ntpd on Windows you need
serialpps.sys, serialpps-ppsapi-provider.dll, and a recent-enough
ntpd.exe.  You need a serial port which can be driven by the stock
serial.sys (which includes a huge variety including some simple
multiport designs).  serialpps.sys must be "installed" (if you can
call it that, the file must be in place and pointed to by the
serial.sys image path registry entry).  serialpps-ppsapi-provider.dll
must be accessible and pointed to by environment variable PPSAPI_DLLS
visible to ntpd.exe (typically set systemwide), such as


You can find both serialpps.sys and serialpps-ppsapi-provider.dll in:


There are more releases of serialpps .zip files in that directory than
there are different versions of serialpps.sys within.  The most recent
changes, adding serialpps-ppsapi-provider.dll, simply shuffled code
previously hard-wired into ntpd.exe off into a per-provider DLL, but
did not change the ioctl interface or serialpps.sys.

If you are able to bluescreen a system due to serialpps.sys and
believe it wouldn't have occurred with serial.sys, I am interested in
getting access to the associated memory dump to extract more details
about the failure using kanalyze, or in the output of same.

Dave Hart

More information about the questions mailing list