Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / CheckedPointers.cs / 1 / CheckedPointers.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: Checked pointers for various types // // History: // 05/09/2005: [....] 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; } ////// Checked pointer for (GlyphOffset*) /// internal struct CheckedGlyphOffsetPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedGlyphOffsetPointer(GlyphOffset* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(GlyphOffset)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe GlyphOffset * Probe(int offset, int length) { return (GlyphOffset *) _checkedPointer.Probe(offset * sizeof(GlyphOffset), length * sizeof(GlyphOffset)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (GlyphShapingProperties*) /// internal struct CheckedGlyphShapingPropertiesPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedGlyphShapingPropertiesPointer(GlyphShapingProperties* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(GlyphShapingProperties)); } ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedGlyphShapingPropertiesPointer(uint* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(GlyphShapingProperties)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe GlyphShapingProperties * Probe(int offset, int length) { return (GlyphShapingProperties *) _checkedPointer.Probe(offset * sizeof(GlyphShapingProperties), length * sizeof(GlyphShapingProperties)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (CharacterShapingProperties*) /// internal struct CheckedCharacterShapingPropertiesPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedCharacterShapingPropertiesPointer(CharacterShapingProperties* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(CharacterShapingProperties)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe CharacterShapingProperties * Probe(int offset, int length) { return (CharacterShapingProperties *) _checkedPointer.Probe(offset * sizeof(CharacterShapingProperties), length * sizeof(CharacterShapingProperties)); } 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
- XmlTextWriter.cs
- XmlWrappingWriter.cs
- FixUp.cs
- SemaphoreSecurity.cs
- AttributeSetAction.cs
- SynchronizationContext.cs
- OrderPreservingSpoolingTask.cs
- UmAlQuraCalendar.cs
- BinaryFormatter.cs
- ItemCollection.cs
- ComponentManagerBroker.cs
- ConfigPathUtility.cs
- NameSpaceEvent.cs
- TableColumnCollection.cs
- PrivilegeNotHeldException.cs
- PartialToken.cs
- SortFieldComparer.cs
- GlyphInfoList.cs
- ImpersonateTokenRef.cs
- DataConnectionHelper.cs
- SqlUserDefinedAggregateAttribute.cs
- RunInstallerAttribute.cs
- Renderer.cs
- LinearGradientBrush.cs
- ClientReliableChannelBinder.cs
- SystemResources.cs
- MissingFieldException.cs
- sqlpipe.cs
- ConnectionManager.cs
- SMSvcHost.cs
- AssemblyBuilder.cs
- ClientApiGenerator.cs
- PageAsyncTask.cs
- HitTestParameters3D.cs
- ListenerConnectionModeReader.cs
- RequestTimeoutManager.cs
- BaseHashHelper.cs
- Site.cs
- JavaScriptObjectDeserializer.cs
- _BasicClient.cs
- TraceInternal.cs
- GlobalizationAssembly.cs
- InputDevice.cs
- autovalidator.cs
- SetIterators.cs
- FontFamilyConverter.cs
- ObjectKeyFrameCollection.cs
- PersonalizationProviderCollection.cs
- SqlTypeSystemProvider.cs
- SspiHelper.cs
- SymmetricAlgorithm.cs
- XPathNode.cs
- URI.cs
- ZipFileInfo.cs
- XAMLParseException.cs
- OrderedDictionary.cs
- XmlSchemaExporter.cs
- FileRecordSequenceCompletedAsyncResult.cs
- UInt16Storage.cs
- jithelpers.cs
- IgnorePropertiesAttribute.cs
- ManagedWndProcTracker.cs
- WebPartHeaderCloseVerb.cs
- GeometryHitTestParameters.cs
- XmlHelper.cs
- DataSysAttribute.cs
- TableLayoutSettingsTypeConverter.cs
- OleStrCAMarshaler.cs
- ShutDownListener.cs
- CurrentTimeZone.cs
- ImageListDesigner.cs
- SettingsProperty.cs
- mansign.cs
- XmlCharCheckingReader.cs
- CacheOutputQuery.cs
- PersistenceTypeAttribute.cs
- CLSCompliantAttribute.cs
- processwaithandle.cs
- StorageInfo.cs
- TranslateTransform.cs
- QueryOpcode.cs
- TextBlockAutomationPeer.cs
- GlyphsSerializer.cs
- XmlBufferReader.cs
- DesignBindingPropertyDescriptor.cs
- PreviewKeyDownEventArgs.cs
- CodeTypeMember.cs
- followingsibling.cs
- CannotUnloadAppDomainException.cs
- recordstate.cs
- OwnerDrawPropertyBag.cs
- BufferedStream.cs
- MediaTimeline.cs
- AutomationPropertyInfo.cs
- ClientConfigurationHost.cs
- CodeFieldReferenceExpression.cs
- TextEndOfParagraph.cs
- ItemCollection.cs
- Statements.cs
- ExecutorLocksHeldException.cs