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
- WebControlAdapter.cs
- StylusDevice.cs
- _Win32.cs
- TrackingCondition.cs
- EpmTargetTree.cs
- XamlClipboardData.cs
- SqlProfileProvider.cs
- BooleanSwitch.cs
- MouseButton.cs
- Mappings.cs
- figurelength.cs
- TranslateTransform.cs
- BooleanAnimationBase.cs
- IxmlLineInfo.cs
- TagPrefixCollection.cs
- StateMachineSubscriptionManager.cs
- LocalizationCodeDomSerializer.cs
- DataGridViewColumnHeaderCell.cs
- RegexBoyerMoore.cs
- WorkflowStateRollbackService.cs
- ElapsedEventArgs.cs
- ToolboxItemWrapper.cs
- CacheVirtualItemsEvent.cs
- AnimationStorage.cs
- Oci.cs
- XPathParser.cs
- WebControl.cs
- ReturnEventArgs.cs
- SafeLocalMemHandle.cs
- EvidenceTypeDescriptor.cs
- XmlArrayItemAttribute.cs
- XmlConvert.cs
- PolicyImporterElement.cs
- ThreadAbortException.cs
- XmlDocumentType.cs
- ValidatedMobileControlConverter.cs
- SafeNativeMethodsMilCoreApi.cs
- UnmanagedHandle.cs
- SecurityKeyIdentifierClause.cs
- OutputCacheSection.cs
- WebServiceFault.cs
- RayHitTestParameters.cs
- BrowserCapabilitiesCodeGenerator.cs
- File.cs
- TreeViewCancelEvent.cs
- CodeArrayIndexerExpression.cs
- RegexInterpreter.cs
- ActiveXHelper.cs
- GridItemPattern.cs
- ObjectMemberMapping.cs
- MetaModel.cs
- StringConcat.cs
- DesignerFrame.cs
- DrawingGroup.cs
- ObjectListGeneralPage.cs
- WebBrowserContainer.cs
- OdbcEnvironment.cs
- ThreadStartException.cs
- WebBrowsableAttribute.cs
- ResolvedKeyFrameEntry.cs
- RoutedEventConverter.cs
- ExceptionUtil.cs
- TableLayoutSettingsTypeConverter.cs
- WmlMobileTextWriter.cs
- FixedTextPointer.cs
- ObjectDataSource.cs
- ObjectReaderCompiler.cs
- WebResponse.cs
- HtmlHistory.cs
- AssociatedControlConverter.cs
- ServiceReference.cs
- cookieexception.cs
- Stylus.cs
- X509Chain.cs
- XmlHierarchicalEnumerable.cs
- SoapHttpTransportImporter.cs
- CollectionConverter.cs
- SafeWaitHandle.cs
- TemplateNameScope.cs
- ProfileService.cs
- EncoderBestFitFallback.cs
- MultipartContentParser.cs
- GridViewEditEventArgs.cs
- SliderAutomationPeer.cs
- TextRangeAdaptor.cs
- UIElement3D.cs
- XmlEntityReference.cs
- SelectorItemAutomationPeer.cs
- OleDbErrorCollection.cs
- SelectedGridItemChangedEvent.cs
- ExpressionVisitorHelpers.cs
- HyperLinkDataBindingHandler.cs
- HttpInputStream.cs
- Table.cs
- CommandEventArgs.cs
- ObjectItemNoOpAssemblyLoader.cs
- PropertyHelper.cs
- XmlSecureResolver.cs
- DeferredSelectedIndexReference.cs
- ClientType.cs