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
- PropertySourceInfo.cs
- BaseDataList.cs
- DesignOnlyAttribute.cs
- InputScopeNameConverter.cs
- TemplatePropertyEntry.cs
- ProjectionPathBuilder.cs
- streamingZipPartStream.cs
- RelationshipNavigation.cs
- StateWorkerRequest.cs
- PropertyGeneratedEventArgs.cs
- HighlightVisual.cs
- SafeTimerHandle.cs
- DictionaryMarkupSerializer.cs
- SafeNativeMethods.cs
- ConsoleKeyInfo.cs
- CompareInfo.cs
- ResourceContainerWrapper.cs
- WebConfigurationHostFileChange.cs
- UnSafeCharBuffer.cs
- MonitorWrapper.cs
- ImageCodecInfoPrivate.cs
- ReceiveMessageContent.cs
- Token.cs
- StrongNameIdentityPermission.cs
- XmlSerializerFactory.cs
- DataGridViewRowCancelEventArgs.cs
- ClientRoleProvider.cs
- CodeMemberProperty.cs
- TextView.cs
- XmlNamespaceDeclarationsAttribute.cs
- TabPage.cs
- SymmetricAlgorithm.cs
- PaperSize.cs
- MdImport.cs
- WorkflowMarkupElementEventArgs.cs
- EditingCommands.cs
- mediaeventshelper.cs
- NullableLongSumAggregationOperator.cs
- XmlAttributeAttribute.cs
- Asn1IntegerConverter.cs
- TypeExtensionConverter.cs
- _LocalDataStoreMgr.cs
- Group.cs
- TraceFilter.cs
- FlowLayout.cs
- DataGridViewRowCollection.cs
- PathData.cs
- StrongNameIdentityPermission.cs
- CommandTreeTypeHelper.cs
- ProxyAttribute.cs
- DataObjectAttribute.cs
- TextTreeDeleteContentUndoUnit.cs
- ActivityExecutionContextCollection.cs
- SystemWebExtensionsSectionGroup.cs
- EncryptedPackageFilter.cs
- StateDesigner.Layouts.cs
- Rect3DConverter.cs
- NavigationProperty.cs
- HtmlUtf8RawTextWriter.cs
- XmlDataCollection.cs
- CompatibleIComparer.cs
- XPathCompileException.cs
- HttpHandlerAction.cs
- AppModelKnownContentFactory.cs
- TableColumnCollection.cs
- XmlDocumentFragment.cs
- StringBuilder.cs
- _SpnDictionary.cs
- ByeMessageCD1.cs
- Button.cs
- IconHelper.cs
- MetadataReference.cs
- SoapFormatExtensions.cs
- KeyConstraint.cs
- GlyphsSerializer.cs
- BrowserDefinitionCollection.cs
- DesignerView.cs
- FactoryRecord.cs
- ImageAnimator.cs
- StringFunctions.cs
- FontFamily.cs
- PropertyOverridesDialog.cs
- CodeAssignStatement.cs
- AdvancedBindingEditor.cs
- WsdlBuildProvider.cs
- Int32Collection.cs
- Style.cs
- safesecurityhelperavalon.cs
- DSASignatureDeformatter.cs
- HGlobalSafeHandle.cs
- HttpsHostedTransportConfiguration.cs
- GridViewHeaderRowPresenter.cs
- BooleanAnimationUsingKeyFrames.cs
- ConsoleTraceListener.cs
- CompilerScope.Storage.cs
- PathFigure.cs
- PropertyIDSet.cs
- DataGridViewColumnCollection.cs
- ObjectFullSpanRewriter.cs
- GridViewUpdatedEventArgs.cs