public StackSnapshotsBufferSegment( IntPtr nativeSegmentObjectPtr, IntPtr segmentBufferStartAddress, uint segmentByteCount, uint snapshotsCount, DateTimeOffset timeRangeStart, DateTimeOffset timeRangeEnd) { if (nativeSegmentObjectPtr == IntPtr.Zero) { throw new ArgumentNullException($"{nameof(nativeSegmentObjectPtr)}"); } if (segmentBufferStartAddress == IntPtr.Zero) { throw new ArgumentNullException($"{nameof(segmentBufferStartAddress)}"); } if (timeRangeStart > timeRangeEnd) { throw new ArgumentException($"Time range start" + $" ({nameof(timeRangeStart)}={Format.AsReadablePreciseUnconverted(timeRangeStart)})" + $" may not come after the time range end" + $" ({nameof(timeRangeEnd)}={Format.AsReadablePreciseUnconverted(timeRangeEnd)})."); } _nativeSegmentObjectPtr = nativeSegmentObjectPtr; SegmentBufferStartAddress = segmentBufferStartAddress; SegmentByteCount = segmentByteCount; SnapshotsCount = snapshotsCount; TimeRangeStart = timeRangeStart; TimeRangeEnd = timeRangeEnd; }