CreateFile (kernel32)
Last changed: RomanRII-98.208.78.243

.
Summary

C# Signature:

[DllImport("kernel32.dll", SetLastError=true))]
static extern IntPtr CreateFile(string lpFileName, uint dwDesiredAccess,
   uint dwShareMode, IntPtr lpSecurityAttributes, uint dwCreationDisposition,
   uint dwFlagsAndAttributes, IntPtr hTemplateFile);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

You can use the IntPtr from Createfile with FileStream. This is usefull for opening devices such as Com1:, Lpt1: and Prn.

For example:

IntPtr ptr = CreateFile(filename,access, share,0, mode,0, IntPtr.Zero);

/* Is bad handle? INVALID_HANDLE_VALUE */
if (ptr.ToInt32() == -1)
{
    /* ask the framework to marshall the win32 error code to an exception */
    Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
}
else
{
    return new FileStream(ptr,access);
}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation
CreateFile on MSDN