This repository was archived by the owner on Jan 23, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +25
-2
lines changed
src/classlibnative/bcltype Expand file tree Collapse file tree 1 file changed +25
-2
lines changed Original file line number Diff line number Diff line change @@ -41,14 +41,37 @@ typedef BOOL (*pfnGetPhoneVersion)(LPOSVERSIONINFO lpVersionInformation);
4141pfnGetPhoneVersion g_pfnGetPhoneVersion = NULL ;
4242#endif
4343
44+ typedef void (WINAPI *pfnGetSystemTimeAsFileTime)(LPFILETIME lpSystemTimeAsFileTime);
45+ extern pfnGetSystemTimeAsFileTime g_pfnGetSystemTimeAsFileTime;
46+
47+ void WINAPI InitializeGetSystemTimeAsFileTime (LPFILETIME lpSystemTimeAsFileTime)
48+ {
49+ pfnGetSystemTimeAsFileTime func = NULL ;
50+
51+ #ifndef FEATURE_PAL
52+ HMODULE hKernel32 = WszLoadLibrary (W (" kernel32.dll" ));
53+ if (hKernel32 != NULL )
54+ {
55+ func = (pfnGetSystemTimeAsFileTime)GetProcAddress (hKernel32, " GetSystemTimePreciseAsFileTime" );
56+ }
57+ if (func == NULL )
58+ #endif
59+ {
60+ func = &::GetSystemTimeAsFileTime;
61+ }
62+
63+ g_pfnGetSystemTimeAsFileTime = func;
64+ func (lpSystemTimeAsFileTime);
65+ }
66+
67+ pfnGetSystemTimeAsFileTime g_pfnGetSystemTimeAsFileTime = &InitializeGetSystemTimeAsFileTime;
4468
4569FCIMPL0 (INT64, SystemNative::__GetSystemTimeAsFileTime)
4670{
4771 FCALL_CONTRACT;
4872
4973 INT64 timestamp;
50-
51- ::GetSystemTimeAsFileTime ((FILETIME*)×tamp);
74+ g_pfnGetSystemTimeAsFileTime ((FILETIME*)×tamp);
5275
5376#if BIGENDIAN
5477 timestamp = (INT64)(((UINT64)timestamp >> 32 ) | ((UINT64)timestamp << 32 ));
You can’t perform that action at this time.
0 commit comments