|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 27, 2003 07:57:53 В книге Нэббета сказано что эта функция возвращает текущее время в стандартном формате Что это за формат? С функцией GetSystemTime все просто и понятно А тут я не понимаю что с этими интервалами по 100 нс делать? ZwQuerySystemTime(OUT PLARGE_INTEGER CurrentTime); CurrentTime Points to a variable that receives the current time of day in the standard time format (that is, the number of 100-nanosecond intervals since January 1, 1601) |
|
|
Дата: Май 27, 2003 09:24:43 Afaik в Win API результат работы ZwQuerySystemTime называется FILETIME. Тогда для получения SYSTEMTIME можно использовать FileTimeToSystemTime. А затем, если необходимо, SystemTimeToTzSpecificLocalTime |
|
|
Дата: Май 27, 2003 13:30:49 NT::LARGE_INTEGER t; FILETIME ftUTC, ftLocal; SYSTEMTIME st; TCHAR szBuf[256]; NT::ZwQuerySystemTime(&t); // Put the time in a FILETIME structure. ftUTC.dwLowDateTime = t.LowPart; ftUTC.dwHighDateTime = t.HighPart; // Convert the UTC time to the user's local time. FileTimeToLocalFileTime(&ftUTC, &ftLocal); // Convert the FILETIME to the SYSTEMTIME structure // required by GetDateFormat and GetTimeFormat. FileTimeToSystemTime(&ftLocal, &st); // Construct a string with the date/time that the timer went off. GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL, szBuf, sizeof(szBuf) / sizeof(TCHAR)); wcscat(szBuf, L" "); GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, NULL, wcschr(szBuf, 0), sizeof(szBuf) / sizeof(TCHAR) - wcslen(szBuf)); // Show the time to the user. MessageBox(NULL, szBuf, L"Current Time", MB_OK); |
|
|
Дата: Май 27, 2003 15:55:29 Спасибо за ответы Я уже нашел как это сделать при помощи функций KeQuerySystemTime(&SysTime); //запросили системное время в интервалах по 100 нс RtlTimeToTimeFields(&SysTime,&MyTime); //преобразовали в нормальный вид Именно так пришлось делать,потому что надо было в драйвере определить время |
|
|
Дата: Май 27, 2003 15:55:50 Спасибо за ответы Я уже нашел как это сделать при помощи функций KeQuerySystemTime(&SysTime); //запросили системное время в интервалах по 100 нс RtlTimeToTimeFields(&SysTime,&MyTime); //преобразовали в нормальный вид Именно так пришлось делать,потому что надо было в драйвере определить время |
|
|
Дата: Июн 3, 2003 01:57:57 To Four-F: Спасибо за статьи о написании дров для 2000! Вопрос: Как проще всего сделать задержку в драйвере? |
|
|
Дата: Июн 3, 2003 13:00:36 · Поправил: Four-F KeDelayExecutionThread |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072 |