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
- ViewGenerator.cs
- DataGridItemEventArgs.cs
- JoinElimination.cs
- StorageModelBuildProvider.cs
- DbProviderFactoriesConfigurationHandler.cs
- FileLoadException.cs
- DbConnectionStringCommon.cs
- SortFieldComparer.cs
- ObjectView.cs
- NativeObjectSecurity.cs
- ComponentCommands.cs
- CompilationLock.cs
- DataGridViewUtilities.cs
- GeometryDrawing.cs
- SortFieldComparer.cs
- SharedStatics.cs
- TrackingServices.cs
- RowVisual.cs
- CryptoStream.cs
- keycontainerpermission.cs
- HtmlElementCollection.cs
- HttpCapabilitiesSectionHandler.cs
- MarkupCompilePass2.cs
- CodePageEncoding.cs
- PinProtectionHelper.cs
- XmlNodeReader.cs
- SharedHttpTransportManager.cs
- ResourcesBuildProvider.cs
- ProgramNode.cs
- ItemsPanelTemplate.cs
- MasterPageBuildProvider.cs
- StateMachineWorkflowInstance.cs
- TextEditorParagraphs.cs
- xsdvalidator.cs
- PrintEvent.cs
- XmlReflectionMember.cs
- ProviderCollection.cs
- RubberbandSelector.cs
- ReferencedCollectionType.cs
- wgx_commands.cs
- SqlProviderManifest.cs
- RelationshipEndMember.cs
- ButtonBaseAdapter.cs
- HtmlTableRowCollection.cs
- WorkflowValidationFailedException.cs
- SectionRecord.cs
- MobileFormsAuthentication.cs
- IPEndPoint.cs
- ImageMetadata.cs
- DropShadowEffect.cs
- WebServiceBindingAttribute.cs
- Exceptions.cs
- StatusStrip.cs
- ToolTipAutomationPeer.cs
- DatePickerAutomationPeer.cs
- NameNode.cs
- HotCommands.cs
- NameValueCollection.cs
- EntityKey.cs
- ApplicationContext.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- CultureTable.cs
- PropertiesTab.cs
- XmlCharType.cs
- PageMediaType.cs
- ModelUIElement3D.cs
- UnsafeNativeMethodsTablet.cs
- WindowsStatusBar.cs
- TimeoutTimer.cs
- HttpModule.cs
- wmiprovider.cs
- ArrayList.cs
- Context.cs
- PlainXmlSerializer.cs
- ClientRuntimeConfig.cs
- RightsManagementManager.cs
- IisTraceWebEventProvider.cs
- TimeIntervalCollection.cs
- StrokeSerializer.cs
- BoundingRectTracker.cs
- VerticalAlignConverter.cs
- RegexNode.cs
- RawContentTypeMapper.cs
- UpdateCompiler.cs
- BindingOperations.cs
- AppearanceEditorPart.cs
- ReferencedType.cs
- TickBar.cs
- StringDictionaryWithComparer.cs
- HelpInfo.cs
- NamespaceEmitter.cs
- AccessibilityHelperForVista.cs
- HtmlInputReset.cs
- IPCCacheManager.cs
- Automation.cs
- DesignerCategoryAttribute.cs
- GlyphCollection.cs
- PriorityBinding.cs
- NavigationService.cs
- TokenBasedSetEnumerator.cs