Clean up ClrFacade.cs - remove ClrFacade.PtrToStructure (#4379)

This commit is contained in:
Dongbo Wang
2017-07-29 22:34:31 -07:00
committed by GitHub
parent 2c43140276
commit 1462ac300b
16 changed files with 62 additions and 76 deletions
@@ -821,7 +821,7 @@ namespace Microsoft.PowerShell.Commands
}
}
var tokenUser = ClrFacade.PtrToStructure<Win32Native.TOKEN_USER>(tokenUserInfo);
var tokenUser = Marshal.PtrToStructure<Win32Native.TOKEN_USER>(tokenUserInfo);
// Set the default length to be 256, so it will be sufficient for most cases
int userNameLength = 256, domainNameLength = 256;
@@ -1053,7 +1053,7 @@ namespace System.Management.Automation.SecurityAccountsManager
lsaHandle = IntPtr.Zero;
domainInfo = ClrFacade.PtrToStructure<POLICY_PRIMARY_DOMAIN_INFO>(pInfo);
domainInfo = Marshal.PtrToStructure<POLICY_PRIMARY_DOMAIN_INFO>(pInfo);
status = SamApi.SamConnect(ref systemName, out samHandle, SamApi.SAM_SERVER_LOOKUP_DOMAIN, ref oa);
ThrowOnFailure(status);
@@ -1173,7 +1173,7 @@ namespace System.Management.Automation.SecurityAccountsManager
{
SAM_RID_ENUMERATION sre;
sre = ClrFacade.PtrToStructure<SAM_RID_ENUMERATION>(buffer);
sre = Marshal.PtrToStructure<SAM_RID_ENUMERATION>(buffer);
SamApi.SamFreeMemory(buffer);
buffer = IntPtr.Zero;
@@ -1605,7 +1605,7 @@ namespace System.Management.Automation.SecurityAccountsManager
USER_INFORMATION_CLASS.UserAllInformation,
out buffer);
ThrowOnFailure(status);
allInfo = ClrFacade.PtrToStructure<USER_ALL_INFORMATION>(buffer);
allInfo = Marshal.PtrToStructure<USER_ALL_INFORMATION>(buffer);
var userSid = RidToSid(sre.domainHandle, sre.RelativeId);
LocalUser user = new LocalUser()
@@ -1676,7 +1676,7 @@ namespace System.Management.Automation.SecurityAccountsManager
USER_INFORMATION_CLASS.UserAllInformation,
out buffer);
ThrowOnFailure(status);
info = ClrFacade.PtrToStructure<USER_ALL_INFORMATION>(buffer);
info = Marshal.PtrToStructure<USER_ALL_INFORMATION>(buffer);
status = SamApi.SamFreeMemory(buffer);
buffer = IntPtr.Zero;
@@ -1836,7 +1836,7 @@ namespace System.Management.Automation.SecurityAccountsManager
{
SAM_RID_ENUMERATION sre;
sre = ClrFacade.PtrToStructure<SAM_RID_ENUMERATION>(buffer);
sre = Marshal.PtrToStructure<SAM_RID_ENUMERATION>(buffer);
SamApi.SamFreeMemory(buffer);
buffer = IntPtr.Zero;
@@ -2061,7 +2061,7 @@ namespace System.Management.Automation.SecurityAccountsManager
ALIAS_INFORMATION_CLASS.AliasGeneralInformation,
out buffer);
ThrowOnFailure(status);
generalInfo = ClrFacade.PtrToStructure<ALIAS_GENERAL_INFORMATION>(buffer);
generalInfo = Marshal.PtrToStructure<ALIAS_GENERAL_INFORMATION>(buffer);
LocalGroup group = new LocalGroup()
{
@@ -2296,7 +2296,7 @@ namespace System.Management.Automation.SecurityAccountsManager
USER_INFORMATION_CLASS.UserLogonInformation,
out buffer);
ThrowOnFailure(status);
info = ClrFacade.PtrToStructure<USER_LOGON_INFORMATION>(buffer);
info = Marshal.PtrToStructure<USER_LOGON_INFORMATION>(buffer);
status = SamApi.SamFreeMemory(buffer);
buffer = IntPtr.Zero;
@@ -2330,7 +2330,7 @@ namespace System.Management.Automation.SecurityAccountsManager
status = SamApi.SamQuerySecurityObject(objectHandle, Win32.DACL_SECURITY_INFORMATION, out securityObject);
ThrowOnFailure(status);
SECURITY_DESCRIPTOR sd = ClrFacade.PtrToStructure<SECURITY_DESCRIPTOR>(securityObject);
SECURITY_DESCRIPTOR sd = Marshal.PtrToStructure<SECURITY_DESCRIPTOR>(securityObject);
bool daclPresent;
bool daclDefaulted;
@@ -2348,7 +2348,7 @@ namespace System.Management.Automation.SecurityAccountsManager
if (daclPresent)
{
ACL acl = ClrFacade.PtrToStructure<ACL>(dacl);
ACL acl = Marshal.PtrToStructure<ACL>(dacl);
if (acl.AclSize != 0)
{
@@ -2544,7 +2544,7 @@ namespace System.Management.Automation.SecurityAccountsManager
USER_INFORMATION_CLASS.UserAllInformation,
out buffer);
ThrowOnFailure(status);
info = ClrFacade.PtrToStructure<USER_ALL_INFORMATION>(buffer);
info = Marshal.PtrToStructure<USER_ALL_INFORMATION>(buffer);
status = SamApi.SamFreeMemory(buffer);
buffer = IntPtr.Zero;
@@ -388,7 +388,7 @@ namespace Microsoft.PowerShell.Commands
return null;
}
NativeMethods.ACL sacl = new NativeMethods.ACL();
sacl = ClrFacade.PtrToStructure<NativeMethods.ACL>(pSacl);
sacl = Marshal.PtrToStructure<NativeMethods.ACL>(pSacl);
if (sacl.AceCount == 0)
{
return null;
@@ -399,7 +399,7 @@ namespace Microsoft.PowerShell.Commands
for (uint aceIdx = 0; aceIdx < sacl.AceCount; aceIdx++)
{
NativeMethods.ACE_HEADER ace = new NativeMethods.ACE_HEADER();
ace = ClrFacade.PtrToStructure<NativeMethods.ACE_HEADER>(pAce);
ace = Marshal.PtrToStructure<NativeMethods.ACE_HEADER>(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 @@ namespace Microsoft.PowerShell.Commands
// Get the CAP name.
NativeMethods.CENTRAL_ACCESS_POLICY cap = new NativeMethods.CENTRAL_ACCESS_POLICY();
cap = ClrFacade.PtrToStructure<NativeMethods.CENTRAL_ACCESS_POLICY>(caps);
cap = Marshal.PtrToStructure<NativeMethods.CENTRAL_ACCESS_POLICY>(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 @@ namespace Microsoft.PowerShell.Commands
// Retrieve CAP name.
Dbg.Diagnostics.Assert(capPtr != IntPtr.Zero,
"Invalid central access policies array");
cap = ClrFacade.PtrToStructure<NativeMethods.CENTRAL_ACCESS_POLICY>(capPtr);
cap = Marshal.PtrToStructure<NativeMethods.CENTRAL_ACCESS_POLICY>(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 @@ namespace Microsoft.PowerShell.Commands
{
Dbg.Diagnostics.Assert(capPtr != IntPtr.Zero,
"Invalid central access policies array");
cap = ClrFacade.PtrToStructure<NativeMethods.CENTRAL_ACCESS_POLICY>(capPtr);
cap = Marshal.PtrToStructure<NativeMethods.CENTRAL_ACCESS_POLICY>(capPtr);
// LSA_UNICODE_STRING is composed of WCHARs, but its length is given in bytes.
string capName = Marshal.PtrToStringUni(
cap.Name.Buffer,
@@ -1609,7 +1609,7 @@ namespace Microsoft.PowerShell.Commands
{
IntPtr hProv = IntPtr.Zero;
Security.NativeMethods.CRYPT_KEY_PROV_INFO keyProvInfo =
ClrFacade.PtrToStructure<Security.NativeMethods.CRYPT_KEY_PROV_INFO>(pProvInfo);
Marshal.PtrToStructure<Security.NativeMethods.CRYPT_KEY_PROV_INFO>(pProvInfo);
IntPtr hWnd = DetectUIHelper.GetOwnerWindow(Host);
@@ -1896,7 +1896,7 @@ namespace Microsoft.PowerShell.Commands
if (sourcePath.Contains("UserDS"))
{
Security.NativeMethods.CERT_CONTEXT context =
ClrFacade.PtrToStructure<Security.NativeMethods.CERT_CONTEXT>(cert.Handle);
Marshal.PtrToStructure<Security.NativeMethods.CERT_CONTEXT>(cert.Handle);
CommitUserDS(context.hCertStore);
}
@@ -1990,7 +1990,7 @@ namespace Microsoft.PowerShell.Commands
if (sourcePath.Contains("UserDS"))
{
Security.NativeMethods.CERT_CONTEXT context = ClrFacade.PtrToStructure<Security.NativeMethods.CERT_CONTEXT>(cert.Handle);
Security.NativeMethods.CERT_CONTEXT context = Marshal.PtrToStructure<Security.NativeMethods.CERT_CONTEXT>(cert.Handle);
CommitUserDS(context.hCertStore);
}
@@ -71,7 +71,7 @@ namespace System.Management.Automation
IntPtr pFuncDesc;
_typeInfo.GetFuncDesc(index, out pFuncDesc);
COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
COM.FUNCDESC funcdesc = Marshal.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
string signature = ComUtil.GetMethodSignatureFromFuncDesc(_typeInfo, funcdesc, false);
result.Add(signature);
@@ -59,7 +59,7 @@ namespace System.Management.Automation
try
{
_typeInfo.GetFuncDesc(GetFuncDescIndex(), out pFuncDesc);
COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
COM.FUNCDESC funcdesc = Marshal.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
if (IsGettable)
{
@@ -347,7 +347,7 @@ namespace System.Management.Automation
try
{
_typeInfo.GetFuncDesc(GetFuncDescIndex(), out pFuncDesc);
COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
COM.FUNCDESC funcdesc = Marshal.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
return ComUtil.GetMethodSignatureFromFuncDesc(_typeInfo, funcdesc, !IsGettable);
}
@@ -199,7 +199,7 @@ namespace System.Management.Automation
{
IntPtr pTypeAttr;
typeinfo.GetTypeAttr(out pTypeAttr);
COM.TYPEATTR typeattr = ClrFacade.PtrToStructure<COM.TYPEATTR>(pTypeAttr);
COM.TYPEATTR typeattr = Marshal.PtrToStructure<COM.TYPEATTR>(pTypeAttr);
typeinfo.ReleaseTypeAttr(pTypeAttr);
return typeattr;
}
@@ -215,7 +215,7 @@ namespace System.Management.Automation
{
IntPtr pFuncDesc;
typeinfo.GetFuncDesc(index, out pFuncDesc);
COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
COM.FUNCDESC funcdesc = Marshal.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
typeinfo.ReleaseFuncDesc(pFuncDesc);
return funcdesc;
}
@@ -73,7 +73,7 @@ namespace System.Management.Automation
}
#pragma warning restore 56515
ElementDescription = ClrFacade.PtrToStructure<COM.ELEMDESC>(ElementDescriptionPointer);
ElementDescription = Marshal.PtrToStructure<COM.ELEMDESC>(ElementDescriptionPointer);
string paramstring = GetStringFromTypeDesc(typeinfo, ElementDescription.tdesc);
@@ -149,13 +149,13 @@ namespace System.Management.Automation
{
if ((VarEnum)typedesc.vt == VarEnum.VT_PTR)
{
COM.TYPEDESC refdesc = ClrFacade.PtrToStructure<COM.TYPEDESC>(typedesc.lpValue);
COM.TYPEDESC refdesc = Marshal.PtrToStructure<COM.TYPEDESC>(typedesc.lpValue);
return GetStringFromTypeDesc(typeinfo, refdesc);
}
if ((VarEnum)typedesc.vt == VarEnum.VT_SAFEARRAY)
{
COM.TYPEDESC refdesc = ClrFacade.PtrToStructure<COM.TYPEDESC>(typedesc.lpValue);
COM.TYPEDESC refdesc = Marshal.PtrToStructure<COM.TYPEDESC>(typedesc.lpValue);
return "SAFEARRAY(" + GetStringFromTypeDesc(typeinfo, refdesc) + ")";
}
@@ -314,7 +314,7 @@ namespace System.Management.Automation
#pragma warning enable 56515
ElementDescription = ClrFacade.PtrToStructure<COM.ELEMDESC>(ElementDescriptionPointer);
ElementDescription = Marshal.PtrToStructure<COM.ELEMDESC>(ElementDescriptionPointer);
//get the type of parameter
Type type = ComUtil.GetTypeFromTypeDesc(ElementDescription.tdesc);
@@ -348,7 +348,7 @@ namespace System.Management.Automation
{
IntPtr pFuncDesc;
typeInfo.GetFuncDesc(index, out pFuncDesc);
COM.FUNCDESC funcdesc = ClrFacade.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
COM.FUNCDESC funcdesc = Marshal.PtrToStructure<COM.FUNCDESC>(pFuncDesc);
returnValue[count++] = ComUtil.GetMethodInformation(funcdesc, skipLastParameters);
typeInfo.ReleaseFuncDesc(pFuncDesc);
}
@@ -4469,8 +4469,7 @@ namespace System.Management.Automation
for (int i = 0; i < numEntries; ++i)
{
IntPtr curInfoPtr = (IntPtr)((long)shBuf + (Marshal.SizeOf<SHARE_INFO_1>() * i));
SHARE_INFO_1 shareInfo = ClrFacade.PtrToStructure<SHARE_INFO_1>(curInfoPtr);
SHARE_INFO_1 shareInfo = Marshal.PtrToStructure<SHARE_INFO_1>(curInfoPtr);
if ((shareInfo.type & STYPE_MASK) != STYPE_DISKTREE)
continue;
@@ -863,7 +863,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManDataStruct resultInternal = ClrFacade.PtrToStructure<WSManDataStruct>(unmanagedData);
WSManDataStruct resultInternal = Marshal.PtrToStructure<WSManDataStruct>(unmanagedData);
result = WSManData_UnToMan.UnMarshal(resultInternal);
}
@@ -1012,7 +1012,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManStreamIDSetStruct resultInternal = ClrFacade.PtrToStructure<WSManStreamIDSetStruct>(unmanagedData);
WSManStreamIDSetStruct resultInternal = Marshal.PtrToStructure<WSManStreamIDSetStruct>(unmanagedData);
result = new WSManStreamIDSet_UnToMan();
string[] idsArray = null;
@@ -1170,7 +1170,7 @@ namespace System.Management.Automation.Remoting.Client
}
else
{
WSManOptionSetStruct resultInternal = ClrFacade.PtrToStructure<WSManOptionSetStruct>(unmanagedData);
WSManOptionSetStruct resultInternal = Marshal.PtrToStructure<WSManOptionSetStruct>(unmanagedData);
return UnMarshal(resultInternal);
}
}
@@ -1193,7 +1193,7 @@ namespace System.Management.Automation.Remoting.Client
for (int i = 0; i < resultInternal.optionsCount; i++)
{
IntPtr p = IntPtr.Add(perElementPtr, (i * sizeInBytes));
tempOptions[i] = ClrFacade.PtrToStructure<WSManOption>(p);
tempOptions[i] = Marshal.PtrToStructure<WSManOption>(p);
}
}
@@ -1293,7 +1293,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManCommandArgSetInternal resultInternal = ClrFacade.PtrToStructure<WSManCommandArgSetInternal>(unmanagedData);
WSManCommandArgSetInternal resultInternal = Marshal.PtrToStructure<WSManCommandArgSetInternal>(unmanagedData);
string[] tempArgs = null;
if (resultInternal.argsCount > 0)
@@ -1476,7 +1476,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManShellStartupInfoStruct resultInternal = ClrFacade.PtrToStructure<WSManShellStartupInfoStruct>(unmanagedData);
WSManShellStartupInfoStruct resultInternal = Marshal.PtrToStructure<WSManShellStartupInfoStruct>(unmanagedData);
result = new WSManShellStartupInfo_UnToMan();
result.inputStreamSet = WSManStreamIDSet_UnToMan.UnMarshal(resultInternal.inputStreamSet);
@@ -1511,7 +1511,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManEnvironmentVariableSetInternal resultInternal = ClrFacade.PtrToStructure<WSManEnvironmentVariableSetInternal>(unmanagedData);
WSManEnvironmentVariableSetInternal resultInternal = Marshal.PtrToStructure<WSManEnvironmentVariableSetInternal>(unmanagedData);
result = new WSManEnvironmentVariableSet();
WSManEnvironmentVariableInternal[] varsArray = null;
@@ -1524,7 +1524,7 @@ namespace System.Management.Automation.Remoting.Client
for (int i = 0; i < resultInternal.varsCount; i++)
{
IntPtr p = IntPtr.Add(perElementPtr, (i * sizeInBytes));
varsArray[i] = ClrFacade.PtrToStructure<WSManEnvironmentVariableInternal>(p);
varsArray[i] = Marshal.PtrToStructure<WSManEnvironmentVariableInternal>(p);
}
}
@@ -1806,7 +1806,7 @@ namespace System.Management.Automation.Remoting.Client
/// </returns>
internal static WSManError UnMarshal(IntPtr unmanagedData)
{
return ClrFacade.PtrToStructure<WSManError>(unmanagedData);
return Marshal.PtrToStructure<WSManError>(unmanagedData);
}
}
@@ -1826,7 +1826,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManCreateShellDataResultInternal resultInternal = ClrFacade.PtrToStructure<WSManCreateShellDataResultInternal>(unmanagedData);
WSManCreateShellDataResultInternal resultInternal = Marshal.PtrToStructure<WSManCreateShellDataResultInternal>(unmanagedData);
string connectData = null;
if (resultInternal.data.textData.textLength > 0)
@@ -1868,7 +1868,7 @@ namespace System.Management.Automation.Remoting.Client
internal static WSManConnectDataResult UnMarshal(IntPtr unmanagedData)
{
WSManConnectDataResultInternal resultInternal = ClrFacade.PtrToStructure<WSManConnectDataResultInternal>(unmanagedData);
WSManConnectDataResultInternal resultInternal = Marshal.PtrToStructure<WSManConnectDataResultInternal>(unmanagedData);
string connectData = null;
if (resultInternal.data.textData.textLength > 0)
@@ -1926,7 +1926,7 @@ namespace System.Management.Automation.Remoting.Client
internal static WSManReceiveDataResult UnMarshal(IntPtr unmanagedData)
{
WSManReceiveDataResultInternal result1 =
ClrFacade.PtrToStructure<WSManReceiveDataResultInternal>(unmanagedData);
Marshal.PtrToStructure<WSManReceiveDataResultInternal>(unmanagedData);
//copy data from unmanaged heap to managed heap.
byte[] dataRecvd = null;
@@ -2036,7 +2036,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManPluginRequestInternal resultInternal = ClrFacade.PtrToStructure<WSManPluginRequestInternal>(unmanagedData);
WSManPluginRequestInternal resultInternal = Marshal.PtrToStructure<WSManPluginRequestInternal>(unmanagedData);
result = new WSManPluginRequest();
result.senderDetails = WSManSenderDetails.UnMarshal(resultInternal.senderDetails);
@@ -2091,7 +2091,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManSenderDetailsInternal resultInternal = ClrFacade.PtrToStructure<WSManSenderDetailsInternal>(unmanagedData);
WSManSenderDetailsInternal resultInternal = Marshal.PtrToStructure<WSManSenderDetailsInternal>(unmanagedData);
result = new WSManSenderDetails();
result.senderName = resultInternal.senderName;
@@ -2141,7 +2141,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManCertificateDetailsInternal resultInternal = ClrFacade.PtrToStructure<WSManCertificateDetailsInternal>(unmanagedData);
WSManCertificateDetailsInternal resultInternal = Marshal.PtrToStructure<WSManCertificateDetailsInternal>(unmanagedData);
result = new WSManCertificateDetails();
result.subject = resultInternal.subject;
@@ -2186,7 +2186,7 @@ namespace System.Management.Automation.Remoting.Client
if (IntPtr.Zero != unmanagedData)
{
WSManOperationInfoInternal resultInternal = ClrFacade.PtrToStructure<WSManOperationInfoInternal>(unmanagedData);
WSManOperationInfoInternal resultInternal = Marshal.PtrToStructure<WSManOperationInfoInternal>(unmanagedData);
result = new WSManOperationInfo();
result.fragment = resultInternal.fragment;
@@ -2257,7 +2257,7 @@ namespace System.Management.Automation.Remoting.Client
for (int i = 0; i < resultInternal.numberKeys; i++)
{
IntPtr p = IntPtr.Add(perElementPtr, (i * sizeInBytes));
tempKeys[i] = ClrFacade.PtrToStructure<WSManKeyStruct>(p);
tempKeys[i] = Marshal.PtrToStructure<WSManKeyStruct>(p);
}
}
@@ -8174,7 +8174,7 @@ namespace Microsoft.PowerShell.Commands
throw new Win32Exception(lastError);
}
REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = ClrFacade.PtrToStructure<REPARSE_DATA_BUFFER_SYMBOLICLINK>(outBuffer);
REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = Marshal.PtrToStructure<REPARSE_DATA_BUFFER_SYMBOLICLINK>(outBuffer);
if (reparseDataBuffer.ReparseTag == IO_REPARSE_TAG_SYMLINK)
linkType = "SymbolicLink";
@@ -8405,7 +8405,7 @@ namespace Microsoft.PowerShell.Commands
}
//Unmarshal to symbolic link to look for tags.
REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = ClrFacade.PtrToStructure<REPARSE_DATA_BUFFER_SYMBOLICLINK>(outBuffer);
REPARSE_DATA_BUFFER_SYMBOLICLINK reparseDataBuffer = Marshal.PtrToStructure<REPARSE_DATA_BUFFER_SYMBOLICLINK>(outBuffer);
if (reparseDataBuffer.ReparseTag != IO_REPARSE_TAG_SYMLINK && reparseDataBuffer.ReparseTag != IO_REPARSE_TAG_MOUNT_POINT)
return null;
@@ -8420,7 +8420,7 @@ namespace Microsoft.PowerShell.Commands
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<REPARSE_DATA_BUFFER_MOUNTPOINT>(outBuffer);
REPARSE_DATA_BUFFER_MOUNTPOINT reparseDataBufferMountPoint = Marshal.PtrToStructure<REPARSE_DATA_BUFFER_MOUNTPOINT>(outBuffer);
targetDir = Encoding.Unicode.GetString(reparseDataBufferMountPoint.PathBuffer, reparseDataBufferMountPoint.SubstituteNameOffset, reparseDataBufferMountPoint.SubstituteNameLength);
}
@@ -8571,7 +8571,7 @@ namespace Microsoft.PowerShell.Commands
throw new Win32Exception(lastError);
}
junctionData = ClrFacade.PtrToStructure<REPARSE_GUID_DATA_BUFFER>(outBuffer);
junctionData = Marshal.PtrToStructure<REPARSE_GUID_DATA_BUFFER>(outBuffer);
junctionData.ReparseDataLength = 0;
junctionData.DataBuffer = new char[MAX_REPARSE_SIZE];
@@ -159,7 +159,7 @@ namespace System.Management.Automation
else
{
NativeMethods.CRYPT_OID_INFO oidInfo =
ClrFacade.PtrToStructure<NativeMethods.CRYPT_OID_INFO>(oidPtr);
Marshal.PtrToStructure<NativeMethods.CRYPT_OID_INFO>(oidPtr);
hashOid = oidInfo.pszOID;
}
@@ -548,7 +548,7 @@ namespace System.Management.Automation
wtdBuffer);
#pragma warning enable 56523
wtData = ClrFacade.PtrToStructure<NativeMethods.WINTRUST_DATA>(wtdBuffer);
wtData = Marshal.PtrToStructure<NativeMethods.WINTRUST_DATA>(wtdBuffer);
}
finally
{
@@ -576,7 +576,7 @@ namespace System.Management.Automation
{
NativeMethods.CRYPT_PROVIDER_CERT provCert =
(NativeMethods.CRYPT_PROVIDER_CERT)
ClrFacade.PtrToStructure<NativeMethods.CRYPT_PROVIDER_CERT>(pCert);
Marshal.PtrToStructure<NativeMethods.CRYPT_PROVIDER_CERT>(pCert);
signerCert = new X509Certificate2(provCert.pCert);
}
@@ -651,7 +651,7 @@ namespace System.Management.Automation
{
NativeMethods.CRYPT_PROVIDER_SGNR provSigner =
(NativeMethods.CRYPT_PROVIDER_SGNR)
ClrFacade.PtrToStructure<NativeMethods.CRYPT_PROVIDER_SGNR>(pProvSigner);
Marshal.PtrToStructure<NativeMethods.CRYPT_PROVIDER_SGNR>(pProvSigner);
if (provSigner.csCounterSigners == 1)
{
//
@@ -95,7 +95,7 @@ namespace System.Management.Automation
int catalogVersion = -1;
IntPtr catalogData = NativeMethods.CryptCATStoreFromHandle(catalogHandle);
NativeMethods.CRYPTCATSTORE catalogInfo = ClrFacade.PtrToStructure<NativeMethods.CRYPTCATSTORE>(catalogData);
NativeMethods.CRYPTCATSTORE catalogInfo = Marshal.PtrToStructure<NativeMethods.CRYPTCATSTORE>(catalogData);
if (catalogInfo.dwPublicVersion == catalogVersion2)
{
@@ -384,7 +384,7 @@ namespace System.Management.Automation
{
string relativePath = string.Empty;
NativeMethods.CRYPTCATATTRIBUTE currentMemberAttr = ClrFacade.PtrToStructure<NativeMethods.CRYPTCATATTRIBUTE>(memberAttrInfo);
NativeMethods.CRYPTCATATTRIBUTE currentMemberAttr = Marshal.PtrToStructure<NativeMethods.CRYPTCATATTRIBUTE>(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 @@ namespace System.Management.Automation
memberInfo = NativeMethods.CryptCATEnumerateMember(resultCatalog, memberInfo);
if (memberInfo != IntPtr.Zero)
{
NativeMethods.CRYPTCATMEMBER currentMember = ClrFacade.PtrToStructure<NativeMethods.CRYPTCATMEMBER>(memberInfo);
NativeMethods.SIP_INDIRECT_DATA pIndirectData = ClrFacade.PtrToStructure<NativeMethods.SIP_INDIRECT_DATA>(currentMember.pIndirectData);
NativeMethods.CRYPTCATMEMBER currentMember = Marshal.PtrToStructure<NativeMethods.CRYPTCATMEMBER>(memberInfo);
NativeMethods.SIP_INDIRECT_DATA pIndirectData = Marshal.PtrToStructure<NativeMethods.SIP_INDIRECT_DATA>(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
@@ -760,7 +760,7 @@ namespace System.Management.Automation.Internal
{
Security.NativeMethods.CERT_ENHKEY_USAGE ekuStruct =
(Security.NativeMethods.CERT_ENHKEY_USAGE)
ClrFacade.PtrToStructure<Security.NativeMethods.CERT_ENHKEY_USAGE>(ekuBuffer);
Marshal.PtrToStructure<Security.NativeMethods.CERT_ENHKEY_USAGE>(ekuBuffer);
IntPtr ep = ekuStruct.rgpszUsageIdentifier;
IntPtr ekuptr;
@@ -1033,7 +1033,7 @@ namespace System.Management.Automation.Security
wtdBuffer);
#pragma warning enable 56523
wtd = ClrFacade.PtrToStructure<WINTRUST_DATA>(wtdBuffer);
wtd = Marshal.PtrToStructure<WINTRUST_DATA>(wtdBuffer);
}
finally
{
@@ -1048,7 +1048,7 @@ namespace System.Management.Automation.Security
if (wtd.dwUnionChoice == (DWORD)WintrustUnionChoice.WTD_CHOICE_BLOB)
{
WINTRUST_BLOB_INFO originalBlob =
(WINTRUST_BLOB_INFO)ClrFacade.PtrToStructure<WINTRUST_BLOB_INFO>(wtd.Choice.pBlob);
(WINTRUST_BLOB_INFO)Marshal.PtrToStructure<WINTRUST_BLOB_INFO>(wtd.Choice.pBlob);
Marshal.FreeCoTaskMem(originalBlob.pbMemObject);
Marshal.DestroyStructure<WINTRUST_BLOB_INFO>(wtd.Choice.pBlob);
@@ -61,19 +61,6 @@ namespace System.Management.Automation
#endregion Process
#region Marshal
/// <summary>
/// Facade for Marshal.PtrToStructure
/// </summary>
internal static T PtrToStructure<T>(IntPtr ptr)
{
// Marshal.PtrToStructure(IntPtr, Type) is obsolete in CoreCLR
return Marshal.PtrToStructure<T>(ptr);
}
#endregion Marshal
#region Assembly
internal static IEnumerable<Assembly> GetAssemblies(TypeResolutionState typeResolutionState, TypeName typeName)