<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to featurerequest</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/" rel="alternate"/><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/feed.atom" rel="self"/><id>https://sourceforge.net/p/dotnetdiskimager/featurerequest/</id><updated>2018-11-02T19:29:07.701000Z</updated><subtitle>Recent changes to featurerequest</subtitle><entry><title>#17 Disable "There is no disk in the drive..." Popup</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/?limit=25#9f6c" rel="alternate"/><published>2018-11-02T19:29:07.701000Z</published><updated>2018-11-02T19:29:07.701000Z</updated><author><name>Filip Sikora</name><uri>https://sourceforge.net/u/filipxsikora/</uri></author><id>https://sourceforge.netb6c3fd6d4f9114bc78299f2be24ac9a334d4b7f6</id><summary type="html">&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;</summary></entry><entry><title>#16 Password protected written images to prevent unwarranted cloning.</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#0d04" rel="alternate"/><published>2018-11-02T19:28:39.937000Z</published><updated>2018-11-02T19:28:39.937000Z</updated><author><name>Filip Sikora</name><uri>https://sourceforge.net/u/filipxsikora/</uri></author><id>https://sourceforge.netd1f43ecee778cb8ec667aacab6b7a66dbfb834dc</id><summary type="html">&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;</summary></entry><entry><title>#16 Password protected written images to prevent unwarranted cloning.</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#6654" rel="alternate"/><published>2018-11-02T19:28:13.478000Z</published><updated>2018-11-02T19:28:13.478000Z</updated><author><name>Filip Sikora</name><uri>https://sourceforge.net/u/filipxsikora/</uri></author><id>https://sourceforge.netdabcbaa5b13a8214f6e3db8f8ca46c698e2d1634</id><summary type="html">&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;</summary></entry><entry><title>#17 Disable "There is no disk in the drive..." Popup</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/?limit=25#72f3" rel="alternate"/><published>2017-06-29T17:24:05.754000Z</published><updated>2017-06-29T17:24:05.754000Z</updated><author><name>Filip Sikora</name><uri>https://sourceforge.net/u/filipxsikora/</uri></author><id>https://sourceforge.net55ec3a6df10620982459950f17feb49a3f0e3f66</id><summary type="html">&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;</summary></entry><entry><title>Disable "There is no disk in the drive..." Popup</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/" rel="alternate"/><published>2017-06-29T14:29:40.654000Z</published><updated>2017-06-29T14:29:40.654000Z</updated><author><name>Michael</name><uri>https://sourceforge.net/u/michi84o/</uri></author><id>https://sourceforge.net52eb59999686128b8566c28e02421b20e8b8cf10</id><summary type="html">&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;</summary></entry><entry><title>Disable "There is no disk in the drive..." Popup</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/17/" rel="alternate"/><published>2017-06-29T14:29:40.654000Z</published><updated>2017-06-29T14:29:40.654000Z</updated><author><name>Michael</name><uri>https://sourceforge.net/u/michi84o/</uri></author><id>https://sourceforge.net2f8190c8d95654a502b265e7aa1735879b209a0f</id><summary type="html">&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;</summary></entry><entry><title>#16 Password protected written images to prevent unwarranted cloning.</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#89d5/b8fe" rel="alternate"/><published>2017-06-26T18:41:56.239000Z</published><updated>2017-06-26T18:41:56.239000Z</updated><author><name>Kenneth Seymour</name><uri>https://sourceforge.net/u/zeldazero/</uri></author><id>https://sourceforge.netd1617a3ab32d1d375db9e2538dfd4404e14ac56a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks, would be greatly appreciated :)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#16 Password protected written images to prevent unwarranted cloning.</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/?limit=25#89d5" rel="alternate"/><published>2017-06-26T16:42:10.130000Z</published><updated>2017-06-26T16:42:10.130000Z</updated><author><name>Filip Sikora</name><uri>https://sourceforge.net/u/filipxsikora/</uri></author><id>https://sourceforge.netdf0ba3a49d0fdc651f34a3e372e3f295464fd16a</id><summary type="html">&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;</summary></entry><entry><title>Password protected written images to prevent unwarranted cloning.</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/" rel="alternate"/><published>2017-06-26T15:13:21.503000Z</published><updated>2017-06-26T15:13:21.503000Z</updated><author><name>Kenneth Seymour</name><uri>https://sourceforge.net/u/zeldazero/</uri></author><id>https://sourceforge.net7c4d9662dc813703f38f12905392e6029c4514db</id><summary type="html">&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;</summary></entry><entry><title>Password protected written images to prevent unwarranted cloning.</title><link href="https://sourceforge.net/p/dotnetdiskimager/featurerequest/16/" rel="alternate"/><published>2017-06-26T15:13:21.503000Z</published><updated>2017-06-26T15:13:21.503000Z</updated><author><name>Kenneth Seymour</name><uri>https://sourceforge.net/u/zeldazero/</uri></author><id>https://sourceforge.netf1149741b52ad2e21119d8c91f4ab4191a2f5229</id><summary type="html">&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;</summary></entry></feed>