forked from microsoft/referencesource
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSafeNativeMethods.cs
41 lines (33 loc) · 1.58 KB
/
SafeNativeMethods.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//------------------------------------------------------------------------------
// <copyright file="SafeNativeMethods.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Web {
using System.Runtime.InteropServices;
using System;
using System.Security.Permissions;
using System.Collections;
using System.IO;
using System.Text;
[
System.Runtime.InteropServices.ComVisible(false),
System.Security.SuppressUnmanagedCodeSecurityAttribute()
]
internal sealed class SafeNativeMethods {
private SafeNativeMethods() {}
[DllImport(ModName.KERNEL32_FULL_NAME)]
internal /*public*/ extern static int GetCurrentProcessId();
[DllImport(ModName.KERNEL32_FULL_NAME)]
internal /*public*/ extern static int GetCurrentThreadId();
[DllImport(ModName.KERNEL32_FULL_NAME)]
internal static extern bool QueryPerformanceCounter( [System.Runtime.InteropServices.Out, In] ref long lpPerformanceCount);
[DllImport(ModName.KERNEL32_FULL_NAME)]
internal static extern bool QueryPerformanceFrequency( [System.Runtime.InteropServices.Out, In] ref long lpFrequency);
// required for HttpDebugHandlerTimeLog
#if PERF
[DllImport(ModName.KERNEL32_FULL_NAME, CharSet=CharSet.Unicode)]
internal static extern void OutputDebugString(String message);
#endif
}
}