diff --git a/WPinternals.sln b/WPinternals.sln
index 4a08cbb..f44d11a 100644
--- a/WPinternals.sln
+++ b/WPinternals.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31606.5
+# Visual Studio Version 18
+VisualStudioVersion = 18.0.11123.170 d18.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WPinternals", "WPinternals\WPinternals.csproj", "{AED6DEB8-F54C-4B41-9655-793E7096AE6E}"
EndProject
@@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPinternalsSDK.UWP", "WPint
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "WPinternalsSDK", "WPinternalsSDK\WPinternalsSDK.shproj", "{D29275F2-BB58-44A2-81E1-96D68C4C48DB}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinUSBNet", "WinUSBNet\WinUSBNet.csproj", "{76B85724-D758-44C7-8AB8-20E661155422}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -2213,6 +2215,446 @@ Global
{53EDF96D-D4F7-476C-9030-C29AD132719D}.Release-Test|x64.Build.0 = Release|x64
{53EDF96D-D4F7-476C-9030-C29AD132719D}.Release-Test|x86.ActiveCfg = Release|x86
{53EDF96D-D4F7-476C-9030-C29AD132719D}.Release-Test|x86.Build.0 = Release|x86
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-AddEmergency|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-BackupGPT|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ClearNV|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-930|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950 (no restart)|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-CustomFlash-950|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLall|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLEmergency|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DLFFU|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpFFU|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-DumpUEFI|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccess|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableRootAccessOnImage|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning (no restart)|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-EnableTestSigning|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfile|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FindFlashingProfileNoRestart|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FixBoot|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashCustomRom-640|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1073|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashFFU-RM1085|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-FlashRaw|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Help|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlXml|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MergeGptXmlZip|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-MSM|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ReadGPT|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RelockPhone|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-RestoreGPT|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowFFU|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-ShowPhoneInfo|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-Test|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-550|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-630|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-640|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-650|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-930|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-TestProgrammer-950|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|Any CPU.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|Any CPU.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|ARM.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|ARM.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|ARM64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|ARM64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|x64.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|x64.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|x86.ActiveCfg = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Debug-UnlockBootloader|x86.Build.0 = Debug|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|Any CPU.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|Any CPU.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|ARM.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|ARM.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|ARM64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|ARM64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|x64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|x64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|x86.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview|x86.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|Any CPU.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|Any CPU.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|ARM.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|ARM.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|ARM64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|ARM64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|x64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|x64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|x86.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Preview-Test|x86.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|Any CPU.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|ARM.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|ARM.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|ARM64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|x64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|x64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|x86.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release|x86.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|Any CPU.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|Any CPU.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|ARM.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|ARM.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|ARM64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|ARM64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|x64.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|x64.Build.0 = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|x86.ActiveCfg = Release|Any CPU
+ {76B85724-D758-44C7-8AB8-20E661155422}.Release-Test|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/WPinternals/WPinternals.csproj b/WPinternals/WPinternals.csproj
index 47e5359..4693b98 100644
--- a/WPinternals/WPinternals.csproj
+++ b/WPinternals/WPinternals.csproj
@@ -343,6 +343,9 @@
+
+
+
"C:\Program Files\PsTools\pskill.exe" XDesProc.exe 2>nul 1>nul
diff --git a/WPinternals/WinUSBNet/API/APIException.cs b/WinUSBNet/API/APIException.cs
similarity index 100%
rename from WPinternals/WinUSBNet/API/APIException.cs
rename to WinUSBNet/API/APIException.cs
diff --git a/WPinternals/WinUSBNet/API/DeviceDetails.cs b/WinUSBNet/API/DeviceDetails.cs
similarity index 100%
rename from WPinternals/WinUSBNet/API/DeviceDetails.cs
rename to WinUSBNet/API/DeviceDetails.cs
diff --git a/WPinternals/WinUSBNet/API/DeviceManagement.cs b/WinUSBNet/API/DeviceManagement.cs
similarity index 100%
rename from WPinternals/WinUSBNet/API/DeviceManagement.cs
rename to WinUSBNet/API/DeviceManagement.cs
diff --git a/WPinternals/WinUSBNet/API/DeviceManagementAPI.cs b/WinUSBNet/API/DeviceManagementAPI.cs
similarity index 100%
rename from WPinternals/WinUSBNet/API/DeviceManagementAPI.cs
rename to WinUSBNet/API/DeviceManagementAPI.cs
diff --git a/WPinternals/WinUSBNet/API/FileAPI.cs b/WinUSBNet/API/FileAPI.cs
similarity index 100%
rename from WPinternals/WinUSBNet/API/FileAPI.cs
rename to WinUSBNet/API/FileAPI.cs
diff --git a/WPinternals/WinUSBNet/API/WinUSBDevice.cs b/WinUSBNet/API/WinUSBDevice.cs
similarity index 100%
rename from WPinternals/WinUSBNet/API/WinUSBDevice.cs
rename to WinUSBNet/API/WinUSBDevice.cs
diff --git a/WPinternals/WinUSBNet/API/WinUSBDeviceAPI.cs b/WinUSBNet/API/WinUSBDeviceAPI.cs
similarity index 100%
rename from WPinternals/WinUSBNet/API/WinUSBDeviceAPI.cs
rename to WinUSBNet/API/WinUSBDeviceAPI.cs
diff --git a/WPinternals/WinUSBNet/DeviceNotifyHook.cs b/WinUSBNet/DeviceNotifyHook.cs
similarity index 88%
rename from WPinternals/WinUSBNet/DeviceNotifyHook.cs
rename to WinUSBNet/DeviceNotifyHook.cs
index 959ac19..7fc4d16 100644
--- a/WPinternals/WinUSBNet/DeviceNotifyHook.cs
+++ b/WinUSBNet/DeviceNotifyHook.cs
@@ -30,9 +30,9 @@ namespace MadWizard.WinUSBNet
_notifier = notifier;
IntPtr hWnd = IntPtr.Zero;
- if (Application.Current.MainWindow != null)
+ if (System.Windows.Application.Current.MainWindow != null)
{
- hWnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
+ hWnd = new WindowInteropHelper(System.Windows.Application.Current.MainWindow).Handle;
}
if (hWnd == IntPtr.Zero)
@@ -42,7 +42,7 @@ namespace MadWizard.WinUSBNet
API.DeviceManagement.RegisterForDeviceNotifications(hWnd, _guid, ref _notifyHandle);
- HwndSource source = PresentationSource.FromVisual(Application.Current.MainWindow) as HwndSource;
+ HwndSource source = PresentationSource.FromVisual(System.Windows.Application.Current.MainWindow) as HwndSource;
source.AddHook(WndProc);
}
@@ -168,22 +168,22 @@ namespace MadWizard.WinUSBNet
void RemoveHookAction()
{
- if (Application.Current.MainWindow != null)
+ if (System.Windows.Application.Current.MainWindow != null)
{
- HwndSource source = PresentationSource.FromVisual(Application.Current.MainWindow) as HwndSource;
+ HwndSource source = PresentationSource.FromVisual(System.Windows.Application.Current.MainWindow) as HwndSource;
source.RemoveHook(WndProc);
}
}
- if (Application.Current != null)
+ if (System.Windows.Application.Current != null)
{
- if (Application.Current.Dispatcher.Thread.ManagedThreadId == Environment.CurrentManagedThreadId)
+ if (System.Windows.Application.Current.Dispatcher.Thread.ManagedThreadId == Environment.CurrentManagedThreadId)
{
RemoveHookAction();
}
else
{
- Application.Current.Dispatcher.Invoke(RemoveHookAction);
+ System.Windows.Application.Current.Dispatcher.Invoke(RemoveHookAction);
}
}
}
diff --git a/WinUSBNet/HelperClasses/AsyncAutoResetEvent.cs b/WinUSBNet/HelperClasses/AsyncAutoResetEvent.cs
new file mode 100644
index 0000000..c2f189c
--- /dev/null
+++ b/WinUSBNet/HelperClasses/AsyncAutoResetEvent.cs
@@ -0,0 +1,111 @@
+// Copyright (c) 2018, Rene Lergner - @Heathcliff74xda
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+//
+// Some of the classes and functions in this file were found online.
+// Where possible the original authors are referenced.
+
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace WPinternals.HelperClasses
+{
+ internal class AsyncAutoResetEvent
+ {
+ private readonly LinkedList> waiters =
+ new();
+
+ private bool isSignaled;
+
+ public AsyncAutoResetEvent(bool signaled)
+ {
+ isSignaled = signaled;
+ }
+
+ public Task WaitAsync(TimeSpan timeout)
+ {
+ return WaitAsync(timeout, CancellationToken.None);
+ }
+
+ public async Task WaitAsync(TimeSpan timeout, CancellationToken cancellationToken)
+ {
+ TaskCompletionSource tcs;
+
+ lock (waiters)
+ {
+ if (isSignaled)
+ {
+ isSignaled = false;
+ return true;
+ }
+ else if (timeout == TimeSpan.Zero)
+ {
+ return isSignaled;
+ }
+ else
+ {
+ tcs = new TaskCompletionSource();
+ waiters.AddLast(tcs);
+ }
+ }
+
+ Task winner = await Task.WhenAny(tcs.Task, Task.Delay(timeout, cancellationToken));
+ if (winner == tcs.Task)
+ {
+ // The task was signaled.
+ return true;
+ }
+ else
+ {
+ // We timed-out; remove our reference to the task.
+ // This is an O(n) operation since waiters is a LinkedList.
+ lock (waiters)
+ {
+ bool removed = waiters.Remove(tcs);
+ System.Diagnostics.Debug.Assert(removed);
+ return false;
+ }
+ }
+ }
+
+ public void Set()
+ {
+ TaskCompletionSource toRelease = null;
+
+ lock (waiters)
+ {
+ if (waiters.Count > 0)
+ {
+ // Signal the first task in the waiters list.
+ toRelease = waiters.First.Value;
+ waiters.RemoveFirst();
+ }
+ else if (!isSignaled)
+ {
+ // No tasks are pending
+ isSignaled = true;
+ }
+ }
+
+ toRelease?.SetResult(true);
+ }
+ }
+}
diff --git a/WinUSBNet/HelperClasses/Converter.cs b/WinUSBNet/HelperClasses/Converter.cs
new file mode 100644
index 0000000..808d7f5
--- /dev/null
+++ b/WinUSBNet/HelperClasses/Converter.cs
@@ -0,0 +1,74 @@
+// Copyright (c) 2018, Rene Lergner - @Heathcliff74xda
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+//
+// Some of the classes and functions in this file were found online.
+// Where possible the original authors are referenced.
+
+using System;
+using System.Text;
+
+namespace WPinternals.HelperClasses
+{
+ public static class Converter
+ {
+ public static string ConvertHexToString(byte[] Bytes, string Separator)
+ {
+ StringBuilder s = new(1000);
+ for (int i = Bytes.GetLowerBound(0); i <= Bytes.GetUpperBound(0); i++)
+ {
+ if (i != Bytes.GetLowerBound(0))
+ {
+ s.Append(Separator);
+ }
+
+ s.Append(Bytes[i].ToString("X2"));
+ }
+ return s.ToString();
+ }
+
+ public static byte[] ConvertStringToHex(string HexString)
+ {
+ if (HexString.Length % 2 == 1)
+ {
+ throw new Exception("The binary key cannot have an odd number of digits");
+ }
+
+ byte[] arr = new byte[HexString.Length >> 1];
+
+ for (int i = 0; i < HexString.Length >> 1; ++i)
+ {
+ arr[i] = (byte)((GetHexVal(HexString[i << 1]) << 4) + GetHexVal(HexString[(i << 1) + 1]));
+ }
+
+ return arr;
+ }
+
+ public static int GetHexVal(char hex)
+ {
+ int val = hex;
+ //For uppercase A-F letters:
+ //return val - (val < 58 ? 48 : 55);
+ //For lowercase a-f letters:
+ //return val - (val < 58 ? 48 : 87);
+ //Or the two combined, but a bit slower:
+ return val - (val < 58 ? 48 : val < 97 ? 55 : 87);
+ }
+ }
+}
diff --git a/WPinternals/WinUSBNet/USB.cs b/WinUSBNet/USB.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USB.cs
rename to WinUSBNet/USB.cs
diff --git a/WPinternals/WinUSBNet/USBAsyncResult.cs b/WinUSBNet/USBAsyncResult.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBAsyncResult.cs
rename to WinUSBNet/USBAsyncResult.cs
diff --git a/WPinternals/WinUSBNet/USBDevice.cs b/WinUSBNet/USBDevice.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBDevice.cs
rename to WinUSBNet/USBDevice.cs
diff --git a/WPinternals/WinUSBNet/USBDeviceDescriptor.cs b/WinUSBNet/USBDeviceDescriptor.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBDeviceDescriptor.cs
rename to WinUSBNet/USBDeviceDescriptor.cs
diff --git a/WPinternals/WinUSBNet/USBDeviceInfo.cs b/WinUSBNet/USBDeviceInfo.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBDeviceInfo.cs
rename to WinUSBNet/USBDeviceInfo.cs
diff --git a/WPinternals/WinUSBNet/USBException.cs b/WinUSBNet/USBException.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBException.cs
rename to WinUSBNet/USBException.cs
diff --git a/WPinternals/WinUSBNet/USBInterface.cs b/WinUSBNet/USBInterface.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBInterface.cs
rename to WinUSBNet/USBInterface.cs
diff --git a/WPinternals/WinUSBNet/USBInterfaceCollection.cs b/WinUSBNet/USBInterfaceCollection.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBInterfaceCollection.cs
rename to WinUSBNet/USBInterfaceCollection.cs
diff --git a/WPinternals/WinUSBNet/USBNotifier.cs b/WinUSBNet/USBNotifier.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBNotifier.cs
rename to WinUSBNet/USBNotifier.cs
diff --git a/WPinternals/WinUSBNet/USBPipe.cs b/WinUSBNet/USBPipe.cs
similarity index 96%
rename from WPinternals/WinUSBNet/USBPipe.cs
rename to WinUSBNet/USBPipe.cs
index 25f694f..9b629c7 100644
--- a/WPinternals/WinUSBNet/USBPipe.cs
+++ b/WinUSBNet/USBPipe.cs
@@ -452,8 +452,10 @@ namespace MadWizard.WinUSBNet
private void LogException(Exception Ex)
{
- WPinternals.HelperClasses.LogFile.Log("Error on USB port!", WPinternals.HelperClasses.LogType.FileOnly);
- WPinternals.HelperClasses.LogFile.Log("Device: " + Device.Descriptor.FullName, WPinternals.HelperClasses.LogType.FileOnly);
+ // TODO: FIX!
+
+ //WPinternals.HelperClasses.LogFile.Log("Error on USB port!", WPinternals.HelperClasses.LogType.FileOnly);
+ //WPinternals.HelperClasses.LogFile.Log("Device: " + Device.Descriptor.FullName, WPinternals.HelperClasses.LogType.FileOnly);
if (IsIn)
{
@@ -464,15 +466,15 @@ namespace MadWizard.WinUSBNet
(((API.APIException)Ex.InnerException).InnerException is System.ComponentModel.Win32Exception) &&
(((System.ComponentModel.Win32Exception)Ex.InnerException.InnerException).NativeErrorCode == 0X1F))
{
- WPinternals.HelperClasses.LogFile.Log("Failed to communicate on new USB connection", WPinternals.HelperClasses.LogType.FileAndConsole);
+ //WPinternals.HelperClasses.LogFile.Log("Failed to communicate on new USB connection", WPinternals.HelperClasses.LogType.FileAndConsole);
}
if (LastWritten != null)
{
- WPinternals.HelperClasses.LogFile.Log("Last written: " + WPinternals.HelperClasses.Converter.ConvertHexToString(LastWritten, ""), WPinternals.HelperClasses.LogType.FileOnly);
+ //WPinternals.HelperClasses.LogFile.Log("Last written: " + WPinternals.HelperClasses.Converter.ConvertHexToString(LastWritten, ""), WPinternals.HelperClasses.LogType.FileOnly);
}
- WPinternals.HelperClasses.LogFile.LogException(Ex, WPinternals.HelperClasses.LogType.FileOnly);
+ //WPinternals.HelperClasses.LogFile.LogException(Ex, WPinternals.HelperClasses.LogType.FileOnly);
}
private void LogAndThrowException(Exception Ex)
diff --git a/WPinternals/WinUSBNet/USBPipeCollection.cs b/WinUSBNet/USBPipeCollection.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBPipeCollection.cs
rename to WinUSBNet/USBPipeCollection.cs
diff --git a/WPinternals/WinUSBNet/USBPipePolicy.cs b/WinUSBNet/USBPipePolicy.cs
similarity index 100%
rename from WPinternals/WinUSBNet/USBPipePolicy.cs
rename to WinUSBNet/USBPipePolicy.cs
diff --git a/WinUSBNet/WinUSBNet.csproj b/WinUSBNet/WinUSBNet.csproj
new file mode 100644
index 0000000..b812119
--- /dev/null
+++ b/WinUSBNet/WinUSBNet.csproj
@@ -0,0 +1,12 @@
+
+
+
+ net8.0-windows
+ enable
+ enable
+ true
+ true
+ true
+
+
+