Microsoft.Win32.Win32Native.SafeCreateFile C# (CSharp) Method

SafeCreateFile() private method

private SafeCreateFile ( String lpFileName, int dwDesiredAccess, System dwShareMode, SECURITY_ATTRIBUTES securityAttrs, System dwCreationDisposition, int dwFlagsAndAttributes, IntPtr hTemplateFile ) : SafeFileHandle
lpFileName String
dwDesiredAccess int
dwShareMode System
securityAttrs SECURITY_ATTRIBUTES
dwCreationDisposition System
dwFlagsAndAttributes int
hTemplateFile IntPtr
return SafeFileHandle
        internal static SafeFileHandle SafeCreateFile(String lpFileName,
                    int dwDesiredAccess, System.IO.FileShare dwShareMode,
                    SECURITY_ATTRIBUTES securityAttrs, System.IO.FileMode dwCreationDisposition,
                    int dwFlagsAndAttributes, IntPtr hTemplateFile)
        {
            SafeFileHandle handle = CreateFile( lpFileName, dwDesiredAccess, dwShareMode,
                                securityAttrs, dwCreationDisposition,
                                dwFlagsAndAttributes, hTemplateFile );

            if (!handle.IsInvalid)
            {
                int fileType = Win32Native.GetFileType(handle);
                if (fileType != Win32Native.FILE_TYPE_DISK) {
                    handle.Dispose();
                    throw new NotSupportedException(Environment.GetResourceString("NotSupported_FileStreamOnNonFiles"));
                }
            }

            return handle;
        }