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" />
-