Well, it turns out I had two problems. One, I wasn't selecting the JOB_NOTIFY_FIELD_TIME in my FindFirstPrinterChangeNotification and FindNextPrinterChangeNotification calls, and two, y'all were right, that field doesn't get modified until the printer started actually printing. I was able to use the JOB_NOTIFY_FIELD_TOTAL_BYTES field to get the event when the other application was writing to the spool file (it's a long story). Thanks to you all who responded!