You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,56 @@
|
||||
//------------------------------------------------------------
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//------------------------------------------------------------
|
||||
namespace System.ServiceModel.Channels
|
||||
{
|
||||
using System.Runtime;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Versioning;
|
||||
using System.Security;
|
||||
using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
|
||||
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
internal static class SafeNativeMethods
|
||||
{
|
||||
public const string KERNEL32 = "kernel32.dll";
|
||||
|
||||
[DllImport(KERNEL32, SetLastError = false)]
|
||||
[ResourceExposure(ResourceScope.None)]
|
||||
static extern uint GetSystemTimeAdjustment(
|
||||
[Out] out int adjustment,
|
||||
[Out] out uint increment,
|
||||
[Out] out uint adjustmentDisabled
|
||||
);
|
||||
|
||||
[DllImport(KERNEL32, SetLastError = true)]
|
||||
[ResourceExposure(ResourceScope.None)]
|
||||
private static extern void GetSystemTimeAsFileTime([Out] out FILETIME time);
|
||||
|
||||
public static void GetSystemTimeAsFileTime(out long time) {
|
||||
FILETIME fileTime;
|
||||
GetSystemTimeAsFileTime(out fileTime);
|
||||
time = 0;
|
||||
time |= (uint)fileTime.dwHighDateTime;
|
||||
time <<= sizeof(uint) * 8;
|
||||
time |= (uint)fileTime.dwLowDateTime;
|
||||
}
|
||||
|
||||
[Fx.Tag.SecurityNote(Critical = "Calls critical method GetSystemTimeAdjustment.",
|
||||
Safe = "Method is a SafeNativeMethod.")]
|
||||
[SecuritySafeCritical]
|
||||
internal static long GetSystemTimeResolution()
|
||||
{
|
||||
int dummyAdjustment;
|
||||
uint increment;
|
||||
uint dummyAdjustmentDisabled;
|
||||
|
||||
if (GetSystemTimeAdjustment(out dummyAdjustment, out increment, out dummyAdjustmentDisabled) != 0)
|
||||
{
|
||||
return (long)increment;
|
||||
}
|
||||
|
||||
// Assume the default, which is around 15 milliseconds.
|
||||
return 15 * TimeSpan.TicksPerMillisecond;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user