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
- TransformPattern.cs
- precedingsibling.cs
- MetadataCache.cs
- VectorCollectionConverter.cs
- UpDownBaseDesigner.cs
- TabletDevice.cs
- ParameterModifier.cs
- CompareValidator.cs
- HostingEnvironmentException.cs
- SiteMapProvider.cs
- SiteMapSection.cs
- Publisher.cs
- XmlTextReaderImpl.cs
- updateconfighost.cs
- TextModifierScope.cs
- ToolbarAUtomationPeer.cs
- VoiceObjectToken.cs
- WebBrowserEvent.cs
- RetrieveVirtualItemEventArgs.cs
- JsonUriDataContract.cs
- TransformPattern.cs
- AsymmetricSignatureDeformatter.cs
- SecurityTokenAuthenticator.cs
- MessageBox.cs
- Marshal.cs
- CounterSampleCalculator.cs
- MergeLocalizationDirectives.cs
- HttpHandlersInstallComponent.cs
- GraphicsPath.cs
- XamlBuildTaskServices.cs
- HttpConfigurationContext.cs
- StringAnimationBase.cs
- PartialCachingControl.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- DoubleLinkList.cs
- ArithmeticException.cs
- Baml6ConstructorInfo.cs
- SizeKeyFrameCollection.cs
- XamlSerializer.cs
- CornerRadiusConverter.cs
- BamlCollectionHolder.cs
- DeploymentExceptionMapper.cs
- ScriptingSectionGroup.cs
- FtpRequestCacheValidator.cs
- PathHelper.cs
- RotateTransform.cs
- RegexGroup.cs
- HtmlToClrEventProxy.cs
- StorageEntityTypeMapping.cs
- MailMessageEventArgs.cs
- ITextView.cs
- AnnotationComponentManager.cs
- SyndicationFeed.cs
- FixedSOMContainer.cs
- DrawingContext.cs
- LockRecursionException.cs
- xdrvalidator.cs
- FeatureSupport.cs
- DataFieldEditor.cs
- CodeNamespaceImport.cs
- IndexedDataBuffer.cs
- WorkflowInstanceProxy.cs
- BamlRecordReader.cs
- SystemNetworkInterface.cs
- MatrixValueSerializer.cs
- ServiceContractViewControl.cs
- EasingKeyFrames.cs
- XmlSchemaSimpleTypeRestriction.cs
- CompilerTypeWithParams.cs
- StatusBarItemAutomationPeer.cs
- ObjectPersistData.cs
- DataGridCell.cs
- ConfigUtil.cs
- ToolStripItem.cs
- WebBrowserHelper.cs
- SolidColorBrush.cs
- NotifyCollectionChangedEventArgs.cs
- UrlPath.cs
- XmlHierarchyData.cs
- ProbeMatchesApril2005.cs
- TextTreeTextNode.cs
- GeneralTransform3DCollection.cs
- IntSecurity.cs
- IisTraceListener.cs
- ItemsControl.cs
- ContextBase.cs
- LayoutManager.cs
- DataTrigger.cs
- SqlWebEventProvider.cs
- Assert.cs
- ElapsedEventArgs.cs
- LinkArea.cs
- WebPartVerb.cs
- ImageListStreamer.cs
- ClipboardProcessor.cs
- AppDomainProtocolHandler.cs
- HttpInputStream.cs
- StylusEventArgs.cs
- Attributes.cs
- DecoderExceptionFallback.cs