mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Clean up ClrFacade.cs - remove ClrFacade.PtrToStructure (#4379)
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user