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
- Attributes.cs
- ListViewItem.cs
- HttpWriter.cs
- GcHandle.cs
- RadioButtonStandardAdapter.cs
- IsolatedStorageException.cs
- URLString.cs
- NavigationFailedEventArgs.cs
- Line.cs
- HelpInfo.cs
- MsmqDecodeHelper.cs
- CommentEmitter.cs
- WMIGenerator.cs
- SimpleColumnProvider.cs
- CreateSequence.cs
- ReturnType.cs
- XmlAutoDetectWriter.cs
- PackageRelationship.cs
- Switch.cs
- SchemaImporterExtensionElement.cs
- Size3DConverter.cs
- SmtpReplyReader.cs
- ExpressionBinding.cs
- Cursor.cs
- ObjectManager.cs
- EventSetter.cs
- ZipIOLocalFileDataDescriptor.cs
- QueryInterceptorAttribute.cs
- SessionStateUtil.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- PersonalizationStateInfoCollection.cs
- Mapping.cs
- TransformedBitmap.cs
- Binding.cs
- _LocalDataStore.cs
- HttpConfigurationContext.cs
- SqlGenericUtil.cs
- WindowsFormsSectionHandler.cs
- ReadOnlyMetadataCollection.cs
- ReachPrintTicketSerializer.cs
- LocalValueEnumerator.cs
- versioninfo.cs
- IgnoreSectionHandler.cs
- HitTestWithPointDrawingContextWalker.cs
- SourceItem.cs
- PageAsyncTask.cs
- EntityDataSourceMemberPath.cs
- ImageListUtils.cs
- HealthMonitoringSectionHelper.cs
- SplashScreenNativeMethods.cs
- DesignerAttribute.cs
- WebPartDisplayModeCancelEventArgs.cs
- SimpleHandlerBuildProvider.cs
- SerializableAttribute.cs
- ReliabilityContractAttribute.cs
- PerformanceCounterPermissionEntry.cs
- XsltException.cs
- StandardBindingOptionalReliableSessionElement.cs
- MonitorWrapper.cs
- SimpleParser.cs
- RadioButtonBaseAdapter.cs
- PageSettings.cs
- InvokeWebServiceDesigner.cs
- DataGridViewAddColumnDialog.cs
- XmlDesignerDataSourceView.cs
- MenuStrip.cs
- LZCodec.cs
- TypeReference.cs
- LayoutEditorPart.cs
- Utils.cs
- HttpListenerRequest.cs
- SignedPkcs7.cs
- DateTimeValueSerializer.cs
- MenuItemCollection.cs
- UnsignedPublishLicense.cs
- TakeQueryOptionExpression.cs
- LinkDesigner.cs
- ExpressionNode.cs
- Journaling.cs
- DataViewManager.cs
- TextSpan.cs
- DrawingBrush.cs
- PrintPreviewGraphics.cs
- WindowsStatusBar.cs
- DirectionalLight.cs
- ItemMap.cs
- SecurityAppliedMessage.cs
- DataSourceIDConverter.cs
- XslException.cs
- SchemaElementLookUpTable.cs
- PointValueSerializer.cs
- SafeArrayRankMismatchException.cs
- GeometryModel3D.cs
- LicenseException.cs
- DiscreteKeyFrames.cs
- DiscoveryClientChannelFactory.cs
- EventLogEntry.cs
- SchemaTypeEmitter.cs
- MethodExpr.cs
- Decimal.cs