77 references to MarshalMode
Microsoft.Interop.LibraryImportGenerator (19)
Analyzers\CustomMarshallerAttributeAnalyzer.cs (19)
28public const string MarshalModeKey = nameof(MarshalMode); 30public static ImmutableDictionary<string, string> CreateDiagnosticPropertiesForMissingMembersDiagnostic(MarshalMode mode, params string[] missingMemberNames) 33public static ImmutableDictionary<string, string> CreateDiagnosticPropertiesForMissingMembersDiagnostic(MarshalMode mode, IEnumerable<string> missingMemberNames) 690|| !Enum.IsDefined(typeof(MarshalMode), (MarshalMode)marshalMode)) 700(MarshalMode)marshalMode, 708private void AnalyzeMarshallerType(DiagnosticReporter diagnosticReporter, ITypeSymbol managedType, MarshalMode mode, INamedTypeSymbol marshallerType, bool isLinearCollectionMarshaller) 724private void AnalyzeStatelessMarshallerType(DiagnosticReporter diagnosticReporter, ITypeSymbol managedType, MarshalMode mode, INamedTypeSymbol marshallerType, bool isLinearCollectionMarshaller) 747if (shape.HasFlag(MarshallerShape.CallerAllocatedBuffer) && mode == MarshalMode.ManagedToUnmanagedIn) 762if (!(shape.HasFlag(MarshallerShape.ToUnmanaged) || (mode == MarshalMode.ManagedToUnmanagedIn && shape.HasFlag(MarshallerShape.CallerAllocatedBuffer)))) 973private static DiagnosticReporter AdaptReporterForMarshalMode(DiagnosticReporter trackingReporter, MarshalMode mode) 975if (mode == MarshalMode.Default) 990MissingMemberNames.CreateDiagnosticPropertiesForMissingMembersDiagnostic(MarshalMode.ManagedToUnmanagedIn, ShapeMemberNames.BufferSize), 1008private void AnalyzeStatefulMarshallerType(DiagnosticReporter diagnosticReporter, ITypeSymbol managedType, MarshalMode mode, INamedTypeSymbol marshallerType, bool isLinearCollectionMarshaller) 1011if (mode is MarshalMode.ElementIn 1012or MarshalMode.ElementRef 1013or MarshalMode.ElementOut) 1041if (shape.HasFlag(MarshallerShape.CallerAllocatedBuffer) && mode == MarshalMode.ManagedToUnmanagedIn) 1056if (!(shape.HasFlag(MarshallerShape.ToUnmanaged) || (mode == MarshalMode.ManagedToUnmanagedIn && shape.HasFlag(MarshallerShape.CallerAllocatedBuffer))))
Microsoft.Interop.SourceGeneration (58)
ManualTypeMarshallingHelper.cs (40)
25ImmutableDictionary<MarshalMode, CustomTypeMarshallerData> Modes) 38foreach (KeyValuePair<MarshalMode, CustomTypeMarshallerData> mode in Modes) 45public CustomTypeMarshallerData GetModeOrDefault(MarshalMode mode) 51if (Modes.TryGetValue(MarshalMode.Default, out data)) 58public bool TryGetModeOrDefault(MarshalMode mode, out CustomTypeMarshallerData data) 63return Modes.TryGetValue(MarshalMode.Default, out data); 66public bool IsDefinedOrDefault(MarshalMode mode) 68return Modes.ContainsKey(mode) || Modes.ContainsKey(MarshalMode.Default); 163Dictionary<MarshalMode, CustomTypeMarshallerData> modes = new(); 204var marshalMode = (MarshalMode)attr.ConstructorArguments[1].Value!; 406MarshalMode mode, 423public static bool ModeUsesManagedToUnmanagedShape(MarshalMode mode) 424=> mode is MarshalMode.Default 425or MarshalMode.ManagedToUnmanagedIn 426or MarshalMode.ElementIn 427or MarshalMode.UnmanagedToManagedOut 428or MarshalMode.ElementOut 429or MarshalMode.ManagedToUnmanagedRef 430or MarshalMode.UnmanagedToManagedRef 431or MarshalMode.ElementRef; 433public static bool ModeUsesUnmanagedToManagedShape(MarshalMode mode) 434=> mode is MarshalMode.Default 435or MarshalMode.ManagedToUnmanagedOut 436or MarshalMode.ElementOut 437or MarshalMode.UnmanagedToManagedIn 438or MarshalMode.ElementIn 439or MarshalMode.ManagedToUnmanagedRef 440or MarshalMode.UnmanagedToManagedRef 441or MarshalMode.ElementRef; 447private static bool ModeOptionallyMatchesShape(MarshalMode mode) 448=> mode is MarshalMode.Default 449or MarshalMode.ElementIn 450or MarshalMode.ElementRef 451or MarshalMode.ElementOut; 453private static CustomTypeMarshallerData? GetStatelessMarshallerDataForType(ITypeSymbol marshallerType, MarshalMode mode, ITypeSymbol managedType, bool isLinearCollectionMarshaller, Compilation compilation, Func<ITypeSymbol, MarshallingInfo>? getMarshallingInfo) 549MarshalMode mode, 562if (mode != MarshalMode.Default && !shape.HasFlag(MarshallerShape.CallerAllocatedBuffer) && !shape.HasFlag(MarshallerShape.ToUnmanaged)) 580if (mode != MarshalMode.Default && !shape.HasFlag(MarshallerShape.GuaranteedUnmarshal) && !shape.HasFlag(MarshallerShape.ToManaged)) 596if (mode != MarshalMode.Default && ModeUsesManagedToUnmanagedShape(mode) && ModeUsesUnmanagedToManagedShape(mode) && !shape.HasFlag(MarshallerShape.ToUnmanaged))
Marshalling\AttributedMarshallingModelGeneratorResolver.cs (3)
17MarshalMode ManagedToUnmanagedMode, 18MarshalMode BidirectionalMode, 19MarshalMode UnmanagedToManagedMode,
Marshalling\DefaultMarshallingGeneratorResolver.cs (9)
49MarshalMode.ElementIn, 50MarshalMode.ElementRef, 51MarshalMode.ElementOut, 64? MarshalMode.ManagedToUnmanagedIn 65: MarshalMode.UnmanagedToManagedOut, 67? MarshalMode.ManagedToUnmanagedRef 68: MarshalMode.UnmanagedToManagedRef, 70? MarshalMode.ManagedToUnmanagedOut 71: MarshalMode.UnmanagedToManagedIn,
MarshallingAttributeInfo.cs (3)
143foreach (KeyValuePair<MarshalMode, CustomTypeMarshallerData> mode in Marshallers.Modes) 179new CustomTypeMarshallers(ImmutableDictionary<MarshalMode, CustomTypeMarshallerData>.Empty.Add( 180MarshalMode.UnmanagedToManagedOut,
SafeHandleMarshallingInfoProvider.cs (3)
79Modes = ImmutableDictionary<MarshalMode, CustomTypeMarshallerData>.Empty 81MarshalMode.ManagedToUnmanagedIn, 82marshallers.Value.GetModeOrDefault(MarshalMode.ManagedToUnmanagedIn))