<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to featurerequest</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/</link><description>Recent changes to featurerequest</description><atom:link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/feed.rss" rel="self"/><language>en</language><lastBuildDate>Fri, 02 Nov 2018 19:29:07 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/feed.rss" rel="self" type="application/rss+xml"/><item><title>#17 Disable "There is no disk in the drive..." Popup</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/?limit=25#9f6c</link><description>&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Filip Sikora</dc:creator><pubDate>Fri, 02 Nov 2018 19:29:07 -0000</pubDate><guid>https://sourceforge.netb6c3fd6d4f9114bc78299f2be24ac9a334d4b7f6</guid></item><item><title>#16 Password protected written images to prevent unwarranted cloning.</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#0d04</link><description>&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Filip Sikora</dc:creator><pubDate>Fri, 02 Nov 2018 19:28:39 -0000</pubDate><guid>https://sourceforge.netd1f43ecee778cb8ec667aacab6b7a66dbfb834dc</guid></item><item><title>#16 Password protected written images to prevent unwarranted cloning.</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#6654</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Sorry for the long inactivity, but FINALLY, I have been able to implement this.&lt;br/&gt;
Check the README.txt for more info :)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Filip Sikora</dc:creator><pubDate>Fri, 02 Nov 2018 19:28:13 -0000</pubDate><guid>https://sourceforge.netdabcbaa5b13a8214f6e3db8f8ca46c698e2d1634</guid></item><item><title>#17 Disable "There is no disk in the drive..." Popup</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/?limit=25#72f3</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you very much for your effort. Will add this to the next release.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Filip Sikora</dc:creator><pubDate>Thu, 29 Jun 2017 17:24:05 -0000</pubDate><guid>https://sourceforge.net55ec3a6df10620982459950f17feb49a3f0e3f66</guid></item><item><title>Disable "There is no disk in the drive..." Popup</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;When I start up the program I get a &lt;em&gt;"There is no disk in the drive. Please insert a disk into drive "X""&lt;/em&gt; Popup for every slot in my card reader that has no card in it. &lt;br/&gt;
I already did some research on how to disable the popup. It is caused by the CreateFile call in the kernel32.dll. You can disable it if you call the SetErrorMode in kernel32.dll with the SEM_FAILCRITICALERRORS option. Would be nice if you could include this into the official code. Here is a diff file that fixes the error message on startup:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt; dotNetDiskImager/DiskAccess/NativeDiskWrapper.cs | 11 ++++++++++-
 dotNetDiskImager/Models/Utils.cs                 | 14 ++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/dotNetDiskImager/DiskAccess/NativeDiskWrapper.cs b/dotNetDiskImager/DiskAccess/NativeDiskWrapper.cs
index 640a102..9fc7bd8 100644
--- a/dotNetDiskImager/DiskAccess/NativeDiskWrapper.cs
+++ b/dotNetDiskImager/DiskAccess/NativeDiskWrapper.cs
@@ -7,6 +7,7 @@ using System.Runtime.InteropServices;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
+using dotNetDiskImager.Models;

 namespace dotNetDiskImager.DiskAccess
 {
@@ -431,7 +432,15 @@ namespace dotNetDiskImager.DiskAccess
                             else
                             {
                                 NativeDisk.CloseHandle(handle);
-                                handle = NativeDisk.CreateFile(name, NativeDisk.FILE_READ_DATA, NativeDisk.FILE_SHARE_READ | NativeDisk.FILE_SHARE_WRITE, IntPtr.Zero, NativeDisk.OPEN_EXISTING, 0, IntPtr.Zero);
+                                Utils.SetErrorMode(ErrorModes.SEM_FAILCRITICALERRORS);
+                                try
+                                {
+                                    handle = NativeDisk.CreateFile(name, NativeDisk.FILE_READ_DATA, NativeDisk.FILE_SHARE_READ | NativeDisk.FILE_SHARE_WRITE, IntPtr.Zero, NativeDisk.OPEN_EXISTING, 0, IntPtr.Zero);
+                                }
+                                finally
+                                {
+                                    Utils.SetErrorMode(ErrorModes.SYSTEM_DEFAULT);
+                                }

                                 if (handle == NativeDisk.INVALID_HANDLE_VALUE)
                                 {
diff --git a/dotNetDiskImager/Models/Utils.cs b/dotNetDiskImager/Models/Utils.cs
index 1fe8ddb..a50e683 100644
--- a/dotNetDiskImager/Models/Utils.cs
+++ b/dotNetDiskImager/Models/Utils.cs
@@ -8,9 +8,23 @@ using System.Threading.Tasks;

 namespace dotNetDiskImager.Models
 {
+    [Flags]
+    public enum ErrorModes : uint
+    {
+        SYSTEM_DEFAULT = 0x0,
+        SEM_FAILCRITICALERRORS = 0x0001,
+        SEM_NOALIGNMENTFAULTEXCEPT = 0x0004,
+        SEM_NOGPFAULTERRORBOX = 0x0002,
+        SEM_NOOPENFILEERRORBOX = 0x8000
+    }
+
     public class Utils
     {
         [DllImport("kernel32.dll")]
+        public static extern ErrorModes SetErrorMode(ErrorModes uMode);
+
+
+        [DllImport("kernel32.dll")]
         static extern uint SetThreadExecutionState(uint esFlags);
         const uint ES_CONTINUOUS = 0x80000000;
         const uint ES_SYSTEM_REQUIRED = 0x00000001;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael</dc:creator><pubDate>Thu, 29 Jun 2017 14:29:40 -0000</pubDate><guid>https://sourceforge.net52eb59999686128b8566c28e02421b20e8b8cf10</guid></item><item><title>Disable "There is no disk in the drive..." Popup</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 17 has been modified: Disable "There is no disk in the drive..." Popup&lt;br/&gt;
Edited By: Filip Sikora (filipxsikora)&lt;br/&gt;
Status updated: u'open' =&amp;gt; u'closed'&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael</dc:creator><pubDate>Thu, 29 Jun 2017 14:29:40 -0000</pubDate><guid>https://sourceforge.net2f8190c8d95654a502b265e7aa1735879b209a0f</guid></item><item><title>#16 Password protected written images to prevent unwarranted cloning.</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#89d5/b8fe</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks, would be greatly appreciated :)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kenneth Seymour</dc:creator><pubDate>Mon, 26 Jun 2017 18:41:56 -0000</pubDate><guid>https://sourceforge.netd1617a3ab32d1d375db9e2538dfd4404e14ac56a</guid></item><item><title>#16 Password protected written images to prevent unwarranted cloning.</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#89d5</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I'm definitely going to implement this. I was little busy last three months, but now I have some spare time, so I will look into this.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Filip Sikora</dc:creator><pubDate>Mon, 26 Jun 2017 16:42:10 -0000</pubDate><guid>https://sourceforge.netdf0ba3a49d0fdc651f34a3e372e3f295464fd16a</guid></item><item><title>Password protected written images to prevent unwarranted cloning.</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I will like to be able to prevent others from taking my microsd card and cloning it.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kenneth Seymour</dc:creator><pubDate>Mon, 26 Jun 2017 15:13:21 -0000</pubDate><guid>https://sourceforge.net7c4d9662dc813703f38f12905392e6029c4514db</guid></item><item><title>Password protected written images to prevent unwarranted cloning.</title><link>https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 16 has been modified: Password protected written images to prevent unwarranted cloning.&lt;br/&gt;
Edited By: Filip Sikora (filipxsikora)&lt;br/&gt;
Status updated: u'open' =&amp;gt; u'closed'&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kenneth Seymour</dc:creator><pubDate>Mon, 26 Jun 2017 15:13:21 -0000</pubDate><guid>https://sourceforge.netf1149741b52ad2e21119d8c91f4ab4191a2f5229</guid></item></channel></rss>