private static CDC_DC_STATUS_INFO MarshalCdcDcStatusInfo(IntPtr dcNativeStatus) { CDC_DC_STATUS_INFO result = (CDC_DC_STATUS_INFO)Marshal.PtrToStructure( dcNativeStatus, typeof(CDC_DC_STATUS_INFO)); return(result); }
public void CdcGetDCStatus( string pwszDCName, string pwszDomainName, out CDC_DC_STATUS_INFO dcStatus, out VMAFD_HEARTBEAT_STATUS hbStatus ) { string siteName = string.Empty; IntPtr dcNativeStatus = IntPtr.Zero; IntPtr hbHbStatus = IntPtr.Zero; try { UInt32 error = Adaptor.CdcGetDCStatusInfoA( this.session.ServerContext, pwszDCName, pwszDomainName, out dcNativeStatus, out hbHbStatus); if (error != 0) { throw new VmAfdException(error); } dcStatus = MarshalCdcDcStatusInfo(dcNativeStatus); hbStatus = MarshalHeartbeatStatus(hbHbStatus); } finally { if (dcNativeStatus != IntPtr.Zero) { Adaptor.CdcFreeDCStatusInfoA(dcNativeStatus); } if (hbHbStatus != IntPtr.Zero) { Adaptor.VmAfdFreeHeartbeatStatusA(hbHbStatus); } } }