The documentation for GetSystemTimeAsFileTime() states that it is equivalent to consecutive calls to GetSystemTime() and SystemTimeToFileTime(), as in:
void GetSystemTimeAsFileTime(LPFILETIME lpft)
{
SYSTEMTIME st;
GetSystemTime(&st);
SystemTimeToFileTime(&st, lpft);
}
While this is true from a functional perspective, it is certainly not the case that it is actually implemented in this way on all operating systems, as can be seen in Table 6.
On Windows 98, the call costs are roughly equivalent. However, on all the NT-family operating systems, the cost of gleaning time in the form of an intermediate SYSTEMTIME is around 400 times that of GetSystemTimeAsFileTime().
M.W.