internal void CreateFinitePage(PageBreakRecord breakRecord) { this.OnBeforeFormatPage(true, false); if (TracePageFormatting.IsEnabled) { TracePageFormatting.Trace(TraceEventType.Start, TracePageFormatting.FormatPage, this.PageContext, this.PtsContext); } IntPtr pfsBRPageStart = (breakRecord != null) ? breakRecord.BreakRecord : IntPtr.Zero; PTS.FSFMTR fsfmtr; IntPtr value; IntPtr zero; int num = PTS.FsCreatePageFinite(this.PtsContext.Context, pfsBRPageStart, this._section.Handle, out fsfmtr, out value, out zero); if (num != 0) { this._ptsPage.Value = IntPtr.Zero; zero = IntPtr.Zero; PTS.ValidateAndTrace(num, this.PtsContext); } else { this._ptsPage.Value = value; } if (zero != IntPtr.Zero) { StructuralCache structuralCache = this._section.StructuralCache; if (structuralCache != null) { this._breakRecord = new PageBreakRecord(this.PtsContext, new SecurityCriticalDataForSet <IntPtr>(zero), (breakRecord != null) ? (breakRecord.PageNumber + 1) : 1); } } if (TracePageFormatting.IsEnabled) { TracePageFormatting.Trace(TraceEventType.Stop, TracePageFormatting.FormatPage, this.PageContext, this.PtsContext); } this.OnAfterFormatPage(true, false); }