ReactOS 0.4.17-dev-116-ga4b6fe9
time.c File Reference
#include <k32.h>
#include <debug.h>
Include dependency graph for time.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

BOOL WINAPI IsTimeZoneRedirectionEnabled (VOID)
 
BOOL WINAPI FileTimeToDosDateTime (IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime)
 
BOOL WINAPI DosDateTimeToFileTime (IN WORD wFatDate, IN WORD wFatTime, OUT LPFILETIME lpFileTime)
 
LONG WINAPI CompareFileTime (IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
 
VOID WINAPI GetSystemTimeAsFileTime (OUT PFILETIME lpFileTime)
 
VOID WINAPI GetSystemTimePreciseAsFileTime (OUT PFILETIME lpFileTime)
 
BOOL WINAPI SystemTimeToFileTime (IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
 
BOOL WINAPI FileTimeToSystemTime (IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
 
BOOL WINAPI FileTimeToLocalFileTime (IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
 
BOOL WINAPI LocalFileTimeToFileTime (IN CONST FILETIME *lpLocalFileTime, OUT LPFILETIME lpFileTime)
 
VOID WINAPI GetLocalTime (OUT LPSYSTEMTIME lpSystemTime)
 
VOID WINAPI GetSystemTime (OUT LPSYSTEMTIME lpSystemTime)
 
BOOL WINAPI SetLocalTime (IN CONST SYSTEMTIME *lpSystemTime)
 
BOOL WINAPI SetSystemTime (IN CONST SYSTEMTIME *lpSystemTime)
 
DWORD WINAPI GetTickCount (VOID)
 
BOOL WINAPI GetSystemTimeAdjustment (OUT PDWORD lpTimeAdjustment, OUT PDWORD lpTimeIncrement, OUT PBOOL lpTimeAdjustmentDisabled)
 
BOOL WINAPI SetSystemTimeAdjustment (IN DWORD dwTimeAdjustment, IN BOOL bTimeAdjustmentDisabled)
 
BOOL WINAPI GetSystemTimes (OUT LPFILETIME lpIdleTime OPTIONAL, OUT LPFILETIME lpKernelTime OPTIONAL, OUT LPFILETIME lpUserTime OPTIONAL)
 
BOOL WINAPI SetClientTimeZoneInformation (IN CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 16 of file time.c.

Function Documentation

◆ CompareFileTime()

◆ DosDateTimeToFileTime()

BOOL WINAPI DosDateTimeToFileTime ( IN WORD  wFatDate,
IN WORD  wFatTime,
OUT LPFILETIME  lpFileTime 
)

Definition at line 75 of file time.c.

78{
80 LARGE_INTEGER SystemTime;
81
82 TimeFields.Year = (wFatDate >> 9) + 1980;
83 TimeFields.Month = (wFatDate >> 5) & 0xF;
84 TimeFields.Day = (wFatDate & 0x1F);
85 TimeFields.Hour = (wFatTime >> 11);
86 TimeFields.Minute = (wFatTime >> 5) & 0x3F;
87 TimeFields.Second = (wFatTime & 0x1F) << 1;
89
90 if (RtlTimeFieldsToTime(&TimeFields, &SystemTime))
91 {
92 lpFileTime->dwLowDateTime = SystemTime.LowPart;
93 lpFileTime->dwHighDateTime = SystemTime.HighPart;
94 return TRUE;
95 }
96
98 return FALSE;
99}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
BOOLEAN RtlTimeFieldsToTime(IN PTIME_FIELDS TimeFields, IN PLARGE_INTEGER Time)
static PTIME_FIELDS TimeFields
Definition: time.c:36
DWORD BaseSetLastNTError(IN NTSTATUS Status)
Definition: reactos.cpp:167
USHORT Milliseconds
Definition: env_spec_w32.h:717
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

Referenced by _ILGetFileDateTime(), cabinet_close_file_info(), ATL::CTime::CTime(), dos_date_time_to_file_time(), DosInt21h(), ExtCabCallback(), CCabinet::ExtractFile(), CZipExtract::ExtractSingle(), fdi_notify_extract(), FNFDINOTIFY(), get_signature(), CCabFolder::GetDetailsEx(), CZipFolder::GetDetailsOf(), CCabFolder::GetItemDetails(), test_conversions(), test_FileContents1(), test_FileContents2(), test_FileDescriptor(), test_FileDescriptor_Folder(), and test_invalid_arg().

◆ FileTimeToDosDateTime()

BOOL WINAPI FileTimeToDosDateTime ( IN CONST FILETIME lpFileTime,
OUT LPWORD  lpFatDate,
OUT LPWORD  lpFatTime 
)

Definition at line 37 of file time.c.

40{
41 LARGE_INTEGER FileTime;
43
44 FileTime.HighPart = lpFileTime->dwHighDateTime;
45 FileTime.LowPart = lpFileTime->dwLowDateTime;
46
47 if (FileTime.QuadPart < 0)
48 {
50 return FALSE;
51 }
52
54 if ((TimeFields.Year < 1980) || (TimeFields.Year > 2107))
55 {
57 return FALSE;
58 }
59
60 *lpFatDate = (TimeFields.Day) |
61 (TimeFields.Month << 5) |
62 ((TimeFields.Year - 1980) << 9);
63 *lpFatTime = (TimeFields.Second >> 1) |
64 (TimeFields.Minute << 5) |
65 (TimeFields.Hour << 11);
66
67 return TRUE;
68}
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SetLastError(x)
Definition: compat.h:752
BOOLEAN RtlTimeToTimeFields(IN PLARGE_INTEGER Time, IN PTIME_FIELDS TimeFields)

Referenced by _ILCreateFromFindDataW(), CreateItem(), demFileFindFirst(), demFileFindNext(), DosInt21h(), file_time_to_dos_date_time(), get_open_info(), CCabinet::GetFileTimes(), and test_FileTimeToDosDateTime().

◆ FileTimeToLocalFileTime()

BOOL WINAPI FileTimeToLocalFileTime ( IN CONST FILETIME lpFileTime,
OUT LPFILETIME  lpLocalFileTime 
)

Definition at line 216 of file time.c.

218{
219 LARGE_INTEGER TimeZoneBias, FileTime;
220 volatile KSYSTEM_TIME *TimePtr;
221
222 TimePtr = IsTimeZoneRedirectionEnabled() ?
224 &SharedUserData->TimeZoneBias;
225
226 TimeZoneBias = KiReadSystemTime(TimePtr);
227
228 FileTime.LowPart = lpFileTime->dwLowDateTime;
229 FileTime.HighPart = lpFileTime->dwHighDateTime;
230
231 FileTime.QuadPart -= TimeZoneBias.QuadPart;
232
233 lpLocalFileTime->dwLowDateTime = FileTime.LowPart;
234 lpLocalFileTime->dwHighDateTime = FileTime.HighPart;
235
236 return TRUE;
237}
PBASE_STATIC_SERVER_DATA BaseStaticServerData
Definition: dllmain.c:19
BOOL WINAPI IsTimeZoneRedirectionEnabled(VOID)
Definition: time.c:26
FORCEINLINE LARGE_INTEGER KiReadSystemTime(_In_ volatile const KSYSTEM_TIME *SystemTime)
Definition: kefuncs.h:403
#define SharedUserData
KSYSTEM_TIME ktTermsrvClientBias
Definition: base.h:139

Referenced by _tmain(), DateConstr_value(), DirPrintFileDateTime(), DisplayServerStatistics(), DisplayWorkstationStatistics(), DoGetFileTimeInfo(), EventTimeToSystemTime(), CFSFolder::FormatDateTime(), get_date_from_filetime(), get_open_info(), GetEnhancedVar(), GetFileTimeString(), CFileDefExt::GetFileTimeString(), CCabFolder::GetItemDetails(), CRegistryKey::GetLastWriteTime(), PrintDateTime(), CFontInfo::ReadAttrs(), SetFileInfo(), SHFormatDateTimeW(), summaryinfo_invoke(), test_FileTimeToLocalFileTime(), test_GetTimeZoneInformation(), test_SummaryInfo(), txt_export_class_and_last_write(), ATL::CFileTime::UTCToLocal(), and WherePrintPath().

◆ FileTimeToSystemTime()

BOOL WINAPI FileTimeToSystemTime ( IN CONST FILETIME lpFileTime,
OUT LPSYSTEMTIME  lpSystemTime 
)

Definition at line 183 of file time.c.

185{
187 LARGE_INTEGER liTime;
188
189 liTime.u.LowPart = lpFileTime->dwLowDateTime;
190 liTime.u.HighPart = lpFileTime->dwHighDateTime;
191 if (liTime.QuadPart < 0)
192 {
194 return FALSE;
195 }
196
198
199 lpSystemTime->wYear = TimeFields.Year;
200 lpSystemTime->wMonth = TimeFields.Month;
201 lpSystemTime->wDay = TimeFields.Day;
202 lpSystemTime->wHour = TimeFields.Hour;
203 lpSystemTime->wMinute = TimeFields.Minute;
204 lpSystemTime->wSecond = TimeFields.Second;
205 lpSystemTime->wMilliseconds = TimeFields.Milliseconds;
206 lpSystemTime->wDayOfWeek = TimeFields.Weekday;
207
208 return TRUE;
209}
USHORT Weekday
Definition: env_spec_w32.h:718
struct _LARGE_INTEGER::@2500 u

Referenced by CZipFolder::_GetFileTimeString(), _gmtime64_s(), _localtime64_s(), _tmain(), add_cert_to_list(), add_cert_to_view(), add_date_string_to_control(), AddUserProfile(), adjust_system_time(), compareTime(), convert_file_time_to_time_t(), convert_filetime_to_time_t(), CRYPT_AsnEncodeChoiceOfTime(), CRYPT_AsnEncodeGeneralizedTime(), CRYPT_AsnEncodeUtcTime(), CRYPT_MakeCertInfo(), ATL::CTime::CTime(), day_of_month(), DirPrintFileDateTime(), DisplayServerStatistics(), DisplayWorkstationStatistics(), DoGetFileTimeInfo(), EventTimeToSystemTime(), ExtCabCallback(), filetime_to_str(), format_long_date(), CFSFolder::FormatDateTime(), get_date_format(), get_date_from_filetime(), CFontExt::GetDetailsOf(), GetDriverDateString(), GetEnhancedVar(), GetFileModifyTime(), GetFileTimeString(), CFileDefExt::GetFileTimeString(), CRegistryKey::GetLastWriteTime(), HTTPREQ_QueryOption(), InitVariantFromFileTime(), CShellLink::Load(), mktime_helper(), MONTHCAL_CalculateDayOfWeek(), MONTHCAL_IsSelRangeValid(), NLS_GetDateTimeFormatW(), CCertMgrProperties::OnStoreChanged(), PrintDateTime(), printFileTime(), PrintLocalTime(), PROPVAR_ConvertFILETIME(), CInstalledApplicationInfo::RetrieveInstallDate(), RtlTimeToTimeFields(), save_prop(), SetFileInfo(), SetupDiInstallDevice(), SHFormatDateTimeW(), summaryinfo_invoke(), SystemTimeToTzSpecificLocalTime(), test4(), test_cert_struct_string(), test_FileTimeToLocalFileTime(), test_FileTimeToSystemTime(), test_GetTimeZoneInformation(), test_InitVariantFromFileTime(), test_query_process_times(), test_SummaryInfo(), TIME_CompTimeZoneID(), txt_export_class_and_last_write(), TzSpecificLocalTimeToSystemTime(), UpdateSystemTime(), BtrfsScrub::UpdateTextBox(), WherePrintPath(), and XCOPY_ParseCommandLine().

◆ GetLocalTime()

VOID WINAPI GetLocalTime ( OUT LPSYSTEMTIME  lpSystemTime)

Definition at line 272 of file time.c.

273{
274 LARGE_INTEGER SystemTime, TimeZoneBias;
276 volatile KSYSTEM_TIME *TimePtr;
277
278 SystemTime = KiReadSystemTime(&SharedUserData->SystemTime);
279
280 TimePtr = IsTimeZoneRedirectionEnabled() ?
282 &SharedUserData->TimeZoneBias;
283
284 TimeZoneBias = KiReadSystemTime(TimePtr);
285
286 SystemTime.QuadPart -= TimeZoneBias.QuadPart;
287 RtlTimeToTimeFields(&SystemTime, &TimeFields);
288
289 lpSystemTime->wYear = TimeFields.Year;
290 lpSystemTime->wMonth = TimeFields.Month;
291 lpSystemTime->wDay = TimeFields.Day;
292 lpSystemTime->wHour = TimeFields.Hour;
293 lpSystemTime->wMinute = TimeFields.Minute;
294 lpSystemTime->wSecond = TimeFields.Second;
295 lpSystemTime->wMilliseconds = TimeFields.Milliseconds;
296 lpSystemTime->wDayOfWeek = TimeFields.Weekday;
297}

Referenced by _getsystime(), _In_range_(), _strdate(), _strtime(), CTrayClockWnd::CalculateDueTime(), CalculateNextStartTime(), ClockWndProc(), cmd_time(), CmosReadData(), CmosWriteData(), collect_query_data(), common_strdate_s(), create_snapshot(), CreateProfile(), DATETIME_Create(), datetime_proc(), DateTimePageDlgProc(), DateTimePageProc(), DIALOG_EditTimeDate(), DoPrintDocument(), DosInt21h(), download_file(), EngQueryLocalTime(), fill_datetime_information(), FillMonthsComboBox(), FTP_ParseNextFile(), get_date_format(), get_date_str(), get_localdatetime(), get_time_format(), GetCurrentDayOfMonth(), GetDateString(), GetTimeAsJobTime(), GetTimeString(), Global_Date(), Global_Now(), Global_Time(), Global_Timer(), JapaneseEra_Find(), main(), MONTHCAL_Create(), MONTHCAL_Timer(), MonthCalSetLocalTime(), MonthCalSetupDayTimer(), NLS_GetDateTimeFormatW(), ParseDate(), ParseTime(), PrintSystemInfo(), pSetupDebugPrint(), publish_install_properties(), ReadPipeCompletion(), RtcTimeUpdate(), ServicesPageWndProc(), set_print_template(), START_TEST(), TaskTriggerConstructor(), test_GetDatabaseInformationEmpty(), test_GetTimeZoneInformationForYear(), test_SetTrigger_GetTrigger(), test_SHFormatDateTimeW(), TimerProc(), CTrayClockWnd::Update(), vsyslog(), and wWinMain().

◆ GetSystemTime()

VOID WINAPI GetSystemTime ( OUT LPSYSTEMTIME  lpSystemTime)

◆ GetSystemTimeAdjustment()

BOOL WINAPI GetSystemTimeAdjustment ( OUT PDWORD  lpTimeAdjustment,
OUT PDWORD  lpTimeIncrement,
OUT PBOOL  lpTimeAdjustmentDisabled 
)

Definition at line 438 of file time.c.

441{
444
446 &TimeInfo,
447 sizeof(TimeInfo),
448 NULL);
449 if (!NT_SUCCESS(Status))
450 {
452 return FALSE;
453 }
454
455 *lpTimeAdjustment = (DWORD)TimeInfo.TimeAdjustment;
456 *lpTimeIncrement = (DWORD)TimeInfo.TimeIncrement;
457 *lpTimeAdjustmentDisabled = (BOOL)TimeInfo.Enable;
458
459 return TRUE;
460}
LONG NTSTATUS
Definition: precomp.h:26
#define NULL
Definition: types.h:112
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
unsigned long DWORD
Definition: ntddk_ex.h:95
@ SystemTimeAdjustmentInformation
Definition: ntddk_ex.h:39
Status
Definition: gdiplustypes.h:25
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(IN SYSTEM_INFORMATION_CLASS SystemInfoClass, OUT PVOID SystemInfoBuffer, IN ULONG SystemInfoBufferSize, OUT PULONG BytesReturned OPTIONAL)

◆ GetSystemTimeAsFileTime()

VOID WINAPI GetSystemTimeAsFileTime ( OUT PFILETIME  lpFileTime)

Definition at line 128 of file time.c.

129{
130 LARGE_INTEGER SystemTime;
131
132 SystemTime = KiReadSystemTime(&SharedUserData->SystemTime);
133
134 lpFileTime->dwLowDateTime = SystemTime.LowPart;
135 lpFileTime->dwHighDateTime = SystemTime.HighPart;
136}

Referenced by __acrt_GetSystemTimePreciseAsFileTime(), __security_init_cookie(), _ftime64(), _LocalGetJobLevel2(), adjust_system_time(), cache_container_set_size(), CertDllVerifyRevocation(), CertTrustFinalPolicy(), CertVerifyCRLTimeValidity(), CertVerifyTimeValidity(), CoFileTimeNow(), create_cache_entry(), CRYPT_CacheURL(), CRYPT_GetObjectFromCache(), CRYPT_MakeCertInfo(), date_now(), DateConstr_value(), FileTimeNow(), FreeUrlCacheSpaceW(), get_cookie(), get_cred_mgr_encryption_key(), get_file_time(), ATL::CFileTime::GetCurrentTime(), GetCurrentTimeInSeconds(), GetJobName(), GetTimeInSeconds(), gettimeofday(), init_fs_tree(), is_not_current(), load_persistent_cookie(), query_perf_data(), registry_write_credential(), RPC_UuidGetSystemTime(), run_child_process(), save_persistent_cookie(), SdbInstall(), SdbRegisterDatabaseEx(), set_cookie(), set_default_subvol(), SetProfileData(), SetUnreadMailInfo(), SHSetUnreadMailCountW(), START_TEST(), test_cache_read(), test_clock(), test_db(), test_GetSystemTimeAsFileTime(), test_GetSystemTimePreciseAsFileTime(), test_InitVariantFromFileTime(), test_IsUrlCacheEntryExpiredA(), test_urlcacheA(), thread_WaitableTimer_abs(), TIME_ZoneID(), urlcache_entry_commit(), urlcache_entry_create(), urlcache_entry_get_file(), urlcache_entry_is_expired(), and urlcache_hash_entry_is_locked().

◆ GetSystemTimePreciseAsFileTime()

VOID WINAPI GetSystemTimePreciseAsFileTime ( OUT PFILETIME  lpFileTime)

Definition at line 143 of file time.c.

144{
145 STUB;
146}
#define STUB
Definition: kernel32.h:27

Referenced by __security_init_cookie().

◆ GetSystemTimes()

BOOL WINAPI GetSystemTimes ( OUT LPFILETIME lpIdleTime  OPTIONAL,
OUT LPFILETIME lpKernelTime  OPTIONAL,
OUT LPFILETIME lpUserTime  OPTIONAL 
)

Definition at line 493 of file time.c.

496{
498 LARGE_INTEGER TotalUserTime, TotalKernTime, TotalIdleTime;
500 CCHAR i;
502
503 TotalUserTime.QuadPart = TotalKernTime.QuadPart = TotalIdleTime.QuadPart = 0;
504
507
508 ProcPerfInfo = RtlAllocateHeap(RtlGetProcessHeap(), 0, BufferSize);
509 if (!ProcPerfInfo)
510 {
512 return FALSE;
513 }
514
516 ProcPerfInfo,
518 &ReturnLength);
520 {
521 if (lpIdleTime)
522 {
524 {
525 TotalIdleTime.QuadPart += ProcPerfInfo[i].IdleTime.QuadPart;
526 }
527
528 lpIdleTime->dwLowDateTime = TotalIdleTime.LowPart;
529 lpIdleTime->dwHighDateTime = TotalIdleTime.HighPart;
530 }
531
532 if (lpKernelTime)
533 {
535 {
536 TotalKernTime.QuadPart += ProcPerfInfo[i].KernelTime.QuadPart;
537 }
538
539 lpKernelTime->dwLowDateTime = TotalKernTime.LowPart;
540 lpKernelTime->dwHighDateTime = TotalKernTime.HighPart;
541 }
542
543 if (lpUserTime)
544 {
546 {
547 TotalUserTime.QuadPart += ProcPerfInfo[i].UserTime.QuadPart;
548 }
549
550 lpUserTime->dwLowDateTime = TotalUserTime.LowPart;
551 lpUserTime->dwHighDateTime = TotalUserTime.HighPart;
552 }
553 }
554 else if (NT_SUCCESS(Status))
555 {
557 }
558
559 RtlFreeHeap(RtlGetProcessHeap(), 0, ProcPerfInfo);
560 if (!NT_SUCCESS(Status))
561 {
563 return FALSE;
564 }
565
566 return TRUE;
567}
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:616
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:634
#define STATUS_NO_MEMORY
Definition: d3dkmdt.h:51
#define BufferSize
Definition: mmc.h:75
@ SystemProcessorPerformanceInformation
Definition: ntddk_ex.h:19
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
#define STATUS_INTERNAL_ERROR
Definition: ntstatus.h:559
SYSTEM_BASIC_INFORMATION SysInfo
Definition: base.h:130
uint32_t ULONG
Definition: typedefs.h:59
char CCHAR
Definition: typedefs.h:51
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254

◆ GetTickCount()

DWORD WINAPI GetTickCount ( VOID  )

Definition at line 423 of file time.c.

424{
425 LARGE_INTEGER TickCount;
426
427 TickCount = KiReadSystemTime(&SharedUserData->TickCount);
428
429 /* Convert to milliseconds */
430 return (DWORD)KiTickCountToMs(TickCount);
431}
FORCEINLINE ULONG64 KiTickCountToMs(_In_ LARGE_INTEGER TickCount)
Definition: kefuncs.h:453

◆ IsTimeZoneRedirectionEnabled()

BOOL WINAPI IsTimeZoneRedirectionEnabled ( VOID  )

Definition at line 26 of file time.c.

27{
28 /* Return if a TS Timezone ID is active */
30}
ULONG TermsrvClientTimeZoneId
Definition: base.h:140
#define TIME_ZONE_ID_INVALID
Definition: winbase.h:310

Referenced by FileTimeToLocalFileTime(), GetLocalTime(), LocalFileTimeToFileTime(), and SetLocalTime().

◆ LocalFileTimeToFileTime()

BOOL WINAPI LocalFileTimeToFileTime ( IN CONST FILETIME lpLocalFileTime,
OUT LPFILETIME  lpFileTime 
)

Definition at line 244 of file time.c.

246{
247 LARGE_INTEGER TimeZoneBias, FileTime;
248 volatile KSYSTEM_TIME *TimePtr;
249
250 TimePtr = IsTimeZoneRedirectionEnabled() ?
252 &SharedUserData->TimeZoneBias;
253
254 TimeZoneBias = KiReadSystemTime(TimePtr);
255
256 FileTime.LowPart = lpLocalFileTime->dwLowDateTime;
257 FileTime.HighPart = lpLocalFileTime->dwHighDateTime;
258
259 FileTime.QuadPart += TimeZoneBias.QuadPart;
260
261 lpFileTime->dwLowDateTime = FileTime.LowPart;
262 lpFileTime->dwHighDateTime = FileTime.HighPart;
263
264 return TRUE;
265}

Referenced by cabinet_close_file_info(), CZipExtract::ExtractSingle(), fdi_notify_extract(), GetNextJobTimeout(), ATL::CFileTime::LocalToUTC(), ParseDate(), summaryinfo_invoke(), test_FileContents1(), test_FileContents2(), test_FileDescriptor(), test_FileDescriptor_Folder(), and test_SHFormatDateTimeA().

◆ SetClientTimeZoneInformation()

BOOL WINAPI SetClientTimeZoneInformation ( IN CONST TIME_ZONE_INFORMATION lpTimeZoneInformation)

Definition at line 574 of file time.c.

575{
576 STUB;
577 return 0;
578}

◆ SetLocalTime()

BOOL WINAPI SetLocalTime ( IN CONST SYSTEMTIME lpSystemTime)

Definition at line 328 of file time.c.

329{
330 LARGE_INTEGER NewSystemTime, TimeZoneBias;
334 PVOID State;
335 volatile KSYSTEM_TIME *TimePtr;
336
337 TimePtr = IsTimeZoneRedirectionEnabled() ?
339 &SharedUserData->TimeZoneBias;
340
341 TimeZoneBias = KiReadSystemTime(TimePtr);
342
343 TimeFields.Year = lpSystemTime->wYear;
344 TimeFields.Month = lpSystemTime->wMonth;
345 TimeFields.Day = lpSystemTime->wDay;
346 TimeFields.Hour = lpSystemTime->wHour;
347 TimeFields.Minute = lpSystemTime->wMinute;
348 TimeFields.Second = lpSystemTime->wSecond;
349 TimeFields.Milliseconds = lpSystemTime->wMilliseconds;
350
351 if (!RtlTimeFieldsToTime(&TimeFields, &NewSystemTime))
352 {
354 return FALSE;
355 }
356
357 NewSystemTime.QuadPart += TimeZoneBias.QuadPart;
358
360 if (NT_SUCCESS(Status))
361 {
362 Status = NtSetSystemTime(&NewSystemTime, NULL);
364 }
365
366 if (!NT_SUCCESS(Status))
367 {
369 return FALSE;
370 }
371
372 return TRUE;
373}
#define SE_SYSTEMTIME_PRIVILEGE
Definition: security.c:596
NTSYSAPI NTSTATUS NTAPI RtlAcquirePrivilege(_In_ PULONG Privilege, _In_ ULONG NumPriv, _In_ ULONG Flags, _Out_ PVOID *ReturnedState)
NTSYSAPI VOID NTAPI RtlReleasePrivilege(_In_ PVOID ReturnedState)
NTSTATUS NTAPI NtSetSystemTime(IN PLARGE_INTEGER SystemTime, OUT PLARGE_INTEGER PreviousTime OPTIONAL)
Definition: time.c:452
BOOL Privilege(LPTSTR pszPrivilege, BOOL bEnable)
Definition: user_lib.cpp:531

Referenced by _setsystime(), CmosWriteData(), DosInt21h(), ParseDate(), ParseTime(), SetSystemLocalTime(), and SystemSetLocalTime().

◆ SetSystemTime()

BOOL WINAPI SetSystemTime ( IN CONST SYSTEMTIME lpSystemTime)

Definition at line 380 of file time.c.

381{
382 LARGE_INTEGER NewSystemTime;
386 PVOID State;
387
388 TimeFields.Year = lpSystemTime->wYear;
389 TimeFields.Month = lpSystemTime->wMonth;
390 TimeFields.Day = lpSystemTime->wDay;
391 TimeFields.Hour = lpSystemTime->wHour;
392 TimeFields.Minute = lpSystemTime->wMinute;
393 TimeFields.Second = lpSystemTime->wSecond;
394 TimeFields.Milliseconds = lpSystemTime->wMilliseconds;
395
396 if (!RtlTimeFieldsToTime(&TimeFields, &NewSystemTime))
397 {
399 return FALSE;
400 }
401
403 if (NT_SUCCESS(Status))
404 {
405 Status = NtSetSystemTime(&NewSystemTime, NULL);
407 }
408
409 if (!NT_SUCCESS(Status))
410 {
412 return FALSE;
413 }
414
415 return TRUE;
416}

Referenced by adjust_system_time(), and SystemSetTime().

◆ SetSystemTimeAdjustment()

BOOL WINAPI SetSystemTimeAdjustment ( IN DWORD  dwTimeAdjustment,
IN BOOL  bTimeAdjustmentDisabled 
)

Definition at line 467 of file time.c.

469{
472
473 TimeInfo.TimeAdjustment = (ULONG)dwTimeAdjustment;
474 TimeInfo.Enable = (BOOLEAN)bTimeAdjustmentDisabled;
475
477 &TimeInfo,
478 sizeof(TimeInfo));
479 if (!NT_SUCCESS(Status))
480 {
482 return FALSE;
483 }
484
485 return TRUE;
486}
NTSYSAPI NTSTATUS NTAPI NtSetSystemInformation(IN INT SystemInformationClass, IN PVOID SystemInformation, IN ULONG SystemInformationLength)
#define BOOLEAN
Definition: pedump.c:73

◆ SystemTimeToFileTime()

BOOL WINAPI SystemTimeToFileTime ( IN CONST SYSTEMTIME lpSystemTime,
OUT LPFILETIME  lpFileTime 
)

Definition at line 153 of file time.c.

155{
157 LARGE_INTEGER liTime;
158
159 TimeFields.Year = lpSystemTime->wYear;
160 TimeFields.Month = lpSystemTime->wMonth;
161 TimeFields.Day = lpSystemTime->wDay;
162 TimeFields.Hour = lpSystemTime->wHour;
163 TimeFields.Minute = lpSystemTime->wMinute;
164 TimeFields.Second = lpSystemTime->wSecond;
165 TimeFields.Milliseconds = lpSystemTime->wMilliseconds;
166
167 if (RtlTimeFieldsToTime(&TimeFields, &liTime))
168 {
169 lpFileTime->dwLowDateTime = liTime.u.LowPart;
170 lpFileTime->dwHighDateTime = liTime.u.HighPart;
171 return TRUE;
172 }
173
175 return FALSE;
176}

Referenced by _LocalGetJobLevel2(), _PrinterJobListCompareRoutine(), CalculateNextStartTime(), collect_query_data(), common_futime(), copy(), CRYPT_AsnDecodeGeneralizedTime(), CRYPT_AsnDecodeUtcTimeInternal(), CRYPT_MakeCertInfo(), day_of_month(), RecycleBin5::DeleteFile(), EventTimeToSystemTime(), FTP_ConvertFileProp(), get_date_format(), getChain(), GetCurrentTimeInSeconds(), gettimeofday(), GetVersionInformationFromInfFile(), HTTP_ParseDateAsAsctime(), HTTP_ParseRfc1123Date(), HTTP_ParseRfc850Date(), HTTP_RetrieveEncodedObjectW(), JapaneseEra_Find(), mktime_helper(), MONTHCAL_CalculateDayOfWeek(), MONTHCAL_CompareSystemTime(), MONTHCAL_IsSelRangeValid(), MONTHCAL_SetRange(), NLS_GetDateTimeFormatW(), parse_filetime(), ParseDate(), RtlTimeFieldsToTime(), set_cookie(), SOFTPUB_LoadCertMessage(), summaryinfo_invoke(), system_time_to_minutes(), SystemTimeToTzSpecificLocalTime(), test_CERT_CHAIN_PARA_cbSize(), test_conversions(), test_decodeCTL(), test_decodeFiletime(), test_encodeCTL(), test_GetTimeZoneInformation(), test_invalid_arg(), test_perf_counters(), test_performance_keys(), test_SHFormatDateTimeA(), test_SHFormatDateTimeW(), test_verifyRevocation(), test_verifyTimeValidity(), testGetCertChain(), testTimeEncoding(), TouchFileTimes(), TzSpecificLocalTimeToSystemTime(), UpdateSystemTime(), WINTRUST_CertVerifyObjTrust(), and XCOPY_ParseCommandLine().