Drivers that need to be called periodically to determine if a device operation has timed out, to update some driver-defined variable (such as a counter), or to time any operation for which small time intervals are not required, can use an IoTimer routine. An IoTimer routine is actually a DPC routine, associated with a device object, that the I/O manager calls once per second. A driver can have an IoTimer routine for each device object that it creates.
In general, a driver should use an IoTimer routine to time operations that require regular one-second intervals. To time operations that require variable intervals or intervals shorter than once per second, a driver should allocate a timer object. For more information, see Timer Objects and DPCs.
This section contains the following topics: