kernel32: Move file time functions to kernelbase.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Alexandre Julliard 2019-09-26 11:39:53 +02:00
parent 0f5538b9e3
commit 2c68c530af
4 changed files with 174 additions and 277 deletions

View File

@ -238,7 +238,7 @@
@ stdcall CommConfigDialogA(str long ptr)
@ stdcall CommConfigDialogW(wstr long ptr)
# @ stub CompareCalendarDates
@ stdcall CompareFileTime(ptr ptr)
@ stdcall -import CompareFileTime(ptr ptr)
@ stdcall CompareStringA(long long str long str long)
@ stdcall CompareStringW(long long wstr long wstr long)
@ stdcall CompareStringEx(wstr long wstr long wstr long ptr ptr long)
@ -465,8 +465,8 @@
@ stdcall -import FatalAppExitW(long wstr)
@ stdcall FatalExit(long)
@ stdcall FileTimeToDosDateTime(ptr ptr ptr)
@ stdcall FileTimeToLocalFileTime(ptr ptr)
@ stdcall FileTimeToSystemTime(ptr ptr)
@ stdcall -import FileTimeToLocalFileTime(ptr ptr)
@ stdcall -import FileTimeToSystemTime(ptr ptr)
@ stdcall -import FillConsoleOutputAttribute(long long long long ptr)
@ stdcall -import FillConsoleOutputCharacterA(long long long long ptr)
@ stdcall -import FillConsoleOutputCharacterW(long long long long ptr)
@ -702,7 +702,7 @@
@ stdcall -import GetLargestConsoleWindowSize(long)
@ stdcall -import GetLastError()
@ stub GetLinguistLangSize
@ stdcall GetLocalTime(ptr)
@ stdcall -import GetLocalTime(ptr)
@ stdcall GetLocaleInfoA(long long ptr long)
@ stdcall GetLocaleInfoW(long long ptr long)
@ stdcall GetLocaleInfoEx(wstr long ptr long)
@ -830,10 +830,10 @@
@ stdcall GetSystemPowerStatus(ptr)
@ stdcall GetSystemPreferredUILanguages(long ptr ptr ptr)
@ stdcall GetSystemRegistryQuota(ptr ptr)
@ stdcall GetSystemTime(ptr)
@ stdcall -import GetSystemTime(ptr)
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr)
@ stdcall GetSystemTimeAsFileTime(ptr) ntdll.NtQuerySystemTime
@ stdcall GetSystemTimePreciseAsFileTime(ptr)
@ stdcall -import GetSystemTimeAsFileTime(ptr)
@ stdcall -import GetSystemTimePreciseAsFileTime(ptr)
@ stdcall GetSystemTimes(ptr ptr ptr)
@ stdcall -import GetSystemWindowsDirectoryA(ptr long)
@ stdcall -import GetSystemWindowsDirectoryW(ptr long)
@ -1052,7 +1052,7 @@
# @ stub LoadStringBaseW
@ stdcall -import LocalAlloc(long long)
@ stdcall LocalCompact(long)
@ stdcall LocalFileTimeToFileTime(ptr ptr)
@ stdcall -import LocalFileTimeToFileTime(ptr ptr)
@ stdcall LocalFlags(long)
@ stdcall -import LocalFree(long)
@ stdcall LocalHandle(ptr)
@ -1177,7 +1177,7 @@
# @ stub QueryThreadProfiling
# @ stub QueryThreadpoolStackInformation
@ stdcall -arch=x86_64 QueryUmsThreadInformation(ptr long ptr long ptr)
@ stdcall QueryUnbiasedInterruptTime(ptr)
@ stdcall -import QueryUnbiasedInterruptTime(ptr)
@ stub QueryWin31IniFilesMappedToRegistry
@ stdcall -import QueueUserAPC(ptr long long)
@ stdcall -import QueueUserWorkItem(ptr ptr long)
@ -1417,7 +1417,7 @@
@ stdcall SetLastError(long) RtlSetLastWin32Error
# @ stub SetLocalPrimaryComputerNameA
# @ stub SetLocalPrimaryComputerNameW
@ stdcall SetLocalTime(ptr)
@ stdcall -import SetLocalTime(ptr)
@ stdcall SetLocaleInfoA(long long str)
@ stdcall SetLocaleInfoW(long long wstr)
@ stdcall SetMailslotInfo(long long)
@ -1440,7 +1440,7 @@
@ stdcall -import SetStdHandleEx(long long ptr)
@ stdcall SetSystemFileCacheSize(long long long)
@ stdcall SetSystemPowerState(long long)
@ stdcall SetSystemTime(ptr)
@ stdcall -import SetSystemTime(ptr)
@ stdcall SetSystemTimeAdjustment(long long)
@ stdcall SetTapeParameters(ptr long ptr)
@ stdcall SetTapePosition(ptr long long long long long)
@ -1492,7 +1492,7 @@
@ stdcall -import SuspendThread(long)
@ stdcall -import SwitchToFiber(ptr)
@ stdcall -import SwitchToThread()
@ stdcall SystemTimeToFileTime(ptr ptr)
@ stdcall -import SystemTimeToFileTime(ptr ptr)
@ stdcall SystemTimeToTzSpecificLocalTime (ptr ptr ptr)
# @ stub SystemTimeToTzSpecificLocalTimeEx
@ stdcall TerminateJobObject(long long)

View File

@ -514,38 +514,6 @@ static BOOL TIME_GetSpecificTimeZoneInfo( const WCHAR *key_name, WORD year,
}
/***********************************************************************
* SetLocalTime (KERNEL32.@)
*
* Set the local time using current time zone and daylight
* savings settings.
*
* PARAMS
* systime [in] The desired local time.
*
* RETURNS
* Success: TRUE. The time was set.
* Failure: FALSE, if the time was invalid or caller does not have
* permission to change the time.
*/
BOOL WINAPI SetLocalTime( const SYSTEMTIME *systime )
{
FILETIME ft;
LARGE_INTEGER st, st2;
NTSTATUS status;
if( !SystemTimeToFileTime( systime, &ft ))
return FALSE;
st.u.LowPart = ft.dwLowDateTime;
st.u.HighPart = ft.dwHighDateTime;
RtlLocalTimeToSystemTime( &st, &st2 );
if ((status = NtSetSystemTime(&st2, NULL)))
SetLastError( RtlNtStatusToDosError(status) );
return !status;
}
/***********************************************************************
* GetSystemTimeAdjustment (KERNEL32.@)
*
@ -573,34 +541,6 @@ BOOL WINAPI GetSystemTimeAdjustment( PDWORD lpTimeAdjustment, PDWORD lpTimeIncre
}
/***********************************************************************
* SetSystemTime (KERNEL32.@)
*
* Set the system time in utc.
*
* PARAMS
* systime [in] The desired system time.
*
* RETURNS
* Success: TRUE. The time was set.
* Failure: FALSE, if the time was invalid or caller does not have
* permission to change the time.
*/
BOOL WINAPI SetSystemTime( const SYSTEMTIME *systime )
{
FILETIME ft;
LARGE_INTEGER t;
NTSTATUS status;
if( !SystemTimeToFileTime( systime, &ft ))
return FALSE;
t.u.LowPart = ft.dwLowDateTime;
t.u.HighPart = ft.dwHighDateTime;
if ((status = NtSetSystemTime(&t, NULL)))
SetLastError( RtlNtStatusToDosError(status) );
return !status;
}
/***********************************************************************
* SetSystemTimeAdjustment (KERNEL32.@)
*
@ -784,27 +724,6 @@ BOOL WINAPI TzSpecificLocalTimeToSystemTime(
}
/***********************************************************************
* GetSystemTimePreciseAsFileTime (KERNEL32.@)
*
* Get the current time in utc format with greater accuracy.
*
* PARAMS
* time [out] Destination for the current utc time
*
* RETURNS
* Nothing.
*/
void WINAPI GetSystemTimePreciseAsFileTime( FILETIME *time )
{
LARGE_INTEGER t;
t.QuadPart = RtlGetSystemTimePrecise();
time->dwLowDateTime = t.u.LowPart;
time->dwHighDateTime = t.u.HighPart;
}
/*********************************************************************
* TIME_ClockTimeToFileTime (olorin@fandra.org, 20-Sep-1998)
*
@ -1170,167 +1089,6 @@ int WINAPI SetCalendarInfoW(LCID Locale, CALID Calendar, CALTYPE CalType, LPCWST
return 0;
}
/*********************************************************************
* LocalFileTimeToFileTime (KERNEL32.@)
*/
BOOL WINAPI LocalFileTimeToFileTime( const FILETIME *localft, LPFILETIME utcft )
{
NTSTATUS status;
LARGE_INTEGER local, utc;
local.u.LowPart = localft->dwLowDateTime;
local.u.HighPart = localft->dwHighDateTime;
if (!(status = RtlLocalTimeToSystemTime( &local, &utc )))
{
utcft->dwLowDateTime = utc.u.LowPart;
utcft->dwHighDateTime = utc.u.HighPart;
}
else SetLastError( RtlNtStatusToDosError(status) );
return !status;
}
/*********************************************************************
* FileTimeToLocalFileTime (KERNEL32.@)
*/
BOOL WINAPI FileTimeToLocalFileTime( const FILETIME *utcft, LPFILETIME localft )
{
NTSTATUS status;
LARGE_INTEGER local, utc;
utc.u.LowPart = utcft->dwLowDateTime;
utc.u.HighPart = utcft->dwHighDateTime;
if (!(status = RtlSystemTimeToLocalTime( &utc, &local )))
{
localft->dwLowDateTime = local.u.LowPart;
localft->dwHighDateTime = local.u.HighPart;
}
else SetLastError( RtlNtStatusToDosError(status) );
return !status;
}
/*********************************************************************
* FileTimeToSystemTime (KERNEL32.@)
*/
BOOL WINAPI FileTimeToSystemTime( const FILETIME *ft, LPSYSTEMTIME syst )
{
TIME_FIELDS tf;
LARGE_INTEGER t;
t.u.LowPart = ft->dwLowDateTime;
t.u.HighPart = ft->dwHighDateTime;
RtlTimeToTimeFields(&t, &tf);
syst->wYear = tf.Year;
syst->wMonth = tf.Month;
syst->wDay = tf.Day;
syst->wHour = tf.Hour;
syst->wMinute = tf.Minute;
syst->wSecond = tf.Second;
syst->wMilliseconds = tf.Milliseconds;
syst->wDayOfWeek = tf.Weekday;
return TRUE;
}
/*********************************************************************
* SystemTimeToFileTime (KERNEL32.@)
*/
BOOL WINAPI SystemTimeToFileTime( const SYSTEMTIME *syst, LPFILETIME ft )
{
TIME_FIELDS tf;
LARGE_INTEGER t;
tf.Year = syst->wYear;
tf.Month = syst->wMonth;
tf.Day = syst->wDay;
tf.Hour = syst->wHour;
tf.Minute = syst->wMinute;
tf.Second = syst->wSecond;
tf.Milliseconds = syst->wMilliseconds;
if( !RtlTimeFieldsToTime(&tf, &t)) {
SetLastError( ERROR_INVALID_PARAMETER);
return FALSE;
}
ft->dwLowDateTime = t.u.LowPart;
ft->dwHighDateTime = t.u.HighPart;
return TRUE;
}
/*********************************************************************
* CompareFileTime (KERNEL32.@)
*
* Compare two FILETIME's to each other.
*
* PARAMS
* x [I] First time
* y [I] time to compare to x
*
* RETURNS
* -1, 0, or 1 indicating that x is less than, equal to, or greater
* than y respectively.
*/
INT WINAPI CompareFileTime( const FILETIME *x, const FILETIME *y )
{
if (!x || !y) return -1;
if (x->dwHighDateTime > y->dwHighDateTime)
return 1;
if (x->dwHighDateTime < y->dwHighDateTime)
return -1;
if (x->dwLowDateTime > y->dwLowDateTime)
return 1;
if (x->dwLowDateTime < y->dwLowDateTime)
return -1;
return 0;
}
/*********************************************************************
* GetLocalTime (KERNEL32.@)
*
* Get the current local time.
*
* PARAMS
* systime [O] Destination for current time.
*
* RETURNS
* Nothing.
*/
VOID WINAPI GetLocalTime(LPSYSTEMTIME systime)
{
FILETIME lft;
LARGE_INTEGER ft, ft2;
NtQuerySystemTime(&ft);
RtlSystemTimeToLocalTime(&ft, &ft2);
lft.dwLowDateTime = ft2.u.LowPart;
lft.dwHighDateTime = ft2.u.HighPart;
FileTimeToSystemTime(&lft, systime);
}
/*********************************************************************
* GetSystemTime (KERNEL32.@)
*
* Get the current system time.
*
* PARAMS
* systime [O] Destination for current time.
*
* RETURNS
* Nothing.
*/
VOID WINAPI GetSystemTime(LPSYSTEMTIME systime)
{
FILETIME ft;
LARGE_INTEGER t;
NtQuerySystemTime(&t);
ft.dwLowDateTime = t.u.LowPart;
ft.dwHighDateTime = t.u.HighPart;
FileTimeToSystemTime(&ft, systime);
}
/*********************************************************************
* GetDaylightFlag (KERNEL32.@)
*
@ -1548,17 +1306,6 @@ BOOL WINAPI QueryThreadCycleTime(HANDLE thread, PULONG64 cycle)
return FALSE;
}
/***********************************************************************
* QueryUnbiasedInterruptTime (KERNEL32.@)
*/
BOOL WINAPI QueryUnbiasedInterruptTime(ULONGLONG *time)
{
TRACE("(%p)\n", time);
if (!time) return FALSE;
RtlQueryUnbiasedInterruptTime(time);
return TRUE;
}
/******************************************************************************
* GetTickCount64 (KERNEL32.@)
*/

View File

@ -2325,6 +2325,156 @@ BOOL WINAPI DECLSPEC_HOTPATCH WriteFileGather( HANDLE file, FILE_SEGMENT_ELEMENT
}
/***********************************************************************
* Operations on file times
***********************************************************************/
/*********************************************************************
* CompareFileTime (kernelbase.@)
*/
INT WINAPI DECLSPEC_HOTPATCH CompareFileTime( const FILETIME *x, const FILETIME *y )
{
if (!x || !y) return -1;
if (x->dwHighDateTime > y->dwHighDateTime) return 1;
if (x->dwHighDateTime < y->dwHighDateTime) return -1;
if (x->dwLowDateTime > y->dwLowDateTime) return 1;
if (x->dwLowDateTime < y->dwLowDateTime) return -1;
return 0;
}
/*********************************************************************
* FileTimeToLocalFileTime (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH FileTimeToLocalFileTime( const FILETIME *utc, FILETIME *local )
{
return set_ntstatus( RtlSystemTimeToLocalTime( (const LARGE_INTEGER *)utc, (LARGE_INTEGER *)local ));
}
/*********************************************************************
* FileTimeToSystemTime (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH FileTimeToSystemTime( const FILETIME *ft, SYSTEMTIME *systime )
{
TIME_FIELDS tf;
RtlTimeToTimeFields( (const LARGE_INTEGER *)ft, &tf );
systime->wYear = tf.Year;
systime->wMonth = tf.Month;
systime->wDay = tf.Day;
systime->wHour = tf.Hour;
systime->wMinute = tf.Minute;
systime->wSecond = tf.Second;
systime->wMilliseconds = tf.Milliseconds;
systime->wDayOfWeek = tf.Weekday;
return TRUE;
}
/*********************************************************************
* GetLocalTime (kernelbase.@)
*/
void WINAPI DECLSPEC_HOTPATCH GetLocalTime( SYSTEMTIME *systime )
{
LARGE_INTEGER ft, ft2;
NtQuerySystemTime( &ft );
RtlSystemTimeToLocalTime( &ft, &ft2 );
FileTimeToSystemTime( (FILETIME *)&ft2, systime );
}
/*********************************************************************
* GetSystemTime (kernelbase.@)
*/
void WINAPI DECLSPEC_HOTPATCH GetSystemTime( SYSTEMTIME *systime )
{
LARGE_INTEGER ft;
NtQuerySystemTime( &ft );
FileTimeToSystemTime( (FILETIME *)&ft, systime );
}
/***********************************************************************
* GetSystemTimeAsFileTime (kernelbase.@)
*/
void WINAPI DECLSPEC_HOTPATCH GetSystemTimeAsFileTime( FILETIME *time )
{
NtQuerySystemTime( (LARGE_INTEGER *)time );
}
/***********************************************************************
* GetSystemTimePreciseAsFileTime (kernelbase.@)
*/
void WINAPI DECLSPEC_HOTPATCH GetSystemTimePreciseAsFileTime( FILETIME *time )
{
LARGE_INTEGER t;
t.QuadPart = RtlGetSystemTimePrecise();
time->dwLowDateTime = t.u.LowPart;
time->dwHighDateTime = t.u.HighPart;
}
/*********************************************************************
* LocalFileTimeToFileTime (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH LocalFileTimeToFileTime( const FILETIME *local, FILETIME *utc )
{
return set_ntstatus( RtlLocalTimeToSystemTime( (const LARGE_INTEGER *)local, (LARGE_INTEGER *)utc ));
}
/***********************************************************************
* SetLocalTime (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH SetLocalTime( const SYSTEMTIME *systime )
{
FILETIME ft;
LARGE_INTEGER st;
if (!SystemTimeToFileTime( systime, &ft )) return FALSE;
RtlLocalTimeToSystemTime( (LARGE_INTEGER *)&ft, &st );
return set_ntstatus( NtSetSystemTime( &st, NULL ));
}
/***********************************************************************
* SetSystemTime (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH SetSystemTime( const SYSTEMTIME *systime )
{
FILETIME ft;
if (!SystemTimeToFileTime( systime, &ft )) return FALSE;
return set_ntstatus( NtSetSystemTime( (LARGE_INTEGER *)&ft, NULL ));
}
/*********************************************************************
* SystemTimeToFileTime (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH SystemTimeToFileTime( const SYSTEMTIME *systime, FILETIME *ft )
{
TIME_FIELDS tf;
tf.Year = systime->wYear;
tf.Month = systime->wMonth;
tf.Day = systime->wDay;
tf.Hour = systime->wHour;
tf.Minute = systime->wMinute;
tf.Second = systime->wSecond;
tf.Milliseconds = systime->wMilliseconds;
if (RtlTimeFieldsToTime( &tf, (LARGE_INTEGER *)ft )) return TRUE;
SetLastError( ERROR_INVALID_PARAMETER );
return FALSE;
}
/***********************************************************************
* I/O controls
***********************************************************************/

View File

@ -151,7 +151,7 @@
@ stdcall CloseThreadpoolWait(ptr) ntdll.TpReleaseWait
@ stdcall CloseThreadpoolWork(ptr) ntdll.TpReleaseWork
# @ stub CommitStateAtom
@ stdcall CompareFileTime(ptr ptr) kernel32.CompareFileTime
@ stdcall CompareFileTime(ptr ptr)
# @ stub CompareObjectHandles
@ stdcall CompareStringA(long long str long str long) kernel32.CompareStringA
@ stdcall CompareStringEx(wstr long wstr long wstr long ptr ptr long) kernel32.CompareStringEx
@ -343,8 +343,8 @@
@ stdcall ExpandEnvironmentStringsW(wstr ptr long)
@ stdcall FatalAppExitA(long str)
@ stdcall FatalAppExitW(long wstr)
@ stdcall FileTimeToLocalFileTime(ptr ptr) kernel32.FileTimeToLocalFileTime
@ stdcall FileTimeToSystemTime(ptr ptr) kernel32.FileTimeToSystemTime
@ stdcall FileTimeToLocalFileTime(ptr ptr)
@ stdcall FileTimeToSystemTime(ptr ptr)
@ stdcall FillConsoleOutputAttribute(long long long long ptr)
@ stdcall FillConsoleOutputCharacterA(long long long long ptr)
@ stdcall FillConsoleOutputCharacterW(long long long long ptr)
@ -540,7 +540,7 @@
@ stdcall GetLargestConsoleWindowSize(long)
@ stdcall GetLastError() kernelbase_GetLastError
@ stdcall GetLengthSid(ptr)
@ stdcall GetLocalTime(ptr) kernel32.GetLocalTime
@ stdcall GetLocalTime(ptr)
@ stdcall GetLocaleInfoA(long long ptr long) kernel32.GetLocaleInfoA
@ stdcall GetLocaleInfoEx(wstr long ptr long) kernel32.GetLocaleInfoEx
@ stub GetLocaleInfoHelper
@ -695,10 +695,10 @@
# @ stub GetSystemMetadataPathForPackageFamily
@ stdcall GetSystemPreferredUILanguages(long ptr ptr ptr) kernel32.GetSystemPreferredUILanguages
# @ stub GetSystemStateRootFolder
@ stdcall GetSystemTime(ptr) kernel32.GetSystemTime
@ stdcall GetSystemTime(ptr)
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
@ stdcall GetSystemTimeAsFileTime(ptr) kernel32.GetSystemTimeAsFileTime
@ stdcall GetSystemTimePreciseAsFileTime(ptr) kernel32.GetSystemTimePreciseAsFileTime
@ stdcall GetSystemTimeAsFileTime(ptr)
@ stdcall GetSystemTimePreciseAsFileTime(ptr)
@ stdcall GetSystemTimes(ptr ptr ptr) kernel32.GetSystemTimes
@ stdcall GetSystemWindowsDirectoryA(ptr long)
@ stdcall GetSystemWindowsDirectoryW(ptr long)
@ -934,7 +934,7 @@
@ stub LoadStringByReference
@ stdcall LoadStringW(long long ptr long)
@ stdcall LocalAlloc(long long)
@ stdcall LocalFileTimeToFileTime(ptr ptr) kernel32.LocalFileTimeToFileTime
@ stdcall LocalFileTimeToFileTime(ptr ptr)
@ stdcall LocalFree(long)
@ stdcall LocalLock(long)
@ stdcall LocalReAlloc(long long long)
@ -1215,7 +1215,7 @@
# @ stub QueryStateContainerItemInfo
@ stdcall QueryThreadCycleTime(long ptr) kernel32.QueryThreadCycleTime
@ stub QueryThreadpoolStackInformation
@ stdcall QueryUnbiasedInterruptTime(ptr) kernel32.QueryUnbiasedInterruptTime
@ stdcall QueryUnbiasedInterruptTime(ptr) ntdll.RtlQueryUnbiasedInterruptTime
# @ stub QueryUnbiasedInterruptTimePrecise
# @ stub QueryVirtualMemoryInformation
# @ stub QueryWorkingSet
@ -1447,7 +1447,7 @@
@ stdcall SetKernelObjectSecurity(long long ptr)
@ stub SetLastConsoleEventActive
@ stdcall SetLastError(long) ntdll.RtlSetLastWin32Error
@ stdcall SetLocalTime(ptr) kernel32.SetLocalTime
@ stdcall SetLocalTime(ptr)
@ stdcall SetLocaleInfoW(long long wstr) kernel32.SetLocaleInfoW
@ stdcall SetNamedPipeHandleState(long ptr ptr ptr)
@ stdcall SetPriorityClass(long long)
@ -1476,7 +1476,7 @@
@ stdcall SetStdHandle(long long)
@ stdcall SetStdHandleEx(long long ptr)
@ stdcall SetSystemFileCacheSize(long long long) kernel32.SetSystemFileCacheSize
@ stdcall SetSystemTime(ptr) kernel32.SetSystemTime
@ stdcall SetSystemTime(ptr)
@ stdcall SetSystemTimeAdjustment(long long) kernel32.SetSystemTimeAdjustment
@ stdcall SetThreadContext(long ptr)
# @ stub SetThreadDescription
@ -1591,7 +1591,7 @@
@ stdcall SuspendThread(long)
@ stdcall SwitchToFiber(ptr)
@ stdcall SwitchToThread()
@ stdcall SystemTimeToFileTime(ptr ptr) kernel32.SystemTimeToFileTime
@ stdcall SystemTimeToFileTime(ptr ptr)
@ stdcall SystemTimeToTzSpecificLocalTime(ptr ptr ptr) kernel32.SystemTimeToTzSpecificLocalTime
@ stub SystemTimeToTzSpecificLocalTimeEx
@ stdcall TerminateProcess(long long)