diff --git a/src/Microsoft.PowerShell.Commands.Management/commands/management/Process.cs b/src/Microsoft.PowerShell.Commands.Management/commands/management/Process.cs index a7a24588708..c231e762e92 100644 --- a/src/Microsoft.PowerShell.Commands.Management/commands/management/Process.cs +++ b/src/Microsoft.PowerShell.Commands.Management/commands/management/Process.cs @@ -821,7 +821,7 @@ private static string RetrieveProcessUserName(Process process) } } - var tokenUser = ClrFacade.PtrToStructure(tokenUserInfo); + var tokenUser = Marshal.PtrToStructure(tokenUserInfo); // Set the default length to be 256, so it will be sufficient for most cases int userNameLength = 256, domainNameLength = 256; diff --git a/src/Microsoft.PowerShell.LocalAccounts/LocalAccounts/Sam.cs b/src/Microsoft.PowerShell.LocalAccounts/LocalAccounts/Sam.cs index 044c38efac0..b74184e1685 100644 --- a/src/Microsoft.PowerShell.LocalAccounts/LocalAccounts/Sam.cs +++ b/src/Microsoft.PowerShell.LocalAccounts/LocalAccounts/Sam.cs @@ -1053,7 +1053,7 @@ private void OpenHandles() lsaHandle = IntPtr.Zero; - domainInfo = ClrFacade.PtrToStructure(pInfo); + domainInfo = Marshal.PtrToStructure(pInfo); status = SamApi.SamConnect(ref systemName, out samHandle, SamApi.SAM_SERVER_LOOKUP_DOMAIN, ref oa); ThrowOnFailure(status); @@ -1173,7 +1173,7 @@ private static IEnumerable EnumerateUsersInDomain(IntPtr doma { SAM_RID_ENUMERATION sre; - sre = ClrFacade.PtrToStructure(buffer); + sre = Marshal.PtrToStructure(buffer); SamApi.SamFreeMemory(buffer); buffer = IntPtr.Zero; @@ -1605,7 +1605,7 @@ private LocalUser MakeLocalUserObject(SamRidEnumeration sre, IntPtr userHandle) USER_INFORMATION_CLASS.UserAllInformation, out buffer); ThrowOnFailure(status); - allInfo = ClrFacade.PtrToStructure(buffer); + allInfo = Marshal.PtrToStructure(buffer); var userSid = RidToSid(sre.domainHandle, sre.RelativeId); LocalUser user = new LocalUser() @@ -1676,7 +1676,7 @@ private void EnableUser(SecurityIdentifier sid, Enabling enable) USER_INFORMATION_CLASS.UserAllInformation, out buffer); ThrowOnFailure(status); - info = ClrFacade.PtrToStructure(buffer); + info = Marshal.PtrToStructure(buffer); status = SamApi.SamFreeMemory(buffer); buffer = IntPtr.Zero; @@ -1836,7 +1836,7 @@ private static IEnumerable EnumerateGroupsInDomain(IntPtr dom { SAM_RID_ENUMERATION sre; - sre = ClrFacade.PtrToStructure(buffer); + sre = Marshal.PtrToStructure(buffer); SamApi.SamFreeMemory(buffer); buffer = IntPtr.Zero; @@ -2061,7 +2061,7 @@ private LocalGroup MakeLocalGroupObject(SamRidEnumeration sre, IntPtr aliasHandl ALIAS_INFORMATION_CLASS.AliasGeneralInformation, out buffer); ThrowOnFailure(status); - generalInfo = ClrFacade.PtrToStructure(buffer); + generalInfo = Marshal.PtrToStructure(buffer); LocalGroup group = new LocalGroup() { @@ -2296,7 +2296,7 @@ private UInt32 GetUserAccountControl(IntPtr userHandle) USER_INFORMATION_CLASS.UserLogonInformation, out buffer); ThrowOnFailure(status); - info = ClrFacade.PtrToStructure(buffer); + info = Marshal.PtrToStructure(buffer); status = SamApi.SamFreeMemory(buffer); buffer = IntPtr.Zero; @@ -2330,7 +2330,7 @@ private RawAcl GetSamDacl(IntPtr objectHandle) status = SamApi.SamQuerySecurityObject(objectHandle, Win32.DACL_SECURITY_INFORMATION, out securityObject); ThrowOnFailure(status); - SECURITY_DESCRIPTOR sd = ClrFacade.PtrToStructure(securityObject); + SECURITY_DESCRIPTOR sd = Marshal.PtrToStructure(securityObject); bool daclPresent; bool daclDefaulted; @@ -2348,7 +2348,7 @@ private RawAcl GetSamDacl(IntPtr objectHandle) if (daclPresent) { - ACL acl = ClrFacade.PtrToStructure(dacl); + ACL acl = Marshal.PtrToStructure(dacl); if (acl.AclSize != 0) { @@ -2544,7 +2544,7 @@ private bool IsPasswordExpired(IntPtr userHandle) USER_INFORMATION_CLASS.UserAllInformation, out buffer); ThrowOnFailure(status); - info = ClrFacade.PtrToStructure(buffer); + info = Marshal.PtrToStructure(buffer); status = SamApi.SamFreeMemory(buffer); buffer = IntPtr.Zero; diff --git a/src/Microsoft.PowerShell.Security/security/AclCommands.cs b/src/Microsoft.PowerShell.Security/security/AclCommands.cs index 876c5ed89cc..fd93a869517 100644 --- a/src/Microsoft.PowerShell.Security/security/AclCommands.cs +++ b/src/Microsoft.PowerShell.Security/security/AclCommands.cs @@ -388,7 +388,7 @@ public static SecurityIdentifier GetCentralAccessPolicyId(PSObject instance) return null; } NativeMethods.ACL sacl = new NativeMethods.ACL(); - sacl = ClrFacade.PtrToStructure(pSacl); + sacl = Marshal.PtrToStructure(pSacl); if (sacl.AceCount == 0) { return null; @@ -399,7 +399,7 @@ public static SecurityIdentifier GetCentralAccessPolicyId(PSObject instance) for (uint aceIdx = 0; aceIdx < sacl.AceCount; aceIdx++) { NativeMethods.ACE_HEADER ace = new NativeMethods.ACE_HEADER(); - ace = ClrFacade.PtrToStructure(pAce); + ace = Marshal.PtrToStructure(pAce); Dbg.Diagnostics.Assert(ace.AceType == NativeMethods.SYSTEM_SCOPED_POLICY_ID_ACE_TYPE, "Unexpected ACE type: " + ace.AceType.ToString(CultureInfo.CurrentCulture)); @@ -474,7 +474,7 @@ public static string GetCentralAccessPolicyName(PSObject instance) // Get the CAP name. NativeMethods.CENTRAL_ACCESS_POLICY cap = new NativeMethods.CENTRAL_ACCESS_POLICY(); - cap = ClrFacade.PtrToStructure(caps); + cap = Marshal.PtrToStructure(caps); // LSA_UNICODE_STRING is composed of WCHARs, but its length is given in bytes. return Marshal.PtrToStringUni(cap.Name.Buffer, cap.Name.Length / 2); } @@ -532,7 +532,7 @@ public static string[] GetAllCentralAccessPolicies(PSObject instance) // Retrieve CAP name. Dbg.Diagnostics.Assert(capPtr != IntPtr.Zero, "Invalid central access policies array"); - cap = ClrFacade.PtrToStructure(capPtr); + cap = Marshal.PtrToStructure(capPtr); // LSA_UNICODE_STRING is composed of WCHARs, but its length is given in bytes. policies[capIdx] = "\"" + Marshal.PtrToStringUni( cap.Name.Buffer, @@ -1145,7 +1145,7 @@ private IntPtr GetSaclWithCapId(string capStr) { Dbg.Diagnostics.Assert(capPtr != IntPtr.Zero, "Invalid central access policies array"); - cap = ClrFacade.PtrToStructure(capPtr); + cap = Marshal.PtrToStructure(capPtr); // LSA_UNICODE_STRING is composed of WCHARs, but its length is given in bytes. string capName = Marshal.PtrToStringUni( cap.Name.Buffer, diff --git a/src/Microsoft.PowerShell.Security/security/CertificateProvider.cs b/src/Microsoft.PowerShell.Security/security/CertificateProvider.cs index dc84f9a3b4b..360a336b2a4 100644 --- a/src/Microsoft.PowerShell.Security/security/CertificateProvider.cs +++ b/src/Microsoft.PowerShell.Security/security/CertificateProvider.cs @@ -1609,7 +1609,7 @@ private void DoDeleteKey(IntPtr pProvInfo) { IntPtr hProv = IntPtr.Zero; Security.NativeMethods.CRYPT_KEY_PROV_INFO keyProvInfo = - ClrFacade.PtrToStructure(pProvInfo); + Marshal.PtrToStructure(pProvInfo); IntPtr hWnd = DetectUIHelper.GetOwnerWindow(Host); @@ -1896,7 +1896,7 @@ private void DoRemove(X509Certificate2 cert, bool fDeleteKey, bool fMachine, str if (sourcePath.Contains("UserDS")) { Security.NativeMethods.CERT_CONTEXT context = - ClrFacade.PtrToStructure(cert.Handle); + Marshal.PtrToStructure(cert.Handle); CommitUserDS(context.hCertStore); } @@ -1990,7 +1990,7 @@ private void DoMove(string destination, X509Certificate2 cert, X509NativeStore s if (sourcePath.Contains("UserDS")) { - Security.NativeMethods.CERT_CONTEXT context = ClrFacade.PtrToStructure(cert.Handle); + Security.NativeMethods.CERT_CONTEXT context = Marshal.PtrToStructure(cert.Handle); CommitUserDS(context.hCertStore); } diff --git a/src/System.Management.Automation/engine/COM/ComMethod.cs b/src/System.Management.Automation/engine/COM/ComMethod.cs index 651e9e0b4e7..ec09a0e83ba 100644 --- a/src/System.Management.Automation/engine/COM/ComMethod.cs +++ b/src/System.Management.Automation/engine/COM/ComMethod.cs @@ -71,7 +71,7 @@ internal Collection MethodDefinitions() IntPtr pFuncDesc; _typeInfo.GetFuncDesc(index, out pFuncDesc); - COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure(pFuncDesc); + COM.FUNCDESC funcdesc = Marshal.PtrToStructure(pFuncDesc); string signature = ComUtil.GetMethodSignatureFromFuncDesc(_typeInfo, funcdesc, false); result.Add(signature); diff --git a/src/System.Management.Automation/engine/COM/ComProperty.cs b/src/System.Management.Automation/engine/COM/ComProperty.cs index 0466e50285e..e018d395ade 100644 --- a/src/System.Management.Automation/engine/COM/ComProperty.cs +++ b/src/System.Management.Automation/engine/COM/ComProperty.cs @@ -59,7 +59,7 @@ internal Type Type try { _typeInfo.GetFuncDesc(GetFuncDescIndex(), out pFuncDesc); - COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure(pFuncDesc); + COM.FUNCDESC funcdesc = Marshal.PtrToStructure(pFuncDesc); if (IsGettable) { @@ -347,7 +347,7 @@ internal string GetDefinition() try { _typeInfo.GetFuncDesc(GetFuncDescIndex(), out pFuncDesc); - COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure(pFuncDesc); + COM.FUNCDESC funcdesc = Marshal.PtrToStructure(pFuncDesc); return ComUtil.GetMethodSignatureFromFuncDesc(_typeInfo, funcdesc, !IsGettable); } diff --git a/src/System.Management.Automation/engine/COM/ComTypeInfo.cs b/src/System.Management.Automation/engine/COM/ComTypeInfo.cs index 3bcd5d8dd9e..28a881c458e 100644 --- a/src/System.Management.Automation/engine/COM/ComTypeInfo.cs +++ b/src/System.Management.Automation/engine/COM/ComTypeInfo.cs @@ -199,7 +199,7 @@ internal static COM.TYPEATTR GetTypeAttr(COM.ITypeInfo typeinfo) { IntPtr pTypeAttr; typeinfo.GetTypeAttr(out pTypeAttr); - COM.TYPEATTR typeattr = ClrFacade.PtrToStructure(pTypeAttr); + COM.TYPEATTR typeattr = Marshal.PtrToStructure(pTypeAttr); typeinfo.ReleaseTypeAttr(pTypeAttr); return typeattr; } @@ -215,7 +215,7 @@ internal static COM.FUNCDESC GetFuncDesc(COM.ITypeInfo typeinfo, int index) { IntPtr pFuncDesc; typeinfo.GetFuncDesc(index, out pFuncDesc); - COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure(pFuncDesc); + COM.FUNCDESC funcdesc = Marshal.PtrToStructure(pFuncDesc); typeinfo.ReleaseFuncDesc(pFuncDesc); return funcdesc; } diff --git a/src/System.Management.Automation/engine/COM/ComUtil.cs b/src/System.Management.Automation/engine/COM/ComUtil.cs index 0fe5841ce28..9f30fd47ef6 100644 --- a/src/System.Management.Automation/engine/COM/ComUtil.cs +++ b/src/System.Management.Automation/engine/COM/ComUtil.cs @@ -73,7 +73,7 @@ internal static string GetMethodSignatureFromFuncDesc(COM.ITypeInfo typeinfo, CO } #pragma warning restore 56515 - ElementDescription = ClrFacade.PtrToStructure(ElementDescriptionPointer); + ElementDescription = Marshal.PtrToStructure(ElementDescriptionPointer); string paramstring = GetStringFromTypeDesc(typeinfo, ElementDescription.tdesc); @@ -149,13 +149,13 @@ private static string GetStringFromTypeDesc(COM.ITypeInfo typeinfo, COM.TYPEDESC { if ((VarEnum)typedesc.vt == VarEnum.VT_PTR) { - COM.TYPEDESC refdesc = ClrFacade.PtrToStructure(typedesc.lpValue); + COM.TYPEDESC refdesc = Marshal.PtrToStructure(typedesc.lpValue); return GetStringFromTypeDesc(typeinfo, refdesc); } if ((VarEnum)typedesc.vt == VarEnum.VT_SAFEARRAY) { - COM.TYPEDESC refdesc = ClrFacade.PtrToStructure(typedesc.lpValue); + COM.TYPEDESC refdesc = Marshal.PtrToStructure(typedesc.lpValue); return "SAFEARRAY(" + GetStringFromTypeDesc(typeinfo, refdesc) + ")"; } @@ -314,7 +314,7 @@ internal static ParameterInformation[] GetParameterInformation(COM.FUNCDESC func #pragma warning enable 56515 - ElementDescription = ClrFacade.PtrToStructure(ElementDescriptionPointer); + ElementDescription = Marshal.PtrToStructure(ElementDescriptionPointer); //get the type of parameter Type type = ComUtil.GetTypeFromTypeDesc(ElementDescription.tdesc); @@ -348,7 +348,7 @@ internal static ComMethodInformation[] GetMethodInformationArray(COM.ITypeInfo t { IntPtr pFuncDesc; typeInfo.GetFuncDesc(index, out pFuncDesc); - COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure(pFuncDesc); + COM.FUNCDESC funcdesc = Marshal.PtrToStructure(pFuncDesc); returnValue[count++] = ComUtil.GetMethodInformation(funcdesc, skipLastParameters); typeInfo.ReleaseFuncDesc(pFuncDesc); } diff --git a/src/System.Management.Automation/engine/CommandCompletion/CompletionCompleters.cs b/src/System.Management.Automation/engine/CommandCompletion/CompletionCompleters.cs index fb6e8913699..7dbafb4d09d 100644 --- a/src/System.Management.Automation/engine/CommandCompletion/CompletionCompleters.cs +++ b/src/System.Management.Automation/engine/CommandCompletion/CompletionCompleters.cs @@ -4469,8 +4469,7 @@ internal static List GetFileShares(string machine, bool ignoreHidden) for (int i = 0; i < numEntries; ++i) { IntPtr curInfoPtr = (IntPtr)((long)shBuf + (Marshal.SizeOf() * i)); - SHARE_INFO_1 shareInfo = ClrFacade.PtrToStructure(curInfoPtr); - + SHARE_INFO_1 shareInfo = Marshal.PtrToStructure(curInfoPtr); if ((shareInfo.type & STYPE_MASK) != STYPE_DISKTREE) continue; diff --git a/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs b/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs index 44fda4966e0..8238277877f 100644 --- a/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs +++ b/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs @@ -863,7 +863,7 @@ internal static WSManData_UnToMan UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManDataStruct resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManDataStruct resultInternal = Marshal.PtrToStructure(unmanagedData); result = WSManData_UnToMan.UnMarshal(resultInternal); } @@ -1012,7 +1012,7 @@ internal static WSManStreamIDSet_UnToMan UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManStreamIDSetStruct resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManStreamIDSetStruct resultInternal = Marshal.PtrToStructure(unmanagedData); result = new WSManStreamIDSet_UnToMan(); string[] idsArray = null; @@ -1170,7 +1170,7 @@ internal static WSManOptionSet UnMarshal(IntPtr unmanagedData) } else { - WSManOptionSetStruct resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManOptionSetStruct resultInternal = Marshal.PtrToStructure(unmanagedData); return UnMarshal(resultInternal); } } @@ -1193,7 +1193,7 @@ internal static WSManOptionSet UnMarshal(WSManOptionSetStruct resultInternal) for (int i = 0; i < resultInternal.optionsCount; i++) { IntPtr p = IntPtr.Add(perElementPtr, (i * sizeInBytes)); - tempOptions[i] = ClrFacade.PtrToStructure(p); + tempOptions[i] = Marshal.PtrToStructure(p); } } @@ -1293,7 +1293,7 @@ internal static WSManCommandArgSet UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManCommandArgSetInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManCommandArgSetInternal resultInternal = Marshal.PtrToStructure(unmanagedData); string[] tempArgs = null; if (resultInternal.argsCount > 0) @@ -1476,7 +1476,7 @@ internal static WSManShellStartupInfo_UnToMan UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManShellStartupInfoStruct resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManShellStartupInfoStruct resultInternal = Marshal.PtrToStructure(unmanagedData); result = new WSManShellStartupInfo_UnToMan(); result.inputStreamSet = WSManStreamIDSet_UnToMan.UnMarshal(resultInternal.inputStreamSet); @@ -1511,7 +1511,7 @@ internal static WSManEnvironmentVariableSet UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManEnvironmentVariableSetInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManEnvironmentVariableSetInternal resultInternal = Marshal.PtrToStructure(unmanagedData); result = new WSManEnvironmentVariableSet(); WSManEnvironmentVariableInternal[] varsArray = null; @@ -1524,7 +1524,7 @@ internal static WSManEnvironmentVariableSet UnMarshal(IntPtr unmanagedData) for (int i = 0; i < resultInternal.varsCount; i++) { IntPtr p = IntPtr.Add(perElementPtr, (i * sizeInBytes)); - varsArray[i] = ClrFacade.PtrToStructure(p); + varsArray[i] = Marshal.PtrToStructure(p); } } @@ -1806,7 +1806,7 @@ internal struct WSManError /// internal static WSManError UnMarshal(IntPtr unmanagedData) { - return ClrFacade.PtrToStructure(unmanagedData); + return Marshal.PtrToStructure(unmanagedData); } } @@ -1826,7 +1826,7 @@ internal static WSManCreateShellDataResult UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManCreateShellDataResultInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManCreateShellDataResultInternal resultInternal = Marshal.PtrToStructure(unmanagedData); string connectData = null; if (resultInternal.data.textData.textLength > 0) @@ -1868,7 +1868,7 @@ private struct WSManConnectDataResultInternal internal static WSManConnectDataResult UnMarshal(IntPtr unmanagedData) { - WSManConnectDataResultInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManConnectDataResultInternal resultInternal = Marshal.PtrToStructure(unmanagedData); string connectData = null; if (resultInternal.data.textData.textLength > 0) @@ -1926,7 +1926,7 @@ internal class WSManReceiveDataResult internal static WSManReceiveDataResult UnMarshal(IntPtr unmanagedData) { WSManReceiveDataResultInternal result1 = - ClrFacade.PtrToStructure(unmanagedData); + Marshal.PtrToStructure(unmanagedData); //copy data from unmanaged heap to managed heap. byte[] dataRecvd = null; @@ -2036,7 +2036,7 @@ internal static WSManPluginRequest UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManPluginRequestInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManPluginRequestInternal resultInternal = Marshal.PtrToStructure(unmanagedData); result = new WSManPluginRequest(); result.senderDetails = WSManSenderDetails.UnMarshal(resultInternal.senderDetails); @@ -2091,7 +2091,7 @@ internal static WSManSenderDetails UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManSenderDetailsInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManSenderDetailsInternal resultInternal = Marshal.PtrToStructure(unmanagedData); result = new WSManSenderDetails(); result.senderName = resultInternal.senderName; @@ -2141,7 +2141,7 @@ internal static WSManCertificateDetails UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManCertificateDetailsInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManCertificateDetailsInternal resultInternal = Marshal.PtrToStructure(unmanagedData); result = new WSManCertificateDetails(); result.subject = resultInternal.subject; @@ -2186,7 +2186,7 @@ internal static WSManOperationInfo UnMarshal(IntPtr unmanagedData) if (IntPtr.Zero != unmanagedData) { - WSManOperationInfoInternal resultInternal = ClrFacade.PtrToStructure(unmanagedData); + WSManOperationInfoInternal resultInternal = Marshal.PtrToStructure(unmanagedData); result = new WSManOperationInfo(); result.fragment = resultInternal.fragment; @@ -2257,7 +2257,7 @@ internal static WSManSelectorSet UnMarshal(WSManSelectorSetStruct resultInternal for (int i = 0; i < resultInternal.numberKeys; i++) { IntPtr p = IntPtr.Add(perElementPtr, (i * sizeInBytes)); - tempKeys[i] = ClrFacade.PtrToStructure(p); + tempKeys[i] = Marshal.PtrToStructure(p); } } diff --git a/src/System.Management.Automation/namespaces/FileSystemProvider.cs b/src/System.Management.Automation/namespaces/FileSystemProvider.cs index 83509bb4b8a..7205120bdd1 100644 --- a/src/System.Management.Automation/namespaces/FileSystemProvider.cs +++ b/src/System.Management.Automation/namespaces/FileSystemProvider.cs @@ -8174,7 +8174,7 @@ private static string WinInternalGetLinkType(string filePath) throw new Win32Exception(lastError); } - REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = ClrFacade.PtrToStructure(outBuffer); + REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = Marshal.PtrToStructure(outBuffer); if (reparseDataBuffer.ReparseTag == IO_REPARSE_TAG_SYMLINK) linkType = "SymbolicLink"; @@ -8405,7 +8405,7 @@ private static string WinInternalGetTarget(SafeFileHandle handle) } //Unmarshal to symbolic link to look for tags. - REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = ClrFacade.PtrToStructure(outBuffer); + REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = Marshal.PtrToStructure(outBuffer); if (reparseDataBuffer.ReparseTag != IO_REPARSE_TAG_SYMLINK && reparseDataBuffer.ReparseTag != IO_REPARSE_TAG_MOUNT_POINT) return null; @@ -8420,7 +8420,7 @@ private static string WinInternalGetTarget(SafeFileHandle handle) if (reparseDataBuffer.ReparseTag == IO_REPARSE_TAG_MOUNT_POINT) { //Since this is a junction we need to unmarshal to the correct structure. - REPARSE_DATA_BUFFER_MOUNTPOINT reparseDataBufferMountPoint = ClrFacade.PtrToStructure(outBuffer); + REPARSE_DATA_BUFFER_MOUNTPOINT reparseDataBufferMountPoint = Marshal.PtrToStructure(outBuffer); targetDir = Encoding.Unicode.GetString(reparseDataBufferMountPoint.PathBuffer, reparseDataBufferMountPoint.SubstituteNameOffset, reparseDataBufferMountPoint.SubstituteNameLength); } @@ -8571,7 +8571,7 @@ internal static bool DeleteJunction(string junctionPath) throw new Win32Exception(lastError); } - junctionData = ClrFacade.PtrToStructure(outBuffer); + junctionData = Marshal.PtrToStructure(outBuffer); junctionData.ReparseDataLength = 0; junctionData.DataBuffer = new char[MAX_REPARSE_SIZE]; diff --git a/src/System.Management.Automation/security/Authenticode.cs b/src/System.Management.Automation/security/Authenticode.cs index c90cd1013aa..d79aad4b0f9 100644 --- a/src/System.Management.Automation/security/Authenticode.cs +++ b/src/System.Management.Automation/security/Authenticode.cs @@ -159,7 +159,7 @@ internal static Signature SignFile(SigningOption option, else { NativeMethods.CRYPT_OID_INFO oidInfo = - ClrFacade.PtrToStructure(oidPtr); + Marshal.PtrToStructure(oidPtr); hashOid = oidInfo.pszOID; } @@ -548,7 +548,7 @@ private static DWORD GetWinTrustData(string fileName, string fileContent, wtdBuffer); #pragma warning enable 56523 - wtData = ClrFacade.PtrToStructure(wtdBuffer); + wtData = Marshal.PtrToStructure(wtdBuffer); } finally { @@ -576,7 +576,7 @@ private static X509Certificate2 GetCertFromChain(IntPtr pSigner) { NativeMethods.CRYPT_PROVIDER_CERT provCert = (NativeMethods.CRYPT_PROVIDER_CERT) - ClrFacade.PtrToStructure(pCert); + Marshal.PtrToStructure(pCert); signerCert = new X509Certificate2(provCert.pCert); } @@ -651,7 +651,7 @@ private static bool TryGetProviderSigner(IntPtr wvtStateData, out IntPtr pProvSi { NativeMethods.CRYPT_PROVIDER_SGNR provSigner = (NativeMethods.CRYPT_PROVIDER_SGNR) - ClrFacade.PtrToStructure(pProvSigner); + Marshal.PtrToStructure(pProvSigner); if (provSigner.csCounterSigners == 1) { // diff --git a/src/System.Management.Automation/security/CatalogHelper.cs b/src/System.Management.Automation/security/CatalogHelper.cs index f2391b4196f..ed1f6277c2b 100644 --- a/src/System.Management.Automation/security/CatalogHelper.cs +++ b/src/System.Management.Automation/security/CatalogHelper.cs @@ -95,7 +95,7 @@ private static int GetCatalogVersion(IntPtr catalogHandle) int catalogVersion = -1; IntPtr catalogData = NativeMethods.CryptCATStoreFromHandle(catalogHandle); - NativeMethods.CRYPTCATSTORE catalogInfo = ClrFacade.PtrToStructure(catalogData); + NativeMethods.CRYPTCATSTORE catalogInfo = Marshal.PtrToStructure(catalogData); if (catalogInfo.dwPublicVersion == catalogVersion2) { @@ -384,7 +384,7 @@ internal static string ProcessFilePathAttributeInCatalog(IntPtr memberAttrInfo) { string relativePath = string.Empty; - NativeMethods.CRYPTCATATTRIBUTE currentMemberAttr = ClrFacade.PtrToStructure(memberAttrInfo); + NativeMethods.CRYPTCATATTRIBUTE currentMemberAttr = Marshal.PtrToStructure(memberAttrInfo); // check if this is the attribute we are looking for // catalog generated other way not using New-FileCatalog can have attributes we don't understand @@ -524,8 +524,8 @@ internal static Dictionary GetHashesFromCatalog(string catalogFi memberInfo = NativeMethods.CryptCATEnumerateMember(resultCatalog, memberInfo); if (memberInfo != IntPtr.Zero) { - NativeMethods.CRYPTCATMEMBER currentMember = ClrFacade.PtrToStructure(memberInfo); - NativeMethods.SIP_INDIRECT_DATA pIndirectData = ClrFacade.PtrToStructure(currentMember.pIndirectData); + NativeMethods.CRYPTCATMEMBER currentMember = Marshal.PtrToStructure(memberInfo); + NativeMethods.SIP_INDIRECT_DATA pIndirectData = Marshal.PtrToStructure(currentMember.pIndirectData); // For Catalog version 2 CryptoAPI puts hashes of file attributes(relative path in our case) in Catalog as well // We validate those along with file hashes so we are skipping duplicate entries diff --git a/src/System.Management.Automation/security/SecuritySupport.cs b/src/System.Management.Automation/security/SecuritySupport.cs index d42557b23c1..ba737881b9d 100644 --- a/src/System.Management.Automation/security/SecuritySupport.cs +++ b/src/System.Management.Automation/security/SecuritySupport.cs @@ -760,7 +760,7 @@ internal static Collection GetCertEKU(X509Certificate2 cert) { Security.NativeMethods.CERT_ENHKEY_USAGE ekuStruct = (Security.NativeMethods.CERT_ENHKEY_USAGE) - ClrFacade.PtrToStructure(ekuBuffer); + Marshal.PtrToStructure(ekuBuffer); IntPtr ep = ekuStruct.rgpszUsageIdentifier; IntPtr ekuptr; diff --git a/src/System.Management.Automation/security/nativeMethods.cs b/src/System.Management.Automation/security/nativeMethods.cs index b19a9021bed..e1465e8fdec 100644 --- a/src/System.Management.Automation/security/nativeMethods.cs +++ b/src/System.Management.Automation/security/nativeMethods.cs @@ -1033,7 +1033,7 @@ internal static DWORD DestroyWintrustDataStruct(WINTRUST_DATA wtd) wtdBuffer); #pragma warning enable 56523 - wtd = ClrFacade.PtrToStructure(wtdBuffer); + wtd = Marshal.PtrToStructure(wtdBuffer); } finally { @@ -1048,7 +1048,7 @@ internal static DWORD DestroyWintrustDataStruct(WINTRUST_DATA wtd) if (wtd.dwUnionChoice == (DWORD)WintrustUnionChoice.WTD_CHOICE_BLOB) { WINTRUST_BLOB_INFO originalBlob = - (WINTRUST_BLOB_INFO)ClrFacade.PtrToStructure(wtd.Choice.pBlob); + (WINTRUST_BLOB_INFO)Marshal.PtrToStructure(wtd.Choice.pBlob); Marshal.FreeCoTaskMem(originalBlob.pbMemObject); Marshal.DestroyStructure(wtd.Choice.pBlob); diff --git a/src/System.Management.Automation/utils/ClrFacade.cs b/src/System.Management.Automation/utils/ClrFacade.cs index fe09820dc75..69058bfa373 100644 --- a/src/System.Management.Automation/utils/ClrFacade.cs +++ b/src/System.Management.Automation/utils/ClrFacade.cs @@ -61,19 +61,6 @@ internal static SafeHandle GetSafeProcessHandle(Process process) #endregion Process - #region Marshal - - /// - /// Facade for Marshal.PtrToStructure - /// - internal static T PtrToStructure(IntPtr ptr) - { - // Marshal.PtrToStructure(IntPtr, Type) is obsolete in CoreCLR - return Marshal.PtrToStructure(ptr); - } - - #endregion Marshal - #region Assembly internal static IEnumerable GetAssemblies(TypeResolutionState typeResolutionState, TypeName typeName)