Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- SynchronizedChannelCollection.cs
- HtmlFormWrapper.cs
- LogicalExpr.cs
- AdapterUtil.cs
- TextTreeInsertElementUndoUnit.cs
- Thickness.cs
- CodeMethodReturnStatement.cs
- ValidationError.cs
- Calendar.cs
- UrlPropertyAttribute.cs
- IdentityManager.cs
- GlyphRunDrawing.cs
- JavaScriptObjectDeserializer.cs
- EntitySetDataBindingList.cs
- RuntimeEnvironment.cs
- StandardOleMarshalObject.cs
- SettingsContext.cs
- NetworkInformationPermission.cs
- DataTablePropertyDescriptor.cs
- ReservationCollection.cs
- InstalledFontCollection.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- InputManager.cs
- ViewBox.cs
- MetadataItemEmitter.cs
- TextWriter.cs
- Camera.cs
- ExtensionFile.cs
- StrokeFIndices.cs
- DefaultMemberAttribute.cs
- QuestionEventArgs.cs
- InputLangChangeEvent.cs
- CryptoKeySecurity.cs
- ControlAdapter.cs
- ApplicationInfo.cs
- ThumbAutomationPeer.cs
- RegexRunner.cs
- CorrelationManager.cs
- WriteTimeStream.cs
- PersonalizableTypeEntry.cs
- MetadataSerializer.cs
- BeginSelectCardRequest.cs
- PropVariant.cs
- PolyBezierSegmentFigureLogic.cs
- SystemResources.cs
- CompositeCollectionView.cs
- TableAdapterManagerHelper.cs
- BlockUIContainer.cs
- TextSpan.cs
- ListViewCancelEventArgs.cs
- ConstraintEnumerator.cs
- ColumnHeaderConverter.cs
- DataGridViewRowCancelEventArgs.cs
- ViewStateChangedEventArgs.cs
- ObjectRef.cs
- ExpressionCopier.cs
- XmlSchemaDatatype.cs
- Debug.cs
- DataGridTableCollection.cs
- SafePipeHandle.cs
- GuidelineSet.cs
- TextChange.cs
- PageWrapper.cs
- DetailsViewInsertEventArgs.cs
- PropertyIDSet.cs
- XdrBuilder.cs
- OracleEncoding.cs
- DesignTimeSiteMapProvider.cs
- WindowsToolbar.cs
- OrthographicCamera.cs
- RootNamespaceAttribute.cs
- IntSecurity.cs
- Bezier.cs
- SQLBoolean.cs
- ObjectDataSourceEventArgs.cs
- SerializationInfo.cs
- ExpressionPrefixAttribute.cs
- DirectionalLight.cs
- XmlAttributes.cs
- HttpCookie.cs
- Zone.cs
- ValueProviderWrapper.cs
- VisualBasicDesignerHelper.cs
- Win32SafeHandles.cs
- DelegatedStream.cs
- RectangleGeometry.cs
- SyndicationFeed.cs
- MenuItem.cs
- ValidationEventArgs.cs
- ErrorRuntimeConfig.cs
- DBNull.cs
- BitmapEffectInput.cs
- CallbackValidatorAttribute.cs
- HMACMD5.cs
- MulticastOption.cs
- EncoderFallback.cs
- ItemMap.cs
- ViewKeyConstraint.cs
- ImageSourceConverter.cs
- ViewBox.cs