Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / CheckedPointers.cs / 1305600 / CheckedPointers.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: Checked pointers for various types // // History: // 05/09/2005: Garyyang Created the file // //--------------------------------------------------------------------------- using System; using System.Security; using MS.Internal.Shaping; using MS.Internal.FontCache; // // The file contains wrapper structs for various pointer types. // This is to allow us passing these pointers safely in layout code and provides // some bound checking. Only construction and probing into these pointers are security critical. // namespace MS.Internal { ////// Checked pointer for (Char*) /// internal struct CheckedCharPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedCharPointer(char * pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(char)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe char * Probe(int offset, int length) { return (char*) _checkedPointer.Probe(offset * sizeof(char), length * sizeof(char)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (int*) /// internal struct CheckedIntPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedIntPointer(int * pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(int)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe int * Probe(int offset, int length) { return (int *) _checkedPointer.Probe(offset * sizeof(int), length * sizeof(int)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (ushort*) /// internal struct CheckedUShortPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedUShortPointer(ushort * pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(ushort)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe ushort * Probe(int offset, int length) { return (ushort *) _checkedPointer.Probe(offset * sizeof(ushort), length * sizeof(ushort)); } private CheckedPointer _checkedPointer; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HtmlEmptyTagControlBuilder.cs
- NameValueCache.cs
- SystemColors.cs
- Subtree.cs
- Rss20ItemFormatter.cs
- Memoizer.cs
- VerticalAlignConverter.cs
- Line.cs
- IPEndPoint.cs
- _SslSessionsCache.cs
- SEHException.cs
- BufferedWebEventProvider.cs
- ScriptResourceHandler.cs
- InvalidCastException.cs
- ArgumentOutOfRangeException.cs
- IdnMapping.cs
- SynchronizedPool.cs
- ExtensionQuery.cs
- OdbcException.cs
- MouseWheelEventArgs.cs
- XmlNodeReader.cs
- LocalBuilder.cs
- WebServiceData.cs
- HostExecutionContextManager.cs
- DataKeyCollection.cs
- InfiniteTimeSpanConverter.cs
- AppSettingsSection.cs
- UnmanagedBitmapWrapper.cs
- OptimizerPatterns.cs
- ThaiBuddhistCalendar.cs
- ThicknessConverter.cs
- DependencyPropertyConverter.cs
- LinqDataSourceSelectEventArgs.cs
- DataPagerFieldCollection.cs
- GenerateScriptTypeAttribute.cs
- InstanceDataCollection.cs
- Regex.cs
- TextLine.cs
- GridViewSelectEventArgs.cs
- RectangleHotSpot.cs
- CapabilitiesPattern.cs
- SqlNotificationEventArgs.cs
- VisualStyleElement.cs
- _BufferOffsetSize.cs
- ToolStripGripRenderEventArgs.cs
- ParagraphResult.cs
- ByValueEqualityComparer.cs
- AlternateViewCollection.cs
- XslTransform.cs
- ToggleButton.cs
- WebMessageEncodingElement.cs
- ValueUtilsSmi.cs
- ValueTable.cs
- SafeEventLogWriteHandle.cs
- Underline.cs
- RequiredAttributeAttribute.cs
- WinFormsSpinner.cs
- ToolTip.cs
- XPathQilFactory.cs
- CodeGenerationManager.cs
- FieldTemplateFactory.cs
- RequestCacheValidator.cs
- XPathNodeIterator.cs
- RequestSecurityTokenResponse.cs
- ParameterBuilder.cs
- PagesSection.cs
- ButtonStandardAdapter.cs
- DataBinding.cs
- TargetInvocationException.cs
- RelationalExpressions.cs
- DataPagerFieldCommandEventArgs.cs
- XamlParser.cs
- BuildProvider.cs
- TextBlock.cs
- PenCursorManager.cs
- HashStream.cs
- ListItemCollection.cs
- TextWriterTraceListener.cs
- GPRECT.cs
- TableAutomationPeer.cs
- TagPrefixCollection.cs
- WebPartEditVerb.cs
- baseshape.cs
- ASCIIEncoding.cs
- DuplicateWaitObjectException.cs
- DispatchChannelSink.cs
- ConfigurationCollectionAttribute.cs
- MappedMetaModel.cs
- HandleCollector.cs
- UnmanagedMemoryStream.cs
- DataGridViewSelectedRowCollection.cs
- HttpVersion.cs
- InfoCardBaseException.cs
- ErrorStyle.cs
- BasicHttpBindingCollectionElement.cs
- FaultException.cs
- DataTablePropertyDescriptor.cs
- SqlProcedureAttribute.cs
- WebSysDisplayNameAttribute.cs
- PointCollection.cs