DosTmrQueryTime

Provides a snapshot of the time from the IRQ0 high resolution timer (Intel 8254). Queries the performance timer for a time value.

Syntax
DosTmrQueryTime(pqwTmrTime);

Parameters
A snapshot of the time from the IRQ0 high resolution timer.
 * pqwTmrTime (PQWORD) - output : Time.

It is a pointer, supplied by the calling application, to the following structure: typedef struct _QWORD { ULONG ulLo, ULONG ulHi, } QWORD; typedef QWORD *PQWORD;

Return Code
rc (APIRET) - returns DosTmrQueryTime returns the following values:
 * 0 NO_ERROR
 * 87 ERROR_INVALID_PARAMETER
 * 53 ERROR_TMR_NO_DEVICE
 * 99 ERROR_DEVICE_IN_USE
 * 536 ERROR_TMR_INVALID_TIME

Example Source Code
Calling example: 
 * 1) define INCL_DOSPROFILE
 * 2) include 

PQWORD   pqwTmrTime;  /*  Time. */ APIRET   rc;          /*  Return Code. */

rc = DosTmrQueryTime(pqwTmrTime);  Use Example:  /* * Description: Display high resolution system time. */ VOID main { QWORD qwTime; ULONG rc;
 * 1) define INCL_DOS
 * 2) define INCL_DOSERRORS
 * 1) include 
 * 2) include 

if ((rc = DosTmrQueryTime(&qwTime)) != NO_ERROR) printf("\nERROR (DosTmrQueryTime): %d\n", rc); else printf("Time = 0x %08lx %08lx\n", qwTime.ulHi, qw); } 

Remarks
This API will fill the QWORD structure, supplied by the caller, with the 64-bit timer value such that : The performance timer is a free running counter; it is initialized to 0 at boot time and thereafter increments. When it reaches its maximum value of (2¬64 - 1), it rolls over to 0 and continues incrementing. A process can time an event by subtracting the value of the timer at the start of the event from the value of the timer at the end of the event. Currently, ulTimerFreq = 1.19318 Mhz, for a timer resolution of about .838 microseconds. (See also DosTmrQueryFreq.)
 * pqwTime->ulHi = The most significant 32-bits of the timer value.
 * pqwTime->ulLo = The least significant 32-bits of the timer value.

Related Functions

 * DosDevConfig
 * DosDevIOCtl
 * DosPhysicalDisk
 * DosTmrQueryFreq