ich den Code unten in meiner UWP appMarshal.GetLastWin32Error() throws Zugriff verweigert in UWP C#
public static class DeviceIoControlHelper
{
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)]
private static extern SafeFileHandle CreateFile(
string lpFileName,
[MarshalAs(UnmanagedType.U4)] FileAccess dwDesiredAccess,
[MarshalAs(UnmanagedType.U4)] FileShare dwShareMode,
IntPtr lpSecurityAttributes,
[MarshalAs(UnmanagedType.U4)] FileMode dwCreationDisposition,
[MarshalAs(UnmanagedType.U4)] FileAttributes dwFlagsAndAttributes,
IntPtr hTemplateFile);
public static SafeFileHandle ReturnFileHandler()
{
const string drive = @"\\.\LCD";
SafeFileHandle hddHandle = CreateFile(drive, FileAccess.Read, FileShare.None, IntPtr.Zero, FileMode.Open, FileAttributes.Normal, IntPtr.Zero);
if (hddHandle.IsInvalid)
{
int lastError = Marshal.GetLastWin32Error();
string errorMessage = string.Format(@"!! Invalid {0}; Error ({1}): {2}", drive, lastError, new Win32Exception(lastError).Message);
throw new Win32Exception(errorMessage);
}
return hddHandle;
}
}
haben aber, wenn ich versuche, es für den Zugriff auf von meinem MainPage.xaml.cs, bekam ich eine expcetion von "Zugriff verweigert". Schale Visual Studio 2015 Gemeinschaft im Admin-Modus nicht geholfen entweder
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
try
{
DeviceIoControlHelper.ReturnFileHandler();
}
catch(Exception ex)
{
}
}
}
I UWP bin mit C# in Visual Studio 2015 Gemeinschafts
Das ist keine Überraschung, es funktioniert nicht. UWP-Apps sind Sandboxed. –