https://bugs.winehq.org/show_bug.cgi?id=50246
--- Comment #7 from Esme Povirk madewokherd@gmail.com --- The exception can be worked around by limiting the drive mappings to only contain paths that the use can access. After that, the program starts. But there will be inaccessible files in any Windows install, so presumably that shouldn't be needed.
The stack trace:
System.UnauthorizedAccessException: Access to the path 'Z:\boot\efi' is denied. at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateDirectoryHandle (System.String path, System.Boolean ignoreNotFound) [0x0004d] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.Enumeration.FileSystemEnumerator`1[TResult]..ctor (System.String directory, System.IO.EnumerationOptions options) [0x00050] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.Enumeration.FileSystemEnumerable`1+DelegateEnumerator[TResult]..ctor (System.IO.Enumeration.FileSystemEnumerable`1[TResult] enumerable) [0x00000] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.Enumeration.FileSystemEnumerable`1[TResult]..ctor (System.String directory, System.IO.Enumeration.FileSystemEnumerable`1+FindTransform[TResult] transform, System.IO.EnumerationOptions options) [0x00042] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories (System.String directory, System.String expression, System.IO.EnumerationOptions options) [0x00014] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.Directory.InternalEnumeratePaths (System.String path, System.String searchPattern, System.IO.SearchTarget searchTarget, System.IO.EnumerationOptions options) [0x00045] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.Directory.GetDirectories (System.String path, System.String searchPattern, System.IO.EnumerationOptions enumerationOptions) [0x00000] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.Directory.GetDirectories (System.String path) [0x0000b] in <e148055c56854bf499fcfc49938417cf>:0 at System.IO.DefaultWatcher.DoFiles (System.IO.DefaultWatcherData data, System.String directory, System.Boolean dispatch) [0x00012] in <5b19279d6f21448386325d955c3a5f7e>:0 at System.IO.DefaultWatcher.DoFiles (System.IO.DefaultWatcherData data, System.String directory, System.Boolean dispatch) [0x00022] in <5b19279d6f21448386325d955c3a5f7e>:0 at System.IO.DefaultWatcher.DoFiles (System.IO.DefaultWatcherData data, System.String directory, System.Boolean dispatch) [0x00022] in <5b19279d6f21448386325d955c3a5f7e>:0 at System.IO.DefaultWatcher.UpdateDataAndDispatch (System.IO.DefaultWatcherData data, System.Boolean dispatch) [0x00040] in <5b19279d6f21448386325d955c3a5f7e>:0 at System.IO.DefaultWatcher.Monitor () [0x0007b] in <5b19279d6f21448386325d955c3a5f7e>:0 at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <e148055c56854bf499fcfc49938417cf>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <e148055c56854bf499fcfc49938417cf>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <e148055c56854bf499fcfc49938417cf>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <e148055c56854bf499fcfc49938417cf>:0 at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <e148055c56854bf499fcfc49938417cf>:0
It would appear that this is a bug in System.IO.DefaultWatcher, as it does not handle the UnauthorizedAccessException.