internal ForestTrustDomainInformation(int flag, LSA_FOREST_TRUST_DOMAIN_INFO domainInfo, LARGE_INTEGER time) { this.status = (ForestTrustDomainStatus)flag; this.dnsName = Marshal.PtrToStringUni(domainInfo.DNSNameBuffer, domainInfo.DNSNameLength / 2); this.nbName = Marshal.PtrToStringUni(domainInfo.NetBIOSNameBuffer, domainInfo.NetBIOSNameLength / 2); IntPtr intPtr = (IntPtr)0; int stringSidW = UnsafeNativeMethods.ConvertSidToStringSidW(domainInfo.sid, ref intPtr); if (stringSidW != 0) { try { this.sid = Marshal.PtrToStringUni(intPtr); } finally { UnsafeNativeMethods.LocalFree(intPtr); } this.time = time; return; } else { throw ExceptionHelper.GetExceptionFromErrorCode(Marshal.GetLastWin32Error()); } }
internal ForestTrustDomainInformation(int flag, LSA_FOREST_TRUST_DOMAIN_INFO domainInfo, LARGE_INTEGER time) { _status = (ForestTrustDomainStatus)flag; DnsName = Marshal.PtrToStringUni(domainInfo.DNSNameBuffer, domainInfo.DNSNameLength / 2); NetBiosName = Marshal.PtrToStringUni(domainInfo.NetBIOSNameBuffer, domainInfo.NetBIOSNameLength / 2); IntPtr ptr = (IntPtr)0; int result = UnsafeNativeMethods.ConvertSidToStringSidW(domainInfo.sid, ref ptr); if (result == 0) { throw ExceptionHelper.GetExceptionFromErrorCode(Marshal.GetLastWin32Error()); } try { DomainSid = Marshal.PtrToStringUni(ptr) !; } finally { UnsafeNativeMethods.LocalFree(ptr); } this.time = time; }