From 058cde0d91cba2ae0bf72c88cda68894727937ab Mon Sep 17 00:00:00 2001 From: Gustave Monce Date: Sat, 1 Nov 2025 09:28:08 +0100 Subject: [PATCH] Migrate WinUSBNet code to a standalone project dependency --- WPinternals.sln | 446 +++++++++++++++++- WPinternals/WPinternals.csproj | 3 + .../API/APIException.cs | 0 .../API/DeviceDetails.cs | 0 .../API/DeviceManagement.cs | 0 .../API/DeviceManagementAPI.cs | 0 .../WinUSBNet => WinUSBNet}/API/FileAPI.cs | 0 .../API/WinUSBDevice.cs | 0 .../API/WinUSBDeviceAPI.cs | 0 .../DeviceNotifyHook.cs | 16 +- .../HelperClasses/AsyncAutoResetEvent.cs | 111 +++++ WinUSBNet/HelperClasses/Converter.cs | 74 +++ {WPinternals/WinUSBNet => WinUSBNet}/USB.cs | 0 .../WinUSBNet => WinUSBNet}/USBAsyncResult.cs | 0 .../WinUSBNet => WinUSBNet}/USBDevice.cs | 0 .../USBDeviceDescriptor.cs | 0 .../WinUSBNet => WinUSBNet}/USBDeviceInfo.cs | 0 .../WinUSBNet => WinUSBNet}/USBException.cs | 0 .../WinUSBNet => WinUSBNet}/USBInterface.cs | 0 .../USBInterfaceCollection.cs | 0 .../WinUSBNet => WinUSBNet}/USBNotifier.cs | 0 .../WinUSBNet => WinUSBNet}/USBPipe.cs | 12 +- .../USBPipeCollection.cs | 0 .../WinUSBNet => WinUSBNet}/USBPipePolicy.cs | 0 WinUSBNet/WinUSBNet.csproj | 12 + 25 files changed, 659 insertions(+), 15 deletions(-) rename {WPinternals/WinUSBNet => WinUSBNet}/API/APIException.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/API/DeviceDetails.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/API/DeviceManagement.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/API/DeviceManagementAPI.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/API/FileAPI.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/API/WinUSBDevice.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/API/WinUSBDeviceAPI.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/DeviceNotifyHook.cs (88%) create mode 100644 WinUSBNet/HelperClasses/AsyncAutoResetEvent.cs create mode 100644 WinUSBNet/HelperClasses/Converter.cs rename {WPinternals/WinUSBNet => WinUSBNet}/USB.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBAsyncResult.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBDevice.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBDeviceDescriptor.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBDeviceInfo.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBException.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBInterface.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBInterfaceCollection.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBNotifier.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBPipe.cs (96%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBPipeCollection.cs (100%) rename {WPinternals/WinUSBNet => WinUSBNet}/USBPipePolicy.cs (100%) create mode 100644 WinUSBNet/WinUSBNet.csproj 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 + + +