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
- XamlToRtfParser.cs
- ClientApiGenerator.cs
- SimpleFieldTemplateUserControl.cs
- DynamicDataResources.Designer.cs
- RestHandlerFactory.cs
- LinqDataView.cs
- DataGridRow.cs
- IMembershipProvider.cs
- ColorContextHelper.cs
- TransformDescriptor.cs
- SharingService.cs
- MultiPageTextView.cs
- ProgressBarBrushConverter.cs
- Cursor.cs
- ArithmeticException.cs
- ClassHandlersStore.cs
- DictionaryCustomTypeDescriptor.cs
- CryptoStream.cs
- FormViewDeleteEventArgs.cs
- TextFormatterImp.cs
- EventLogException.cs
- Directory.cs
- XMLSyntaxException.cs
- PointKeyFrameCollection.cs
- GlobalProxySelection.cs
- DesignerDataRelationship.cs
- IfAction.cs
- CreateParams.cs
- CodeMemberEvent.cs
- PasswordPropertyTextAttribute.cs
- DrawingBrush.cs
- AttributeQuery.cs
- AsyncWaitHandle.cs
- DirectoryNotFoundException.cs
- XhtmlStyleClass.cs
- RowBinding.cs
- XappLauncher.cs
- XmlSchemaAttributeGroupRef.cs
- CodeTypeReferenceCollection.cs
- XmlName.cs
- indexingfiltermarshaler.cs
- HitTestParameters.cs
- SafeFindHandle.cs
- RadioButtonList.cs
- ZipArchive.cs
- EntityKey.cs
- COSERVERINFO.cs
- FocusWithinProperty.cs
- KeyValueConfigurationElement.cs
- ExtentCqlBlock.cs
- TerminatorSinks.cs
- AsymmetricAlgorithm.cs
- MdiWindowListItemConverter.cs
- BoundsDrawingContextWalker.cs
- HtmlTableCell.cs
- UpDownEvent.cs
- WebPartCloseVerb.cs
- DocumentPageTextView.cs
- GeneralTransform3DTo2DTo3D.cs
- WorkflowMarkupSerializerMapping.cs
- CustomCategoryAttribute.cs
- TextElementEditingBehaviorAttribute.cs
- FactoryRecord.cs
- DbTransaction.cs
- IndexedEnumerable.cs
- ExpandCollapseProviderWrapper.cs
- ProvidersHelper.cs
- BuildManagerHost.cs
- DeploymentSectionCache.cs
- XmlDesignerDataSourceView.cs
- _ProxyChain.cs
- DataSourceCacheDurationConverter.cs
- MatrixTransform3D.cs
- DateRangeEvent.cs
- Token.cs
- GridToolTip.cs
- MultiView.cs
- SchemaImporterExtension.cs
- Style.cs
- SiteMap.cs
- HandlerBase.cs
- PublisherIdentityPermission.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- returneventsaver.cs
- FunctionDescription.cs
- StringKeyFrameCollection.cs
- SafeRightsManagementPubHandle.cs
- PassportPrincipal.cs
- OwnerDrawPropertyBag.cs
- DocumentViewerBaseAutomationPeer.cs
- Window.cs
- PowerModeChangedEventArgs.cs
- MediaSystem.cs
- GetPageNumberCompletedEventArgs.cs
- MarginCollapsingState.cs
- CollectionExtensions.cs
- ExpressionVisitorHelpers.cs
- TextFormatterImp.cs
- SaveFileDialog.cs
- DbDataAdapter.cs