diff --git a/scripts/generate-dotnet.ps1 b/scripts/generate-dotnet.ps1 index 56ea711480..89c69b57eb 100644 --- a/scripts/generate-dotnet.ps1 +++ b/scripts/generate-dotnet.ps1 @@ -18,14 +18,14 @@ $ToolPath = Join-Path $RootDir build dotnetgenerator if (Test-Path $ToolPath) { Remove-Item $ToolPath -Recurse -Force | Out-Null } -dotnet tool install ClangSharpPInvokeGenerator --version 13.0.0-beta1 --tool-path $ToolPath +dotnet tool install ClangSharpPInvokeGenerator --version 21.1.8.4 --tool-path $ToolPath $MsQuicHeader = Join-Path $RootDir src inc msquic.h $MsQuicGeneratedSource = Join-Path $RootDir src cs lib msquic_generated.cs $LicenseHeader = Join-Path $RootDir src cs LicenseHeader.txt -$ToolExe = Join-Path $ToolPath ClangSharpPInvokeGenerator.exe +$ToolCmd = Join-Path $ToolPath ClangSharpPInvokeGenerator.cmd $Arguments = @( "-f $MsQuicHeader", # Header to parse @@ -33,10 +33,10 @@ $Arguments = @( "-o $MsQuicGeneratedSource", # Output file "-m MsQuic", # Class to place global functions and definitions in "-l msquic", # Library to import for functions - "-c exclude-enum-operators", # Exclude enum operators from generated + "-g enum-operators=false", # Exclude enum operators from generated "-r _SOCKADDR_INET=QuicAddr", # Remap _SOCKADDR_INET to QuicAddr - "-c generate-macro-bindings", # Generate values for macros (Such as status codes) - "-h $LicenseHeader", # Add license header to file + "-g macro-bindings", # Generate values for macros (Such as status codes) + "-hf $LicenseHeader", # Add license header to file "-e QUIC_UINT62_MAX", # Exclude QUIC_UINT62_MAX from generator "-e MsQuicOpen2", # Exclude MsQuicOpen2 macro from generator "-e QUIC_API_VERSION_1", # Exclude v1 API define @@ -54,7 +54,7 @@ $Arguments = @( $FullArgs = $Arguments -join " " -Invoke-Expression "$ToolExe $FullArgs" +Invoke-Expression "$ToolCmd $FullArgs" (Get-Content $MsQuicGeneratedSource) ` -replace '\(anonymous struct.+\)\"', "(anonymous struct)`"" ` diff --git a/src/cs/lib/msquic.csproj b/src/cs/lib/msquic.csproj index 39391ced8e..6a507f7231 100644 --- a/src/cs/lib/msquic.csproj +++ b/src/cs/lib/msquic.csproj @@ -1,14 +1,14 @@ - net6.0;netstandard2.0;netstandard2.1 + net8.0;net10.0 true enable Microsoft.Quic - 9.0 + 12.0 diff --git a/src/cs/lib/msquic_generated.cs b/src/cs/lib/msquic_generated.cs index 2b195094fd..841c1489f9 100644 --- a/src/cs/lib/msquic_generated.cs +++ b/src/cs/lib/msquic_generated.cs @@ -14,6 +14,9 @@ using MemoryMarshal = System.Runtime.InteropServices.MemoryMarshal; #endif +using System; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace Microsoft.Quic @@ -221,7 +224,7 @@ internal enum QUIC_GLOBAL_EXECUTION_CONFIG_FLAGS AFFINITIZE = 0x0020, } - internal unsafe partial struct QUIC_GLOBAL_EXECUTION_CONFIG + internal partial struct QUIC_GLOBAL_EXECUTION_CONFIG { internal QUIC_GLOBAL_EXECUTION_CONFIG_FLAGS Flags; @@ -231,8 +234,25 @@ internal unsafe partial struct QUIC_GLOBAL_EXECUTION_CONFIG [NativeTypeName("uint32_t")] internal uint ProcessorCount; - [NativeTypeName("uint16_t [1]")] - internal fixed ushort ProcessorList[1]; + [NativeTypeName("uint16_t[1]")] + internal _ProcessorList_e__FixedBuffer ProcessorList; + + internal partial struct _ProcessorList_e__FixedBuffer + { + internal ushort e0; + + [UnscopedRef] + internal ref ushort this[int index] + { + get + { + return ref Unsafe.Add(ref e0, index); + } + } + + [UnscopedRef] + internal Span AsSpan(int length) => MemoryMarshal.CreateSpan(ref e0, length); + } } internal unsafe partial struct QUIC_EXECUTION_CONFIG @@ -248,6 +268,15 @@ internal partial struct QUIC_EXECUTION { } + internal unsafe partial struct QUIC_XDP_MAP_CONFIG + { + [NativeTypeName("uint32_t")] + internal uint InterfaceIndex; + + [NativeTypeName("QUIC_XDP_MAP_HANDLE")] + internal void* MapHandle; + } + internal unsafe partial struct QUIC_REGISTRATION_CONFIG { [NativeTypeName("const char *")] @@ -256,21 +285,39 @@ internal unsafe partial struct QUIC_REGISTRATION_CONFIG internal QUIC_EXECUTION_PROFILE ExecutionProfile; } - internal unsafe partial struct QUIC_CERTIFICATE_HASH + internal partial struct QUIC_CERTIFICATE_HASH { - [NativeTypeName("uint8_t [20]")] - internal fixed byte ShaHash[20]; + [NativeTypeName("uint8_t[20]")] + internal _ShaHash_e__FixedBuffer ShaHash; + + [InlineArray(20)] + internal partial struct _ShaHash_e__FixedBuffer + { + internal byte e0; + } } - internal unsafe partial struct QUIC_CERTIFICATE_HASH_STORE + internal partial struct QUIC_CERTIFICATE_HASH_STORE { internal QUIC_CERTIFICATE_HASH_STORE_FLAGS Flags; - [NativeTypeName("uint8_t [20]")] - internal fixed byte ShaHash[20]; + [NativeTypeName("uint8_t[20]")] + internal _ShaHash_e__FixedBuffer ShaHash; - [NativeTypeName("char [128]")] - internal fixed sbyte StoreName[128]; + [NativeTypeName("char[128]")] + internal _StoreName_e__FixedBuffer StoreName; + + [InlineArray(20)] + internal partial struct _ShaHash_e__FixedBuffer + { + internal byte e0; + } + + [InlineArray(128)] + internal partial struct _StoreName_e__FixedBuffer + { + internal sbyte e0; + } } internal unsafe partial struct QUIC_CERTIFICATE_FILE @@ -312,7 +359,7 @@ internal unsafe partial struct QUIC_CREDENTIAL_CONFIG internal QUIC_CREDENTIAL_FLAGS Flags; - [NativeTypeName("QUIC_CREDENTIAL_CONFIG::(anonymous union)")] + [NativeTypeName("__AnonymousRecord_msquic_L423_C5")] internal _Anonymous_e__Union Anonymous; [NativeTypeName("const char *")] @@ -328,51 +375,57 @@ internal unsafe partial struct QUIC_CREDENTIAL_CONFIG [NativeTypeName("const char *")] internal sbyte* CaCertificateFile; + [UnscopedRef] internal ref QUIC_CERTIFICATE_HASH* CertificateHash { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref this, 1)).Anonymous.CertificateHash; + return ref Anonymous.CertificateHash; } } + [UnscopedRef] internal ref QUIC_CERTIFICATE_HASH_STORE* CertificateHashStore { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref this, 1)).Anonymous.CertificateHashStore; + return ref Anonymous.CertificateHashStore; } } + [UnscopedRef] internal ref void* CertificateContext { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref this, 1)).Anonymous.CertificateContext; + return ref Anonymous.CertificateContext; } } + [UnscopedRef] internal ref QUIC_CERTIFICATE_FILE* CertificateFile { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref this, 1)).Anonymous.CertificateFile; + return ref Anonymous.CertificateFile; } } + [UnscopedRef] internal ref QUIC_CERTIFICATE_FILE_PROTECTED* CertificateFileProtected { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref this, 1)).Anonymous.CertificateFileProtected; + return ref Anonymous.CertificateFileProtected; } } + [UnscopedRef] internal ref QUIC_CERTIFICATE_PKCS12* CertificatePkcs12 { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref this, 1)).Anonymous.CertificatePkcs12; + return ref Anonymous.CertificatePkcs12; } } @@ -400,16 +453,28 @@ internal unsafe partial struct _Anonymous_e__Union } } - internal unsafe partial struct QUIC_TICKET_KEY_CONFIG + internal partial struct QUIC_TICKET_KEY_CONFIG { - [NativeTypeName("uint8_t [16]")] - internal fixed byte Id[16]; + [NativeTypeName("uint8_t[16]")] + internal _Id_e__FixedBuffer Id; - [NativeTypeName("uint8_t [64]")] - internal fixed byte Material[64]; + [NativeTypeName("uint8_t[64]")] + internal _Material_e__FixedBuffer Material; [NativeTypeName("uint8_t")] internal byte MaterialLength; + + [InlineArray(16)] + internal partial struct _Id_e__FixedBuffer + { + internal byte e0; + } + + [InlineArray(64)] + internal partial struct _Material_e__FixedBuffer + { + internal byte e0; + } } internal unsafe partial struct QUIC_BUFFER @@ -545,7 +610,7 @@ internal partial struct QUIC_STATISTICS [NativeTypeName("uint32_t : 1")] internal uint VersionNegotiation { - get + readonly get { return _bitfield & 0x1u; } @@ -559,7 +624,7 @@ internal uint VersionNegotiation [NativeTypeName("uint32_t : 1")] internal uint StatelessRetry { - get + readonly get { return (_bitfield >> 1) & 0x1u; } @@ -573,7 +638,7 @@ internal uint StatelessRetry [NativeTypeName("uint32_t : 1")] internal uint ResumptionAttempted { - get + readonly get { return (_bitfield >> 2) & 0x1u; } @@ -587,7 +652,7 @@ internal uint ResumptionAttempted [NativeTypeName("uint32_t : 1")] internal uint ResumptionSucceeded { - get + readonly get { return (_bitfield >> 3) & 0x1u; } @@ -607,19 +672,19 @@ internal uint ResumptionSucceeded [NativeTypeName("uint32_t")] internal uint MaxRtt; - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L562_C5")] internal _Timing_e__Struct Timing; - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L567_C5")] internal _Handshake_e__Struct Handshake; - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L572_C5")] internal _Send_e__Struct Send; - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L583_C5")] internal _Recv_e__Struct Recv; - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L593_C5")] internal _Misc_e__Struct Misc; internal partial struct _Timing_e__Struct @@ -720,7 +785,7 @@ internal partial struct QUIC_STATISTICS_V2 [NativeTypeName("uint32_t : 1")] internal uint VersionNegotiation { - get + readonly get { return _bitfield & 0x1u; } @@ -734,7 +799,7 @@ internal uint VersionNegotiation [NativeTypeName("uint32_t : 1")] internal uint StatelessRetry { - get + readonly get { return (_bitfield >> 1) & 0x1u; } @@ -748,7 +813,7 @@ internal uint StatelessRetry [NativeTypeName("uint32_t : 1")] internal uint ResumptionAttempted { - get + readonly get { return (_bitfield >> 2) & 0x1u; } @@ -762,7 +827,7 @@ internal uint ResumptionAttempted [NativeTypeName("uint32_t : 1")] internal uint ResumptionSucceeded { - get + readonly get { return (_bitfield >> 3) & 0x1u; } @@ -776,7 +841,7 @@ internal uint ResumptionSucceeded [NativeTypeName("uint32_t : 1")] internal uint GreaseBitNegotiated { - get + readonly get { return (_bitfield >> 4) & 0x1u; } @@ -790,7 +855,7 @@ internal uint GreaseBitNegotiated [NativeTypeName("uint32_t : 1")] internal uint EcnCapable { - get + readonly get { return (_bitfield >> 5) & 0x1u; } @@ -804,7 +869,7 @@ internal uint EcnCapable [NativeTypeName("uint32_t : 1")] internal uint EncryptionOffloaded { - get + readonly get { return (_bitfield >> 6) & 0x1u; } @@ -818,7 +883,7 @@ internal uint EncryptionOffloaded [NativeTypeName("uint32_t : 25")] internal uint RESERVED { - get + readonly get { return (_bitfield >> 7) & 0x1FFFFFFu; } @@ -1012,6 +1077,8 @@ internal enum QUIC_PERFORMANCE_COUNTERS SEND_STATELESS_RETRY, CONN_LOAD_REJECT, LISTEN_QUEUE_DEPTH, + ENCRYPT_DURATION_US, + DECRYPT_DURATION_US, MAX, } @@ -1038,7 +1105,7 @@ internal unsafe partial struct QUIC_VERSION_SETTINGS internal partial struct QUIC_GLOBAL_SETTINGS { - [NativeTypeName("QUIC_GLOBAL_SETTINGS::(anonymous union)")] + [NativeTypeName("__AnonymousRecord_msquic_L756_C5")] internal _Anonymous_e__Union Anonymous; [NativeTypeName("uint16_t")] @@ -1050,19 +1117,21 @@ internal partial struct QUIC_GLOBAL_SETTINGS [NativeTypeName("uint32_t")] internal uint FixedServerID; + [UnscopedRef] internal ref ulong IsSetFlags { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.IsSetFlags, 1)); + return ref Anonymous.IsSetFlags; } } + [UnscopedRef] internal ref _Anonymous_e__Union._IsSet_e__Struct IsSet { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.IsSet, 1)); + return ref Anonymous.IsSet; } } @@ -1074,7 +1143,7 @@ internal partial struct _Anonymous_e__Union internal ulong IsSetFlags; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L758_C9")] internal _IsSet_e__Struct IsSet; internal partial struct _IsSet_e__Struct @@ -1084,7 +1153,7 @@ internal partial struct _IsSet_e__Struct [NativeTypeName("uint64_t : 1")] internal ulong RetryMemoryLimit { - get + readonly get { return _bitfield & 0x1UL; } @@ -1098,7 +1167,7 @@ internal ulong RetryMemoryLimit [NativeTypeName("uint64_t : 1")] internal ulong LoadBalancingMode { - get + readonly get { return (_bitfield >> 1) & 0x1UL; } @@ -1112,7 +1181,7 @@ internal ulong LoadBalancingMode [NativeTypeName("uint64_t : 1")] internal ulong FixedServerID { - get + readonly get { return (_bitfield >> 2) & 0x1UL; } @@ -1126,7 +1195,7 @@ internal ulong FixedServerID [NativeTypeName("uint64_t : 61")] internal ulong RESERVED { - get + readonly get { return (_bitfield >> 3) & 0x1FFFFFFFUL; } @@ -1142,7 +1211,7 @@ internal ulong RESERVED internal partial struct QUIC_SETTINGS { - [NativeTypeName("QUIC_SETTINGS::(anonymous union)")] + [NativeTypeName("__AnonymousRecord_msquic_L772_C5")] internal _Anonymous1_e__Union Anonymous1; [NativeTypeName("uint64_t")] @@ -1222,7 +1291,7 @@ internal partial struct QUIC_SETTINGS [NativeTypeName("uint8_t : 1")] internal byte SendBufferingEnabled { - get + readonly get { return (byte)(_bitfield & 0x1u); } @@ -1236,7 +1305,7 @@ internal byte SendBufferingEnabled [NativeTypeName("uint8_t : 1")] internal byte PacingEnabled { - get + readonly get { return (byte)((_bitfield >> 1) & 0x1u); } @@ -1250,7 +1319,7 @@ internal byte PacingEnabled [NativeTypeName("uint8_t : 1")] internal byte MigrationEnabled { - get + readonly get { return (byte)((_bitfield >> 2) & 0x1u); } @@ -1264,7 +1333,7 @@ internal byte MigrationEnabled [NativeTypeName("uint8_t : 1")] internal byte DatagramReceiveEnabled { - get + readonly get { return (byte)((_bitfield >> 3) & 0x1u); } @@ -1278,7 +1347,7 @@ internal byte DatagramReceiveEnabled [NativeTypeName("uint8_t : 2")] internal byte ServerResumptionLevel { - get + readonly get { return (byte)((_bitfield >> 4) & 0x3u); } @@ -1292,7 +1361,7 @@ internal byte ServerResumptionLevel [NativeTypeName("uint8_t : 1")] internal byte GreaseQuicBitEnabled { - get + readonly get { return (byte)((_bitfield >> 6) & 0x1u); } @@ -1306,7 +1375,7 @@ internal byte GreaseQuicBitEnabled [NativeTypeName("uint8_t : 1")] internal byte EcnEnabled { - get + readonly get { return (byte)((_bitfield >> 7) & 0x1u); } @@ -1326,7 +1395,7 @@ internal byte EcnEnabled [NativeTypeName("uint32_t")] internal uint DestCidUpdateIdleTimeoutMs; - [NativeTypeName("QUIC_SETTINGS::(anonymous union)")] + [NativeTypeName("__AnonymousRecord_msquic_L863_C5")] internal _Anonymous2_e__Union Anonymous2; [NativeTypeName("uint32_t")] @@ -1338,33 +1407,36 @@ internal byte EcnEnabled [NativeTypeName("uint32_t")] internal uint StreamRecvWindowUnidiDefault; + [UnscopedRef] internal ref ulong IsSetFlags { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.IsSetFlags, 1)); + return ref Anonymous1.IsSetFlags; } } + [UnscopedRef] internal ref _Anonymous1_e__Union._IsSet_e__Struct IsSet { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous1.IsSet, 1)); + return ref Anonymous1.IsSet; } } + [UnscopedRef] internal ref ulong Flags { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous2.Flags, 1)); + return ref Anonymous2.Flags; } } internal ulong HyStartEnabled { - get + readonly get { return Anonymous2.Anonymous.HyStartEnabled; } @@ -1377,7 +1449,7 @@ internal ulong HyStartEnabled internal ulong EncryptionOffloadAllowed { - get + readonly get { return Anonymous2.Anonymous.EncryptionOffloadAllowed; } @@ -1390,7 +1462,7 @@ internal ulong EncryptionOffloadAllowed internal ulong ReliableResetEnabled { - get + readonly get { return Anonymous2.Anonymous.ReliableResetEnabled; } @@ -1403,7 +1475,7 @@ internal ulong ReliableResetEnabled internal ulong OneWayDelayEnabled { - get + readonly get { return Anonymous2.Anonymous.OneWayDelayEnabled; } @@ -1416,7 +1488,7 @@ internal ulong OneWayDelayEnabled internal ulong NetStatsEventEnabled { - get + readonly get { return Anonymous2.Anonymous.NetStatsEventEnabled; } @@ -1429,7 +1501,7 @@ internal ulong NetStatsEventEnabled internal ulong StreamMultiReceiveEnabled { - get + readonly get { return Anonymous2.Anonymous.StreamMultiReceiveEnabled; } @@ -1442,7 +1514,7 @@ internal ulong StreamMultiReceiveEnabled internal ulong XdpEnabled { - get + readonly get { return Anonymous2.Anonymous.XdpEnabled; } @@ -1455,7 +1527,7 @@ internal ulong XdpEnabled internal ulong QTIPEnabled { - get + readonly get { return Anonymous2.Anonymous.QTIPEnabled; } @@ -1468,7 +1540,7 @@ internal ulong QTIPEnabled internal ulong ReservedRioEnabled { - get + readonly get { return Anonymous2.Anonymous.ReservedRioEnabled; } @@ -1481,7 +1553,7 @@ internal ulong ReservedRioEnabled internal ulong ReservedFlags { - get + readonly get { return Anonymous2.Anonymous.ReservedFlags; } @@ -1500,7 +1572,7 @@ internal partial struct _Anonymous1_e__Union internal ulong IsSetFlags; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L774_C9")] internal _IsSet_e__Struct IsSet; internal partial struct _IsSet_e__Struct @@ -1510,7 +1582,7 @@ internal partial struct _IsSet_e__Struct [NativeTypeName("uint64_t : 1")] internal ulong MaxBytesPerKey { - get + readonly get { return _bitfield & 0x1UL; } @@ -1524,7 +1596,7 @@ internal ulong MaxBytesPerKey [NativeTypeName("uint64_t : 1")] internal ulong HandshakeIdleTimeoutMs { - get + readonly get { return (_bitfield >> 1) & 0x1UL; } @@ -1538,7 +1610,7 @@ internal ulong HandshakeIdleTimeoutMs [NativeTypeName("uint64_t : 1")] internal ulong IdleTimeoutMs { - get + readonly get { return (_bitfield >> 2) & 0x1UL; } @@ -1552,7 +1624,7 @@ internal ulong IdleTimeoutMs [NativeTypeName("uint64_t : 1")] internal ulong MtuDiscoverySearchCompleteTimeoutUs { - get + readonly get { return (_bitfield >> 3) & 0x1UL; } @@ -1566,7 +1638,7 @@ internal ulong MtuDiscoverySearchCompleteTimeoutUs [NativeTypeName("uint64_t : 1")] internal ulong TlsClientMaxSendBuffer { - get + readonly get { return (_bitfield >> 4) & 0x1UL; } @@ -1580,7 +1652,7 @@ internal ulong TlsClientMaxSendBuffer [NativeTypeName("uint64_t : 1")] internal ulong TlsServerMaxSendBuffer { - get + readonly get { return (_bitfield >> 5) & 0x1UL; } @@ -1594,7 +1666,7 @@ internal ulong TlsServerMaxSendBuffer [NativeTypeName("uint64_t : 1")] internal ulong StreamRecvWindowDefault { - get + readonly get { return (_bitfield >> 6) & 0x1UL; } @@ -1608,7 +1680,7 @@ internal ulong StreamRecvWindowDefault [NativeTypeName("uint64_t : 1")] internal ulong StreamRecvBufferDefault { - get + readonly get { return (_bitfield >> 7) & 0x1UL; } @@ -1622,7 +1694,7 @@ internal ulong StreamRecvBufferDefault [NativeTypeName("uint64_t : 1")] internal ulong ConnFlowControlWindow { - get + readonly get { return (_bitfield >> 8) & 0x1UL; } @@ -1636,7 +1708,7 @@ internal ulong ConnFlowControlWindow [NativeTypeName("uint64_t : 1")] internal ulong MaxWorkerQueueDelayUs { - get + readonly get { return (_bitfield >> 9) & 0x1UL; } @@ -1650,7 +1722,7 @@ internal ulong MaxWorkerQueueDelayUs [NativeTypeName("uint64_t : 1")] internal ulong MaxStatelessOperations { - get + readonly get { return (_bitfield >> 10) & 0x1UL; } @@ -1664,7 +1736,7 @@ internal ulong MaxStatelessOperations [NativeTypeName("uint64_t : 1")] internal ulong InitialWindowPackets { - get + readonly get { return (_bitfield >> 11) & 0x1UL; } @@ -1678,7 +1750,7 @@ internal ulong InitialWindowPackets [NativeTypeName("uint64_t : 1")] internal ulong SendIdleTimeoutMs { - get + readonly get { return (_bitfield >> 12) & 0x1UL; } @@ -1692,7 +1764,7 @@ internal ulong SendIdleTimeoutMs [NativeTypeName("uint64_t : 1")] internal ulong InitialRttMs { - get + readonly get { return (_bitfield >> 13) & 0x1UL; } @@ -1706,7 +1778,7 @@ internal ulong InitialRttMs [NativeTypeName("uint64_t : 1")] internal ulong MaxAckDelayMs { - get + readonly get { return (_bitfield >> 14) & 0x1UL; } @@ -1720,7 +1792,7 @@ internal ulong MaxAckDelayMs [NativeTypeName("uint64_t : 1")] internal ulong DisconnectTimeoutMs { - get + readonly get { return (_bitfield >> 15) & 0x1UL; } @@ -1734,7 +1806,7 @@ internal ulong DisconnectTimeoutMs [NativeTypeName("uint64_t : 1")] internal ulong KeepAliveIntervalMs { - get + readonly get { return (_bitfield >> 16) & 0x1UL; } @@ -1748,7 +1820,7 @@ internal ulong KeepAliveIntervalMs [NativeTypeName("uint64_t : 1")] internal ulong CongestionControlAlgorithm { - get + readonly get { return (_bitfield >> 17) & 0x1UL; } @@ -1762,7 +1834,7 @@ internal ulong CongestionControlAlgorithm [NativeTypeName("uint64_t : 1")] internal ulong PeerBidiStreamCount { - get + readonly get { return (_bitfield >> 18) & 0x1UL; } @@ -1776,7 +1848,7 @@ internal ulong PeerBidiStreamCount [NativeTypeName("uint64_t : 1")] internal ulong PeerUnidiStreamCount { - get + readonly get { return (_bitfield >> 19) & 0x1UL; } @@ -1790,7 +1862,7 @@ internal ulong PeerUnidiStreamCount [NativeTypeName("uint64_t : 1")] internal ulong MaxBindingStatelessOperations { - get + readonly get { return (_bitfield >> 20) & 0x1UL; } @@ -1804,7 +1876,7 @@ internal ulong MaxBindingStatelessOperations [NativeTypeName("uint64_t : 1")] internal ulong StatelessOperationExpirationMs { - get + readonly get { return (_bitfield >> 21) & 0x1UL; } @@ -1818,7 +1890,7 @@ internal ulong StatelessOperationExpirationMs [NativeTypeName("uint64_t : 1")] internal ulong MinimumMtu { - get + readonly get { return (_bitfield >> 22) & 0x1UL; } @@ -1832,7 +1904,7 @@ internal ulong MinimumMtu [NativeTypeName("uint64_t : 1")] internal ulong MaximumMtu { - get + readonly get { return (_bitfield >> 23) & 0x1UL; } @@ -1846,7 +1918,7 @@ internal ulong MaximumMtu [NativeTypeName("uint64_t : 1")] internal ulong SendBufferingEnabled { - get + readonly get { return (_bitfield >> 24) & 0x1UL; } @@ -1860,7 +1932,7 @@ internal ulong SendBufferingEnabled [NativeTypeName("uint64_t : 1")] internal ulong PacingEnabled { - get + readonly get { return (_bitfield >> 25) & 0x1UL; } @@ -1874,7 +1946,7 @@ internal ulong PacingEnabled [NativeTypeName("uint64_t : 1")] internal ulong MigrationEnabled { - get + readonly get { return (_bitfield >> 26) & 0x1UL; } @@ -1888,7 +1960,7 @@ internal ulong MigrationEnabled [NativeTypeName("uint64_t : 1")] internal ulong DatagramReceiveEnabled { - get + readonly get { return (_bitfield >> 27) & 0x1UL; } @@ -1902,7 +1974,7 @@ internal ulong DatagramReceiveEnabled [NativeTypeName("uint64_t : 1")] internal ulong ServerResumptionLevel { - get + readonly get { return (_bitfield >> 28) & 0x1UL; } @@ -1916,7 +1988,7 @@ internal ulong ServerResumptionLevel [NativeTypeName("uint64_t : 1")] internal ulong MaxOperationsPerDrain { - get + readonly get { return (_bitfield >> 29) & 0x1UL; } @@ -1930,7 +2002,7 @@ internal ulong MaxOperationsPerDrain [NativeTypeName("uint64_t : 1")] internal ulong MtuDiscoveryMissingProbeCount { - get + readonly get { return (_bitfield >> 30) & 0x1UL; } @@ -1944,7 +2016,7 @@ internal ulong MtuDiscoveryMissingProbeCount [NativeTypeName("uint64_t : 1")] internal ulong DestCidUpdateIdleTimeoutMs { - get + readonly get { return (_bitfield >> 31) & 0x1UL; } @@ -1958,7 +2030,7 @@ internal ulong DestCidUpdateIdleTimeoutMs [NativeTypeName("uint64_t : 1")] internal ulong GreaseQuicBitEnabled { - get + readonly get { return (_bitfield >> 32) & 0x1UL; } @@ -1972,7 +2044,7 @@ internal ulong GreaseQuicBitEnabled [NativeTypeName("uint64_t : 1")] internal ulong EcnEnabled { - get + readonly get { return (_bitfield >> 33) & 0x1UL; } @@ -1986,7 +2058,7 @@ internal ulong EcnEnabled [NativeTypeName("uint64_t : 1")] internal ulong HyStartEnabled { - get + readonly get { return (_bitfield >> 34) & 0x1UL; } @@ -2000,7 +2072,7 @@ internal ulong HyStartEnabled [NativeTypeName("uint64_t : 1")] internal ulong StreamRecvWindowBidiLocalDefault { - get + readonly get { return (_bitfield >> 35) & 0x1UL; } @@ -2014,7 +2086,7 @@ internal ulong StreamRecvWindowBidiLocalDefault [NativeTypeName("uint64_t : 1")] internal ulong StreamRecvWindowBidiRemoteDefault { - get + readonly get { return (_bitfield >> 36) & 0x1UL; } @@ -2028,7 +2100,7 @@ internal ulong StreamRecvWindowBidiRemoteDefault [NativeTypeName("uint64_t : 1")] internal ulong StreamRecvWindowUnidiDefault { - get + readonly get { return (_bitfield >> 37) & 0x1UL; } @@ -2042,7 +2114,7 @@ internal ulong StreamRecvWindowUnidiDefault [NativeTypeName("uint64_t : 1")] internal ulong EncryptionOffloadAllowed { - get + readonly get { return (_bitfield >> 38) & 0x1UL; } @@ -2056,7 +2128,7 @@ internal ulong EncryptionOffloadAllowed [NativeTypeName("uint64_t : 1")] internal ulong ReliableResetEnabled { - get + readonly get { return (_bitfield >> 39) & 0x1UL; } @@ -2070,7 +2142,7 @@ internal ulong ReliableResetEnabled [NativeTypeName("uint64_t : 1")] internal ulong OneWayDelayEnabled { - get + readonly get { return (_bitfield >> 40) & 0x1UL; } @@ -2084,7 +2156,7 @@ internal ulong OneWayDelayEnabled [NativeTypeName("uint64_t : 1")] internal ulong NetStatsEventEnabled { - get + readonly get { return (_bitfield >> 41) & 0x1UL; } @@ -2098,7 +2170,7 @@ internal ulong NetStatsEventEnabled [NativeTypeName("uint64_t : 1")] internal ulong StreamMultiReceiveEnabled { - get + readonly get { return (_bitfield >> 42) & 0x1UL; } @@ -2112,7 +2184,7 @@ internal ulong StreamMultiReceiveEnabled [NativeTypeName("uint64_t : 1")] internal ulong XdpEnabled { - get + readonly get { return (_bitfield >> 43) & 0x1UL; } @@ -2126,7 +2198,7 @@ internal ulong XdpEnabled [NativeTypeName("uint64_t : 1")] internal ulong QTIPEnabled { - get + readonly get { return (_bitfield >> 44) & 0x1UL; } @@ -2140,7 +2212,7 @@ internal ulong QTIPEnabled [NativeTypeName("uint64_t : 1")] internal ulong ReservedRioEnabled { - get + readonly get { return (_bitfield >> 45) & 0x1UL; } @@ -2154,7 +2226,7 @@ internal ulong ReservedRioEnabled [NativeTypeName("uint64_t : 18")] internal ulong RESERVED { - get + readonly get { return (_bitfield >> 46) & 0x3FFFFUL; } @@ -2175,7 +2247,7 @@ internal partial struct _Anonymous2_e__Union internal ulong Flags; [FieldOffset(0)] - [NativeTypeName("QUIC_SETTINGS::(anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L865_C9")] internal _Anonymous_e__Struct Anonymous; internal partial struct _Anonymous_e__Struct @@ -2185,7 +2257,7 @@ internal partial struct _Anonymous_e__Struct [NativeTypeName("uint64_t : 1")] internal ulong HyStartEnabled { - get + readonly get { return _bitfield & 0x1UL; } @@ -2199,7 +2271,7 @@ internal ulong HyStartEnabled [NativeTypeName("uint64_t : 1")] internal ulong EncryptionOffloadAllowed { - get + readonly get { return (_bitfield >> 1) & 0x1UL; } @@ -2213,7 +2285,7 @@ internal ulong EncryptionOffloadAllowed [NativeTypeName("uint64_t : 1")] internal ulong ReliableResetEnabled { - get + readonly get { return (_bitfield >> 2) & 0x1UL; } @@ -2227,7 +2299,7 @@ internal ulong ReliableResetEnabled [NativeTypeName("uint64_t : 1")] internal ulong OneWayDelayEnabled { - get + readonly get { return (_bitfield >> 3) & 0x1UL; } @@ -2241,7 +2313,7 @@ internal ulong OneWayDelayEnabled [NativeTypeName("uint64_t : 1")] internal ulong NetStatsEventEnabled { - get + readonly get { return (_bitfield >> 4) & 0x1UL; } @@ -2255,7 +2327,7 @@ internal ulong NetStatsEventEnabled [NativeTypeName("uint64_t : 1")] internal ulong StreamMultiReceiveEnabled { - get + readonly get { return (_bitfield >> 5) & 0x1UL; } @@ -2269,7 +2341,7 @@ internal ulong StreamMultiReceiveEnabled [NativeTypeName("uint64_t : 1")] internal ulong XdpEnabled { - get + readonly get { return (_bitfield >> 6) & 0x1UL; } @@ -2283,7 +2355,7 @@ internal ulong XdpEnabled [NativeTypeName("uint64_t : 1")] internal ulong QTIPEnabled { - get + readonly get { return (_bitfield >> 7) & 0x1UL; } @@ -2297,7 +2369,7 @@ internal ulong QTIPEnabled [NativeTypeName("uint64_t : 1")] internal ulong ReservedRioEnabled { - get + readonly get { return (_bitfield >> 8) & 0x1UL; } @@ -2311,7 +2383,7 @@ internal ulong ReservedRioEnabled [NativeTypeName("uint64_t : 55")] internal ulong ReservedFlags { - get + readonly get { return (_bitfield >> 9) & 0x7FFFFFUL; } @@ -2325,31 +2397,31 @@ internal ulong ReservedFlags } } - internal unsafe partial struct QUIC_TLS_SECRETS + internal partial struct QUIC_TLS_SECRETS { [NativeTypeName("uint8_t")] internal byte SecretLength; - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L896_C5")] internal _IsSet_e__Struct IsSet; - [NativeTypeName("uint8_t [32]")] - internal fixed byte ClientRandom[32]; + [NativeTypeName("uint8_t[32]")] + internal _ClientRandom_e__FixedBuffer ClientRandom; - [NativeTypeName("uint8_t [64]")] - internal fixed byte ClientEarlyTrafficSecret[64]; + [NativeTypeName("uint8_t[64]")] + internal _ClientEarlyTrafficSecret_e__FixedBuffer ClientEarlyTrafficSecret; - [NativeTypeName("uint8_t [64]")] - internal fixed byte ClientHandshakeTrafficSecret[64]; + [NativeTypeName("uint8_t[64]")] + internal _ClientHandshakeTrafficSecret_e__FixedBuffer ClientHandshakeTrafficSecret; - [NativeTypeName("uint8_t [64]")] - internal fixed byte ServerHandshakeTrafficSecret[64]; + [NativeTypeName("uint8_t[64]")] + internal _ServerHandshakeTrafficSecret_e__FixedBuffer ServerHandshakeTrafficSecret; - [NativeTypeName("uint8_t [64]")] - internal fixed byte ClientTrafficSecret0[64]; + [NativeTypeName("uint8_t[64]")] + internal _ClientTrafficSecret0_e__FixedBuffer ClientTrafficSecret0; - [NativeTypeName("uint8_t [64]")] - internal fixed byte ServerTrafficSecret0[64]; + [NativeTypeName("uint8_t[64]")] + internal _ServerTrafficSecret0_e__FixedBuffer ServerTrafficSecret0; internal partial struct _IsSet_e__Struct { @@ -2358,7 +2430,7 @@ internal partial struct _IsSet_e__Struct [NativeTypeName("uint8_t : 1")] internal byte ClientRandom { - get + readonly get { return (byte)(_bitfield & 0x1u); } @@ -2372,7 +2444,7 @@ internal byte ClientRandom [NativeTypeName("uint8_t : 1")] internal byte ClientEarlyTrafficSecret { - get + readonly get { return (byte)((_bitfield >> 1) & 0x1u); } @@ -2386,7 +2458,7 @@ internal byte ClientEarlyTrafficSecret [NativeTypeName("uint8_t : 1")] internal byte ClientHandshakeTrafficSecret { - get + readonly get { return (byte)((_bitfield >> 2) & 0x1u); } @@ -2400,7 +2472,7 @@ internal byte ClientHandshakeTrafficSecret [NativeTypeName("uint8_t : 1")] internal byte ServerHandshakeTrafficSecret { - get + readonly get { return (byte)((_bitfield >> 3) & 0x1u); } @@ -2414,7 +2486,7 @@ internal byte ServerHandshakeTrafficSecret [NativeTypeName("uint8_t : 1")] internal byte ClientTrafficSecret0 { - get + readonly get { return (byte)((_bitfield >> 4) & 0x1u); } @@ -2428,7 +2500,7 @@ internal byte ClientTrafficSecret0 [NativeTypeName("uint8_t : 1")] internal byte ServerTrafficSecret0 { - get + readonly get { return (byte)((_bitfield >> 5) & 0x1u); } @@ -2439,6 +2511,42 @@ internal byte ServerTrafficSecret0 } } } + + [InlineArray(32)] + internal partial struct _ClientRandom_e__FixedBuffer + { + internal byte e0; + } + + [InlineArray(64)] + internal partial struct _ClientEarlyTrafficSecret_e__FixedBuffer + { + internal byte e0; + } + + [InlineArray(64)] + internal partial struct _ClientHandshakeTrafficSecret_e__FixedBuffer + { + internal byte e0; + } + + [InlineArray(64)] + internal partial struct _ServerHandshakeTrafficSecret_e__FixedBuffer + { + internal byte e0; + } + + [InlineArray(64)] + internal partial struct _ClientTrafficSecret0_e__FixedBuffer + { + internal byte e0; + } + + [InlineArray(64)] + internal partial struct _ServerTrafficSecret0_e__FixedBuffer + { + internal byte e0; + } } internal partial struct QUIC_STREAM_STATISTICS @@ -2529,30 +2637,33 @@ internal partial struct QUIC_LISTENER_EVENT { internal QUIC_LISTENER_EVENT_TYPE Type; - [NativeTypeName("QUIC_LISTENER_EVENT::(anonymous union)")] + [NativeTypeName("__AnonymousRecord_msquic_L1269_C5")] internal _Anonymous_e__Union Anonymous; + [UnscopedRef] internal ref _Anonymous_e__Union._NEW_CONNECTION_e__Struct NEW_CONNECTION { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.NEW_CONNECTION, 1)); + return ref Anonymous.NEW_CONNECTION; } } + [UnscopedRef] internal ref _Anonymous_e__Union._STOP_COMPLETE_e__Struct STOP_COMPLETE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.STOP_COMPLETE, 1)); + return ref Anonymous.STOP_COMPLETE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._DOS_MODE_CHANGED_e__Struct DOS_MODE_CHANGED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.DOS_MODE_CHANGED, 1)); + return ref Anonymous.DOS_MODE_CHANGED; } } @@ -2560,15 +2671,15 @@ internal ref _Anonymous_e__Union._DOS_MODE_CHANGED_e__Struct DOS_MODE_CHANGED internal partial struct _Anonymous_e__Union { [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1270_C9")] internal _NEW_CONNECTION_e__Struct NEW_CONNECTION; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1274_C9")] internal _STOP_COMPLETE_e__Struct STOP_COMPLETE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1278_C9")] internal _DOS_MODE_CHANGED_e__Struct DOS_MODE_CHANGED; internal unsafe partial struct _NEW_CONNECTION_e__Struct @@ -2587,7 +2698,7 @@ internal partial struct _STOP_COMPLETE_e__Struct [NativeTypeName("BOOLEAN : 1")] internal byte AppCloseInProgress { - get + readonly get { return (byte)(_bitfield & 0x1u); } @@ -2601,7 +2712,7 @@ internal byte AppCloseInProgress [NativeTypeName("BOOLEAN : 7")] internal byte RESERVED { - get + readonly get { return (byte)((_bitfield >> 1) & 0x7Fu); } @@ -2620,7 +2731,7 @@ internal partial struct _DOS_MODE_CHANGED_e__Struct [NativeTypeName("BOOLEAN : 1")] internal byte DosModeEnabled { - get + readonly get { return (byte)(_bitfield & 0x1u); } @@ -2634,7 +2745,7 @@ internal byte DosModeEnabled [NativeTypeName("BOOLEAN : 7")] internal byte RESERVED { - get + readonly get { return (byte)((_bitfield >> 1) & 0x7Fu); } @@ -2675,158 +2786,177 @@ internal partial struct QUIC_CONNECTION_EVENT { internal QUIC_CONNECTION_EVENT_TYPE Type; - [NativeTypeName("QUIC_CONNECTION_EVENT::(anonymous union)")] + [NativeTypeName("__AnonymousRecord_msquic_L1381_C5")] internal _Anonymous_e__Union Anonymous; + [UnscopedRef] internal ref _Anonymous_e__Union._CONNECTED_e__Struct CONNECTED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.CONNECTED, 1)); + return ref Anonymous.CONNECTED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._SHUTDOWN_INITIATED_BY_TRANSPORT_e__Struct SHUTDOWN_INITIATED_BY_TRANSPORT { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.SHUTDOWN_INITIATED_BY_TRANSPORT, 1)); + return ref Anonymous.SHUTDOWN_INITIATED_BY_TRANSPORT; } } + [UnscopedRef] internal ref _Anonymous_e__Union._SHUTDOWN_INITIATED_BY_PEER_e__Struct SHUTDOWN_INITIATED_BY_PEER { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.SHUTDOWN_INITIATED_BY_PEER, 1)); + return ref Anonymous.SHUTDOWN_INITIATED_BY_PEER; } } + [UnscopedRef] internal ref _Anonymous_e__Union._SHUTDOWN_COMPLETE_e__Struct SHUTDOWN_COMPLETE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.SHUTDOWN_COMPLETE, 1)); + return ref Anonymous.SHUTDOWN_COMPLETE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._LOCAL_ADDRESS_CHANGED_e__Struct LOCAL_ADDRESS_CHANGED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.LOCAL_ADDRESS_CHANGED, 1)); + return ref Anonymous.LOCAL_ADDRESS_CHANGED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._PEER_ADDRESS_CHANGED_e__Struct PEER_ADDRESS_CHANGED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PEER_ADDRESS_CHANGED, 1)); + return ref Anonymous.PEER_ADDRESS_CHANGED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._PEER_STREAM_STARTED_e__Struct PEER_STREAM_STARTED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PEER_STREAM_STARTED, 1)); + return ref Anonymous.PEER_STREAM_STARTED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._STREAMS_AVAILABLE_e__Struct STREAMS_AVAILABLE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.STREAMS_AVAILABLE, 1)); + return ref Anonymous.STREAMS_AVAILABLE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._PEER_NEEDS_STREAMS_e__Struct PEER_NEEDS_STREAMS { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PEER_NEEDS_STREAMS, 1)); + return ref Anonymous.PEER_NEEDS_STREAMS; } } + [UnscopedRef] internal ref _Anonymous_e__Union._IDEAL_PROCESSOR_CHANGED_e__Struct IDEAL_PROCESSOR_CHANGED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.IDEAL_PROCESSOR_CHANGED, 1)); + return ref Anonymous.IDEAL_PROCESSOR_CHANGED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._DATAGRAM_STATE_CHANGED_e__Struct DATAGRAM_STATE_CHANGED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.DATAGRAM_STATE_CHANGED, 1)); + return ref Anonymous.DATAGRAM_STATE_CHANGED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._DATAGRAM_RECEIVED_e__Struct DATAGRAM_RECEIVED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.DATAGRAM_RECEIVED, 1)); + return ref Anonymous.DATAGRAM_RECEIVED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._DATAGRAM_SEND_STATE_CHANGED_e__Struct DATAGRAM_SEND_STATE_CHANGED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.DATAGRAM_SEND_STATE_CHANGED, 1)); + return ref Anonymous.DATAGRAM_SEND_STATE_CHANGED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._RESUMED_e__Struct RESUMED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.RESUMED, 1)); + return ref Anonymous.RESUMED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._RESUMPTION_TICKET_RECEIVED_e__Struct RESUMPTION_TICKET_RECEIVED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.RESUMPTION_TICKET_RECEIVED, 1)); + return ref Anonymous.RESUMPTION_TICKET_RECEIVED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._PEER_CERTIFICATE_RECEIVED_e__Struct PEER_CERTIFICATE_RECEIVED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PEER_CERTIFICATE_RECEIVED, 1)); + return ref Anonymous.PEER_CERTIFICATE_RECEIVED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._RELIABLE_RESET_NEGOTIATED_e__Struct RELIABLE_RESET_NEGOTIATED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.RELIABLE_RESET_NEGOTIATED, 1)); + return ref Anonymous.RELIABLE_RESET_NEGOTIATED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._ONE_WAY_DELAY_NEGOTIATED_e__Struct ONE_WAY_DELAY_NEGOTIATED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.ONE_WAY_DELAY_NEGOTIATED, 1)); + return ref Anonymous.ONE_WAY_DELAY_NEGOTIATED; } } + [UnscopedRef] internal ref QUIC_NETWORK_STATISTICS NETWORK_STATISTICS { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.NETWORK_STATISTICS, 1)); + return ref Anonymous.NETWORK_STATISTICS; } } @@ -2834,75 +2964,75 @@ internal ref QUIC_NETWORK_STATISTICS NETWORK_STATISTICS internal partial struct _Anonymous_e__Union { [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1382_C9")] internal _CONNECTED_e__Struct CONNECTED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1389_C9")] internal _SHUTDOWN_INITIATED_BY_TRANSPORT_e__Struct SHUTDOWN_INITIATED_BY_TRANSPORT; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1393_C9")] internal _SHUTDOWN_INITIATED_BY_PEER_e__Struct SHUTDOWN_INITIATED_BY_PEER; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1396_C9")] internal _SHUTDOWN_COMPLETE_e__Struct SHUTDOWN_COMPLETE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1401_C9")] internal _LOCAL_ADDRESS_CHANGED_e__Struct LOCAL_ADDRESS_CHANGED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1404_C9")] internal _PEER_ADDRESS_CHANGED_e__Struct PEER_ADDRESS_CHANGED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1407_C9")] internal _PEER_STREAM_STARTED_e__Struct PEER_STREAM_STARTED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1411_C9")] internal _STREAMS_AVAILABLE_e__Struct STREAMS_AVAILABLE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1415_C9")] internal _PEER_NEEDS_STREAMS_e__Struct PEER_NEEDS_STREAMS; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1418_C9")] internal _IDEAL_PROCESSOR_CHANGED_e__Struct IDEAL_PROCESSOR_CHANGED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1422_C9")] internal _DATAGRAM_STATE_CHANGED_e__Struct DATAGRAM_STATE_CHANGED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1426_C9")] internal _DATAGRAM_RECEIVED_e__Struct DATAGRAM_RECEIVED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1430_C9")] internal _DATAGRAM_SEND_STATE_CHANGED_e__Struct DATAGRAM_SEND_STATE_CHANGED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1434_C9")] internal _RESUMED_e__Struct RESUMED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1438_C9")] internal _RESUMPTION_TICKET_RECEIVED_e__Struct RESUMPTION_TICKET_RECEIVED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1444_C9")] internal _PEER_CERTIFICATE_RECEIVED_e__Struct PEER_CERTIFICATE_RECEIVED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1451_C9")] internal _RELIABLE_RESET_NEGOTIATED_e__Struct RELIABLE_RESET_NEGOTIATED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1454_C9")] internal _ONE_WAY_DELAY_NEGOTIATED_e__Struct ONE_WAY_DELAY_NEGOTIATED; [FieldOffset(0)] @@ -2942,7 +3072,7 @@ internal partial struct _SHUTDOWN_COMPLETE_e__Struct [NativeTypeName("BOOLEAN : 1")] internal byte HandshakeCompleted { - get + readonly get { return (byte)(_bitfield & 0x1u); } @@ -2956,7 +3086,7 @@ internal byte HandshakeCompleted [NativeTypeName("BOOLEAN : 1")] internal byte PeerAcknowledgedShutdown { - get + readonly get { return (byte)((_bitfield >> 1) & 0x1u); } @@ -2970,7 +3100,7 @@ internal byte PeerAcknowledgedShutdown [NativeTypeName("BOOLEAN : 1")] internal byte AppCloseInProgress { - get + readonly get { return (byte)((_bitfield >> 2) & 0x1u); } @@ -3100,6 +3230,21 @@ internal partial struct _ONE_WAY_DELAY_NEGOTIATED_e__Struct } } + internal unsafe partial struct QUIC_KEYING_MATERIAL_CONFIG + { + [NativeTypeName("const char *")] + internal sbyte* Label; + + [NativeTypeName("uint32_t")] + internal uint ContextLength; + + [NativeTypeName("const uint8_t *")] + internal byte* Context; + + [NativeTypeName("uint32_t")] + internal uint OutputLength; + } + internal enum QUIC_STREAM_EVENT_TYPE { START_COMPLETE = 0, @@ -3120,86 +3265,96 @@ internal partial struct QUIC_STREAM_EVENT { internal QUIC_STREAM_EVENT_TYPE Type; - [NativeTypeName("QUIC_STREAM_EVENT::(anonymous union)")] + [NativeTypeName("__AnonymousRecord_msquic_L1644_C5")] internal _Anonymous_e__Union Anonymous; + [UnscopedRef] internal ref _Anonymous_e__Union._START_COMPLETE_e__Struct START_COMPLETE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.START_COMPLETE, 1)); + return ref Anonymous.START_COMPLETE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._RECEIVE_e__Struct RECEIVE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.RECEIVE, 1)); + return ref Anonymous.RECEIVE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._SEND_COMPLETE_e__Struct SEND_COMPLETE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.SEND_COMPLETE, 1)); + return ref Anonymous.SEND_COMPLETE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._PEER_SEND_ABORTED_e__Struct PEER_SEND_ABORTED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PEER_SEND_ABORTED, 1)); + return ref Anonymous.PEER_SEND_ABORTED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._PEER_RECEIVE_ABORTED_e__Struct PEER_RECEIVE_ABORTED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.PEER_RECEIVE_ABORTED, 1)); + return ref Anonymous.PEER_RECEIVE_ABORTED; } } + [UnscopedRef] internal ref _Anonymous_e__Union._SEND_SHUTDOWN_COMPLETE_e__Struct SEND_SHUTDOWN_COMPLETE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.SEND_SHUTDOWN_COMPLETE, 1)); + return ref Anonymous.SEND_SHUTDOWN_COMPLETE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._SHUTDOWN_COMPLETE_e__Struct SHUTDOWN_COMPLETE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.SHUTDOWN_COMPLETE, 1)); + return ref Anonymous.SHUTDOWN_COMPLETE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._IDEAL_SEND_BUFFER_SIZE_e__Struct IDEAL_SEND_BUFFER_SIZE { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.IDEAL_SEND_BUFFER_SIZE, 1)); + return ref Anonymous.IDEAL_SEND_BUFFER_SIZE; } } + [UnscopedRef] internal ref _Anonymous_e__Union._CANCEL_ON_LOSS_e__Struct CANCEL_ON_LOSS { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.CANCEL_ON_LOSS, 1)); + return ref Anonymous.CANCEL_ON_LOSS; } } + [UnscopedRef] internal ref _Anonymous_e__Union._RECEIVE_BUFFER_NEEDED_e__Struct RECEIVE_BUFFER_NEEDED { get { - return ref MemoryMarshal.GetReference(MemoryMarshal.CreateSpan(ref Anonymous.RECEIVE_BUFFER_NEEDED, 1)); + return ref Anonymous.RECEIVE_BUFFER_NEEDED; } } @@ -3207,43 +3362,43 @@ internal ref _Anonymous_e__Union._RECEIVE_BUFFER_NEEDED_e__Struct RECEIVE_BUFFER internal partial struct _Anonymous_e__Union { [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1645_C9")] internal _START_COMPLETE_e__Struct START_COMPLETE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1651_C9")] internal _RECEIVE_e__Struct RECEIVE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1660_C9")] internal _SEND_COMPLETE_e__Struct SEND_COMPLETE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1664_C9")] internal _PEER_SEND_ABORTED_e__Struct PEER_SEND_ABORTED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1667_C9")] internal _PEER_RECEIVE_ABORTED_e__Struct PEER_RECEIVE_ABORTED; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1670_C9")] internal _SEND_SHUTDOWN_COMPLETE_e__Struct SEND_SHUTDOWN_COMPLETE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1673_C9")] internal _SHUTDOWN_COMPLETE_e__Struct SHUTDOWN_COMPLETE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1682_C9")] internal _IDEAL_SEND_BUFFER_SIZE_e__Struct IDEAL_SEND_BUFFER_SIZE; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1685_C9")] internal _CANCEL_ON_LOSS_e__Struct CANCEL_ON_LOSS; [FieldOffset(0)] - [NativeTypeName("struct (anonymous struct)")] + [NativeTypeName("__AnonymousRecord_msquic_L1689_C9")] internal _RECEIVE_BUFFER_NEEDED_e__Struct RECEIVE_BUFFER_NEEDED; internal partial struct _START_COMPLETE_e__Struct @@ -3259,7 +3414,7 @@ internal partial struct _START_COMPLETE_e__Struct [NativeTypeName("BOOLEAN : 1")] internal byte PeerAccepted { - get + readonly get { return (byte)(_bitfield & 0x1u); } @@ -3273,7 +3428,7 @@ internal byte PeerAccepted [NativeTypeName("BOOLEAN : 7")] internal byte RESERVED { - get + readonly get { return (byte)((_bitfield >> 1) & 0x7Fu); } @@ -3338,7 +3493,7 @@ internal partial struct _SHUTDOWN_COMPLETE_e__Struct [NativeTypeName("BOOLEAN : 1")] internal byte AppCloseInProgress { - get + readonly get { return (byte)(_bitfield & 0x1u); } @@ -3352,7 +3507,7 @@ internal byte AppCloseInProgress [NativeTypeName("BOOLEAN : 1")] internal byte ConnectionShutdownByApp { - get + readonly get { return (byte)((_bitfield >> 1) & 0x1u); } @@ -3366,7 +3521,7 @@ internal byte ConnectionShutdownByApp [NativeTypeName("BOOLEAN : 1")] internal byte ConnectionClosedRemotely { - get + readonly get { return (byte)((_bitfield >> 2) & 0x1u); } @@ -3380,7 +3535,7 @@ internal byte ConnectionClosedRemotely [NativeTypeName("BOOLEAN : 5")] internal byte RESERVED { - get + readonly get { return (byte)((_bitfield >> 3) & 0x1Fu); } @@ -3577,6 +3732,9 @@ internal unsafe partial struct QUIC_API_TABLE [NativeTypeName("QUIC_REGISTRATION_CLOSE2_FN")] internal delegate* unmanaged[Cdecl], void*, void> RegistrationClose2; + + [NativeTypeName("QUIC_CONNECTION_EXPORT_KEYING_MATERIAL_FN")] + internal delegate* unmanaged[Cdecl] ConnectionExportKeyingMaterial; } internal static unsafe partial class MsQuic @@ -3678,6 +3836,9 @@ internal static unsafe partial class MsQuic [NativeTypeName("#define QUIC_PARAM_GLOBAL_STATELESS_RETRY_CONFIG 0x0100000D")] internal const uint QUIC_PARAM_GLOBAL_STATELESS_RETRY_CONFIG = 0x0100000D; + [NativeTypeName("#define QUIC_PARAM_GLOBAL_XDP_MAP_CONFIG 0x0100000E")] + internal const uint QUIC_PARAM_GLOBAL_XDP_MAP_CONFIG = 0x0100000E; + [NativeTypeName("#define QUIC_PARAM_CONFIGURATION_SETTINGS 0x03000000")] internal const uint QUIC_PARAM_CONFIGURATION_SETTINGS = 0x03000000;