From 5f94bffeff62f4b767a311a4505d6d40d86279d9 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Thu, 9 Mar 2023 13:54:27 +0000 Subject: [PATCH] Replace `SafeLocalAllocHandle` in `System.Diagnostics.PerformanceCounter` (#82456) * Replace `SafeLocalAllocHandle` in `Diagnostics.PerformanceCounter` * Update SharedPerformanceCounter.cs * Update System.Diagnostics.PerformanceCounter.csproj --- ...tringSecurityDescriptorToSecurityDescriptor.cs | 6 +++--- .../Kernel32/Interop.SECURITY_ATTRIBUTES.cs | 2 +- .../IO/FileSystem.DirectoryCreation.Windows.cs | 2 +- .../System.Diagnostics.PerformanceCounter.csproj | 2 -- .../Diagnostics/SharedPerformanceCounter.cs | 15 ++++++++++----- .../src/System/IO/FileSystemAclExtensions.cs | 2 +- .../src/System/IO/Pipes/PipeStream.Windows.cs | 2 +- .../src/System/IO/FileSystem.Windows.cs | 2 +- .../src/System/Threading/EventWaitHandleAcl.cs | 2 +- .../src/System/Threading/MutexAcl.cs | 2 +- .../src/System/Threading/SemaphoreAcl.cs | 2 +- 11 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.ConvertStringSecurityDescriptorToSecurityDescriptor.cs b/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.ConvertStringSecurityDescriptorToSecurityDescriptor.cs index 120fc0e89caff6..f16510718dd6e0 100644 --- a/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.ConvertStringSecurityDescriptorToSecurityDescriptor.cs +++ b/src/libraries/Common/src/Interop/Windows/Advapi32/Interop.ConvertStringSecurityDescriptorToSecurityDescriptor.cs @@ -11,10 +11,10 @@ internal static partial class Advapi32 { [LibraryImport(Interop.Libraries.Advapi32, EntryPoint = "ConvertStringSecurityDescriptorToSecurityDescriptorW", SetLastError = true, StringMarshalling = StringMarshalling.Utf16)] [return: MarshalAs(UnmanagedType.Bool)] - internal static partial bool ConvertStringSecurityDescriptorToSecurityDescriptor( + internal static unsafe partial bool ConvertStringSecurityDescriptorToSecurityDescriptor( string StringSecurityDescriptor, int StringSDRevision, - out SafeLocalAllocHandle pSecurityDescriptor, - IntPtr SecurityDescriptorSize); + out void* pSecurityDescriptor, + uint* SecurityDescriptorSize); } } diff --git a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.SECURITY_ATTRIBUTES.cs b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.SECURITY_ATTRIBUTES.cs index 3849f88d85886f..f390490f3a5848 100644 --- a/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.SECURITY_ATTRIBUTES.cs +++ b/src/libraries/Common/src/Interop/Windows/Kernel32/Interop.SECURITY_ATTRIBUTES.cs @@ -12,7 +12,7 @@ internal static partial class Kernel32 internal struct SECURITY_ATTRIBUTES { internal uint nLength; - internal IntPtr lpSecurityDescriptor; + internal unsafe void* lpSecurityDescriptor; internal BOOL bInheritHandle; } } diff --git a/src/libraries/Common/src/System/IO/FileSystem.DirectoryCreation.Windows.cs b/src/libraries/Common/src/System/IO/FileSystem.DirectoryCreation.Windows.cs index 5962bb702d3472..dbce84a8676ed6 100644 --- a/src/libraries/Common/src/System/IO/FileSystem.DirectoryCreation.Windows.cs +++ b/src/libraries/Common/src/System/IO/FileSystem.DirectoryCreation.Windows.cs @@ -80,7 +80,7 @@ public static unsafe void CreateDirectory(string fullPath, byte[]? securityDescr Interop.Kernel32.SECURITY_ATTRIBUTES secAttrs = new Interop.Kernel32.SECURITY_ATTRIBUTES { nLength = (uint)sizeof(Interop.Kernel32.SECURITY_ATTRIBUTES), - lpSecurityDescriptor = (IntPtr)pSecurityDescriptor + lpSecurityDescriptor = pSecurityDescriptor }; while (stackDir.Count > 0) diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj index c3677d6ed38615..abda27a9d20888 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +++ b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj @@ -119,8 +119,6 @@ System.Diagnostics.PerformanceCounter Link="Common\Interop\Windows\Pdh\Interop.PdhFormatFromRawValue.cs" /> -