mirror of
https://github.com/ckaczor/WorkIndicator.git
synced 2026-01-13 17:23:18 -05:00
54 lines
2.3 KiB
C#
54 lines
2.3 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using Microsoft.Win32.SafeHandles;
|
|
|
|
namespace WorkIndicator.Delcom
|
|
{
|
|
internal sealed class FileIODeclarations
|
|
{
|
|
internal const Int32 FileFlagOverlapped = 0x40000000;
|
|
|
|
internal const Int32 FileShareRead = 1;
|
|
internal const Int32 FileShareWrite = 2;
|
|
|
|
internal const UInt32 GenericRead = 0x80000000;
|
|
internal const UInt32 GenericWrite = 0x40000000;
|
|
|
|
internal const Int32 InvalidHandleValue = -1;
|
|
|
|
internal const Int32 OpenExisting = 3;
|
|
|
|
internal const Int32 WaitTimeout = 0x102;
|
|
internal const Int32 WaitObject0 = 0;
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
internal class SecurityAttributes
|
|
{
|
|
internal Int32 nLength;
|
|
internal Int32 lpSecurityDescriptor;
|
|
internal Int32 bInheritHandle;
|
|
}
|
|
|
|
[DllImport("kernel32.dll", SetLastError = true)]
|
|
internal static extern Int32 CancelIo(SafeFileHandle hFile);
|
|
|
|
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
|
internal static extern IntPtr CreateEvent(IntPtr securityAttributes, Boolean bManualReset, Boolean bInitialState, String lpName);
|
|
|
|
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
|
internal static extern SafeFileHandle CreateFile(String lpFileName, UInt32 dwDesiredAccess, Int32 dwShareMode, IntPtr lpSecurityAttributes, Int32 dwCreationDisposition, Int32 dwFlagsAndAttributes, Int32 hTemplateFile);
|
|
|
|
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
|
internal static extern Boolean GetOverlappedResult(SafeFileHandle hFile, IntPtr lpOverlapped, ref Int32 lpNumberOfBytesTransferred, Boolean bWait);
|
|
|
|
[DllImport("kernel32.dll", SetLastError = true)]
|
|
internal static extern Boolean ReadFile(SafeFileHandle hFile, IntPtr lpBuffer, Int32 nNumberOfBytesToRead, ref Int32 lpNumberOfBytesRead, IntPtr lpOverlapped);
|
|
|
|
[DllImport("kernel32.dll", SetLastError = true)]
|
|
internal static extern Int32 WaitForSingleObject(IntPtr hHandle, Int32 dwMilliseconds);
|
|
|
|
[DllImport("kernel32.dll", SetLastError = true)]
|
|
internal static extern Boolean WriteFile(SafeFileHandle hFile, Byte[] lpBuffer, Int32 nNumberOfBytesToWrite, ref Int32 lpNumberOfBytesWritten, IntPtr lpOverlapped);
|
|
}
|
|
}
|