Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ConstantWriter emits unchecked integers in unsigned integer enumerations #1369

Closed
riverar opened this issue Nov 17, 2022 · 7 comments · Fixed by #1478
Closed

ConstantWriter emits unchecked integers in unsigned integer enumerations #1369

riverar opened this issue Nov 17, 2022 · 7 comments · Fixed by #1478
Assignees

Comments

@riverar
Copy link
Collaborator

riverar commented Nov 17, 2022

Example invalid generated output:

public enum D3D12_BARRIER_SYNC : uint
{
    D3D12_BARRIER_SYNC_NONE = 0,
    D3D12_BARRIER_SYNC_ALL = 0x1,
    // ...
    D3D12_BARRIER_SYNC_SPLIT = unchecked((int)(0x80000000)),
}
error CS0031: Constant value '-2147483648' cannot be converted to a 'uint'

Seems to be hardcoded here:

if (uncheckedNeeded)
{
valueText = $"unchecked((int){valueText})";
}

Repro: TBD

@MarijnS95
Copy link
Contributor

MarijnS95 commented Nov 21, 2022

You can find a repro in microsoft/DirectX-Headers#82 😬 (EDIT: Note that the offending enum variants have been commented out to get past the resulting error CS0031: Constant value '-2147483648' cannot be converted to a 'uint' compiler error emitted because of this).

@mikebattista mikebattista self-assigned this Nov 21, 2022
@mikebattista
Copy link
Contributor

I ran into this trying to fix #1401 as well but haven't been able to track down where this is coming from.

@riverar, I don't believe the line you linked is the culprit. That is for constants that we scrape and turn into enums not enums that are scraped directly from the headers.

+@tannergooding @sotteson1 @chenss3 for additional eyes on this.

@tannergooding
Copy link
Member

It's possible ClangSharp has some incorrect handling in UncheckStmt (https://source.clangsharp.dev/#ClangSharp.PInvokeGenerator/PInvokeGenerator.cs,5894), but I would typically expect that to "work correctly" since GetTargetTypeName explicitly looks for type remappings done to enums: https://source.clangsharp.dev/#ClangSharp.PInvokeGenerator/PInvokeGenerator.cs,2c230d2bbc5aba9c (this presumes some --with-type D3D12_BARRIER_SYNC=uint)

That being said, why is this typed as uint on the win32metadata side? I don't see anything in the header or idl that indicates UINT is the correct type here. In fact if you use something like godbolt to check, you'll see that D3D12_BARRIER_SYNC_SPLIT is considered negative, not positive: https://godbolt.org/z/jMd95TKe5 (the same repro's in a local MSVC using the official header).

The sign of types is important and there are platforms (such as RISC-V) where using the incorrect type will result in incorrect data. This may be impactful to future platforms that Windows could theoretically support.

@mikebattista
Copy link
Contributor

+@damyanp

Are these enums supposed to be int? What does it mean for a flags enum to be int vs. uint? Is this D3D12_BARRIER_SYNC enum supposed to be used in places that require int or uint? The other flags enums that are scanned seem to be correctly identified as uint without issue.

If I add --with-type D3D12_BARRIER_SYNC=uint then below is what clangsharp produces. You can see it's natively scanning it as an int given the NativeTypeName attribute. Though with --with-type, there's no more unchecked issue for this enum, and the enum is typed as a uint.

[NativeTypeName("int")][global::System.Flags]    public enum D3D12_BARRIER_SYNC : uint
    {
        D3D12_BARRIER_SYNC_NONE = 0,
        D3D12_BARRIER_SYNC_ALL = 0x1,
        D3D12_BARRIER_SYNC_DRAW = 0x2,
        D3D12_BARRIER_SYNC_INPUT_ASSEMBLER = 0x4,
        D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
        D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
        D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
        D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40,
        D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80,
        D3D12_BARRIER_SYNC_RAYTRACING = 0x100,
        D3D12_BARRIER_SYNC_COPY = 0x200,
        D3D12_BARRIER_SYNC_RESOLVE = 0x400,
        D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800,
        D3D12_BARRIER_SYNC_PREDICATION = 0x800,
        D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
        D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
        D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
        D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
        D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
        D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
        D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000,
        D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000,
        D3D12_BARRIER_SYNC_SPLIT = 0x80000000,
    }

@tannergooding
Copy link
Member

What does it mean for a flags enum to be int vs. uint?

Not much in .NET since we don't have the same implicit conversions that C/C++ has.

That being said, the win32metadata repo is meant to be usable from many languages where such implicit conversions might exist. In such scenarios, comparisons such as value > 0 will never be true for uint but would have been true for int. Since the type of the enum is signed in C/C++, this can lead to subtle differences in codegen between the platforms.

There are also some target platforms (such as RISC-V and I believe MIPS as well) where the sign of the type matters to the calling convention. On 64-bit platforms, a 32-bit value is sign or zero-extended to fill the register and so if typed as uint then D3D12_BARRIER_SYNC_SPLIT will be passed as 0x00000000_80000000 but as int (like in C/C++) it will be passed as 0xFFFFFFFF_80000000 and this can cause other downstream differences and bad behaviors.

In general we should aim to exactly match the signedness and other behaviors as exhibited by C/C++. Likewise, for cases like char, long, unsigned long, or wchar_t where the exact size and/or signedness can vary based on target platform/architecture, there should be enough information in the metadata to "recover" the original type so that languages can do the "correct" thing.

damyanp added a commit to damyanp/win32metadata that referenced this issue Jan 25, 2023
damyanp added a commit to damyanp/win32metadata that referenced this issue Jan 25, 2023
damyanp added a commit to damyanp/win32metadata that referenced this issue Jan 25, 2023
mikebattista pushed a commit that referenced this issue Jan 25, 2023
#1445)

* Use Direct3D12 nuget package for d3d12 headers

* Workaround #1369
@mikebattista
Copy link
Contributor

I found the place where flags enums were being marked as uint.

if (node.BaseList == null)
{
var baseList =
SyntaxFactory.BaseList(
SyntaxFactory.SingletonSeparatedList<BaseTypeSyntax>(
SyntaxFactory.SimpleBaseType(SyntaxFactory.ParseTypeName("uint").WithLeadingTrivia(SyntaxFactory.Space))))
.WithTrailingTrivia(SyntaxFactory.Whitespace("\r\n"));
node = node.WithIdentifier(node.Identifier.WithTrailingTrivia(SyntaxFactory.Space));
node = node.WithBaseList(baseList);
}

By commenting out this section, I get a pretty large diff below.

@damyanp can you sanity check the D3D changes? This diff also included the fix for #1401 so there should be (1) more enums tagged with the Flags attribute as well as (2) enums that were previously forced to be uint are now being scanned as int. Are these changes all expected?

Windows.Win32.AI.MachineLearning.DirectML.DML_CREATE_DEVICE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.AI.MachineLearning.DirectML.DML_EXECUTION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.AI.MachineLearning.DirectML.DML_TENSOR_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Devices.Display.AR_STATE :  => [Flags]
Windows.Win32.Devices.Display.ORIENTATION_PREFERENCE :  => [Flags]
Windows.Win32.Graphics.Direct3D11.D3D11_BIND_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D11.D3D11_CPU_ACCESS_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D11.D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D11.D3D11_FENCE_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D11.D3D11_RESOURCE_MISC_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D11.D3D11_RLDO_FLAGS :  => [Flags]
Windows.Win32.Graphics.Direct3D11.D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_BUFFER_SRV_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_BUFFER_UAV_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_CLEAR_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_COMMAND_LIST_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_COMMAND_LIST_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_COMMAND_POOL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_COMMAND_QUEUE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_COMMAND_RECORDER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_DEBUG_FEATURE :  => [Flags]
Windows.Win32.Graphics.Direct3D12.D3D12_DESCRIPTOR_HEAP_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_DESCRIPTOR_RANGE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_DEVICE_FACTORY_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_DEVICE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_DRED_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_DRED_PAGE_FAULT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_DSV_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_EXPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_FENCE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_FORMAT_SUPPORT1.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_FORMAT_SUPPORT2.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_GPU_BASED_VALIDATION_FLAGS :  => [Flags]
Windows.Win32.Graphics.Direct3D12.D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS :  => [Flags]
Windows.Win32.Graphics.Direct3D12.D3D12_GRAPHICS_STATES.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_HEAP_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_MESSAGE_CALLBACK_FLAGS :  => [Flags]
Windows.Win32.Graphics.Direct3D12.D3D12_META_COMMAND_PARAMETER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_MULTIPLE_FENCE_WAIT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_PIPELINE_STATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_PROTECTED_RESOURCE_SESSION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RAY_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RAYTRACING_GEOMETRY_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RAYTRACING_INSTANCE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RAYTRACING_PIPELINE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RENDER_PASS_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RESIDENCY_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RESOURCE_BARRIER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RESOURCE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RESOURCE_STATES.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_RLDO_FLAGS :  => [Flags]
Windows.Win32.Graphics.Direct3D12.D3D12_ROOT_DESCRIPTOR_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_ROOT_SIGNATURE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_SAMPLER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_SHADER_CACHE_CONTROL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_SHADER_CACHE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_SHADER_CACHE_KIND_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_SHADER_CACHE_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_SHADER_MIN_PRECISION_SUPPORT.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_STATE_OBJECT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_TEXTURE_BARRIER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_TILE_COPY_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_TILE_MAPPING_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_VIEW_INSTANCING_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_CONFIGURATION :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_DRAG_DROP_CONFIGURATION :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_GESTURE_CONFIGURATION :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_HITTEST_TYPE :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_HORIZONTALALIGNMENT :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_MOTION_TYPES :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_SNAPPOINT_COORDINATE :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_VERTICALALIGNMENT :  => [Flags]
Windows.Win32.Graphics.DirectManipulation.DIRECTMANIPULATION_VIEWPORT_OPTIONS :  => [Flags]
Windows.Win32.Graphics.DirectWrite.DWRITE_AUTOMATIC_FONT_AXES.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.DirectWrite.DWRITE_FONT_AXIS_ATTRIBUTES.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.DirectWrite.DWRITE_FONT_SIMULATIONS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.DirectWrite.DWRITE_GLYPH_IMAGE_FORMATS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.DirectWrite.DWRITE_SCRIPT_SHAPES.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Dwm.DWM_TAB_WINDOW_REQUIREMENTS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Dxgi.DXGI_DEBUG_RLO_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Dxgi.DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.Audio.AUDCLNT_STREAMOPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.Audio.AUDIO_DUCKING_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.Audio.AudioObjectType.value__...System.UInt32 => System.Int32
Windows.Win32.Media.Audio.SPATIAL_AUDIO_STREAM_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.ADVISE_TYPE.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.AMMSF_MMS_INIT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.AMMSF_MS_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.AMMSF_RENDER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.DDSFF_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.KSPROPERTY_IPSINK.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.MMSSF_GET_INFORMATION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.OUTPUT_STATE.value__...System.UInt32 => System.Int32
Windows.Win32.Media.DirectShow.REG_PINFLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_DECODE_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_HEAP_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_ENCODER_VALIDATION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_PROCESS_FEATURE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_PROCESS_FILTER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_PROCESS_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.D3D12_VIDEO_SCALE_SUPPORT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.MF_RESOLUTION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.MF_SOURCE_READER_CONTROL_FLAG :  => [Flags]
Windows.Win32.Media.MediaFoundation.MF_SOURCE_READER_FLAG :  => [Flags]
Windows.Win32.Media.MediaFoundation.MFCameraOcclusionState :  => [Flags]
Windows.Win32.Media.MediaFoundation.MFT_ENUM_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.OPM_HDCP_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Media.MediaFoundation.PLAYTO_SOURCE_CREATEFLAGS :  => [Flags]
Windows.Win32.NetworkManagement.WindowsFirewall.FW_DYNAMIC_KEYWORD_ADDRESS_ENUM_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.NetworkManagement.WindowsFirewall.FW_DYNAMIC_KEYWORD_ADDRESS_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Security.Authentication.Identity.Provider.IdentityUpdateEvent.value__...System.UInt32 => System.Int32
Windows.Win32.Security.Authentication.Identity.SchGetExtensionsOptions.value__...System.UInt32 => System.Int32
Windows.Win32.Security.Credentials.KeyCredentialManagerOperationErrorStates.value__...System.UInt32 => System.Int32
Windows.Win32.Security.EnterpriseData.ENTERPRISE_DATA_POLICIES.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_CANCEL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_CLOSE_COMPLETION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_DEHYDRATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_DELETE_COMPLETION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_DELETE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_FETCH_DATA_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_FETCH_PLACEHOLDERS_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_OPEN_COMPLETION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_RENAME_COMPLETION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_RENAME_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CALLBACK_VALIDATE_DATA_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CONNECT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CONVERT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_CREATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_DEHYDRATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_HARDLINK_POLICY.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_HYDRATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPEN_FILE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_ACK_DATA_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_ACK_DEHYDRATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_ACK_DELETE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_ACK_RENAME_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_RESTART_HYDRATION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_RETRIEVE_DATA_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_TRANSFER_DATA_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_PLACEHOLDER_CREATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_REGISTER_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_REVERT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_SET_IN_SYNC_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_SET_PIN_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.CloudFilters.CF_UPDATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.FileSystem.IORING_CREATE_ADVISORY_FLAGS :  => [Flags]
Windows.Win32.Storage.FileSystem.IORING_CREATE_REQUIRED_FLAGS :  => [Flags]
Windows.Win32.Storage.FileSystem.IORING_FEATURE_FLAGS :  => [Flags]
Windows.Win32.Storage.FileSystem.IORING_SQE_FLAGS :  => [Flags]
Windows.Win32.Storage.Packaging.Appx.AddPackageDependencyOptions :  => [Flags]
Windows.Win32.Storage.Packaging.Appx.APPX_CAPABILITIES.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Packaging.Appx.APPX_ENCRYPTED_PACKAGE_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Packaging.Appx.APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions :  => [Flags]
Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures :  => [Flags]
Windows.Win32.Storage.Packaging.Opc.OPC_READ_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Packaging.Opc.OPC_WRITE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.ProjectedFileSystem.PRJ_FILE_STATE.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.ProjectedFileSystem.PRJ_STARTVIRTUALIZING_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.ProjectedFileSystem.PRJ_UPDATE_FAILURE_CAUSES.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.ProjectedFileSystem.PRJ_UPDATE_TYPES.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.APPLY_SNAPSHOT_VHDSET_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.ATTACH_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.COMPACT_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.CREATE_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.DELETE_SNAPSHOT_VHDSET_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.DEPENDENT_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.DETACH_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.EXPAND_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.FORK_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.GET_STORAGE_DEPENDENCY_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.MERGE_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.MIRROR_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.MODIFY_VHDSET_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.OPEN_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.QUERY_CHANGES_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.RAW_SCSI_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.RESIZE_VIRTUAL_DISK_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.TAKE_SNAPSHOT_VHDSET_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Vhd.VIRTUAL_DISK_ACCESS_MASK.value__...System.UInt32 => System.Int32
Windows.Win32.Storage.Xps.XPS_SIGN_FLAGS :  => [Flags]
Windows.Win32.Storage.Xps.XPS_SIGN_POLICY :  => [Flags]
Windows.Win32.System.ApplicationInstallationAndServicing.ASM_BIND_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Com.COINIT.value__...System.UInt32 => System.Int32
Windows.Win32.System.Com.STGC.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.DBGPROP_ATTRIB_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.DBGPROP_INFO.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.MINIDUMP_TYPE.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.PROFILER_EVENT_MASK.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.PROFILER_HEAP_ENUM_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.PROFILER_HEAP_OBJECT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.Debug.SCRIPT_DEBUGGER_OPTIONS :  => [Flags]
Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_DUPLICATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_HANDLE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_PROCESS_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_THREAD_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.HostComputeSystem.HCS_EVENT_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.HDV_MMIO_MAPPING_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.WHV_ALLOCATE_VPCI_RESOURCE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.WHV_CREATE_VPCI_DEVICE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.WHV_MAP_GPA_RANGE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.WHV_TRANSLATE_GVA_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.WHV_VPCI_INTERRUPT_TARGET_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.WHV_VPCI_MMIO_RANGE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Hypervisor.WHV_X64_CPUID_RESULT2_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Ioctl.FS_BPIO_INFLAGS :  => [Flags]
Windows.Win32.System.Ioctl.FS_BPIO_OUTFLAGS :  => [Flags]
Windows.Win32.System.JobObjects.JOB_OBJECT_IO_RATE_CONTROL_FLAGS :  => [Flags]
Windows.Win32.System.JobObjects.JOB_OBJECT_NET_RATE_CONTROL_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Ole.PRINTFLAG.value__...System.UInt32 => System.Int32
Windows.Win32.System.Search.CONDITION_CREATION_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Search.STRUCTURED_QUERY_RESOLVE_OPTION.value__...System.UInt32 => System.Int32
Windows.Win32.System.SubsystemForLinux.WSL_DISTRIBUTION_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Threading.MACHINE_ATTRIBUTES.value__...System.UInt32 => System.Int32
Windows.Win32.System.WinRT.RO_ERROR_REPORTING_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.System.WinRT.Storage.HANDLE_ACCESS_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.System.WinRT.Storage.HANDLE_SHARING_OPTIONS.value__...System.UInt32 => System.Int32
Windows.Win32.System.Wmi.WBEM_GENERIC_FLAG_TYPE.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Accessibility.ProviderOptions :  => [Flags]
Windows.Win32.UI.Accessibility.SynchronizedInputType :  => [Flags]
Windows.Win32.UI.Accessibility.UIAutomationType :  => [Flags]
Windows.Win32.UI.Animation.UI_ANIMATION_DEPENDENCIES.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Controls.TA_PROPERTY_FLAG.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Controls.TA_TRANSFORM_FLAG :  => [Flags]
Windows.Win32.UI.HiDpi.DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.HiDpi.DIALOG_DPI_CHANGE_BEHAVIORS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Input.Touch.MANIPULATION_PROCESSOR_MANIPULATIONS :  => [Flags]
Windows.Win32.UI.Ribbon.UI_INVALIDATIONS :  => [Flags]
Windows.Win32.UI.Shell._SVGIO :  => [Flags]
Windows.Win32.UI.Shell.ACTIVATEOPTIONS :  => [Flags]
Windows.Win32.UI.Shell.ADJACENT_DISPLAY_EDGES :  => [Flags]
Windows.Win32.UI.Shell.AHTYPE :  => [Flags]
Windows.Win32.UI.Shell.ASSOC_FILTER :  => [Flags]
Windows.Win32.UI.Shell.CATEGORYINFO_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.CATSORT_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.CDCONTROLSTATEF :  => [Flags]
Windows.Win32.UI.Shell.CM_ENUM_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.CM_MASK :  => [Flags]
Windows.Win32.UI.Shell.CM_STATE :  => [Flags]
Windows.Win32.UI.Shell.CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS :  => [Flags]
Windows.Win32.UI.Shell.CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS :  => [Flags]
Windows.Win32.UI.Shell.DATAOBJ_GET_ITEM_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.DEFAULT_FOLDER_MENU_RESTRICTIONS :  => [Flags]
Windows.Win32.UI.Shell.DESKTOP_SLIDESHOW_OPTIONS :  => [Flags]
Windows.Win32.UI.Shell.DESKTOP_SLIDESHOW_STATE :  => [Flags]
Windows.Win32.UI.Shell.DSH_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.EXPLORER_BROWSER_FILL_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.EXPLORER_BROWSER_OPTIONS :  => [Flags]
Windows.Win32.UI.Shell.FILE_OPERATION_FLAGS2 :  => [Flags]
Windows.Win32.UI.Shell.FILETYPEATTRIBUTEFLAGS :  => [Flags]
Windows.Win32.UI.Shell.FOLDERFLAGS :  => [Flags]
Windows.Win32.UI.Shell.FOLDERVIEWOPTIONS :  => [Flags]
Windows.Win32.UI.Shell.HLBWIF_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.HLFNAMEF.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.HOMEGROUPSHARINGCHOICES :  => [Flags]
Windows.Win32.UI.Shell.KNOWN_FOLDER_FLAG :  => [Flags]
Windows.Win32.UI.Shell.LIBRARYMANAGEDIALOGOPTIONS :  => [Flags]
Windows.Win32.UI.Shell.LIBRARYOPTIONFLAGS :  => [Flags]
Windows.Win32.UI.Shell.LIBRARYSAVEFLAGS :  => [Flags]
Windows.Win32.UI.Shell.NAMESPACEWALKFLAG :  => [Flags]
Windows.Win32.UI.Shell.NSTCFOLDERCAPABILITIES :  => [Flags]
Windows.Win32.UI.Shell.NSTCSTYLE2 :  => [Flags]
Windows.Win32.UI.Shell.NWMF :  => [Flags]
Windows.Win32.UI.Shell.OPEN_AS_INFO_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.DRAWPROGRESSFLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.GETPROPERTYSTOREFLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PKA_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PLACEHOLDER_STATES.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPDESC_FORMAT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPDESC_SEARCHINFO_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPDESC_VIEW_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPERTYUI_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPERTYUI_FORMAT_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPERTYUI_NAME_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPVAR_CHANGE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PROPVAR_COMPARE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.PSTIME_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.SYNC_ENGINE_STATE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.PropertiesSystem.SYNC_TRANSFER_STATUS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.SCALE_CHANGE_FLAGS.value__...System.UInt32 => System.Int32
Windows.Win32.UI.Shell.SHELL_LINK_DATA_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.SIATTRIBFLAGS :  => [Flags]
Windows.Win32.UI.Shell.SLGP_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.SLR_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.STORAGE_PROVIDER_FILE_FLAGS :  => [Flags]
Windows.Win32.UI.Shell.STPFLAG :  => [Flags]
Windows.Win32.UI.Shell.TBPFLAG :  => [Flags]
Windows.Win32.UI.Shell.THUMBBUTTONFLAGS :  => [Flags]
Windows.Win32.UI.Shell.THUMBBUTTONMASK :  => [Flags]
Windows.Win32.UI.Shell.ThumbnailStreamCacheOptions :  => [Flags]
Windows.Win32.UI.Shell.VPWATERMARKFLAGS :  => [Flags]
Windows.Win32.UI.Shell.WTS_CACHEFLAGS :  => [Flags]
Windows.Win32.UI.Shell.WTS_CONTEXTFLAGS :  => [Flags]
Windows.Win32.UI.Shell.WTS_FLAGS :  => [Flags]

@mikebattista
Copy link
Contributor

mikebattista commented Mar 7, 2023

Also when I remove your previous workaround:

Windows.Win32.Graphics.Direct3D12.D3D12_BARRIER_ACCESS.value__...System.UInt32 => System.Int32
Windows.Win32.Graphics.Direct3D12.D3D12_BARRIER_SYNC.value__...System.UInt32 => System.Int32
winmd1: Windows.Win32.Graphics.Direct3D12.D3D12_BARRIER_ACCESS.D3D12_BARRIER_ACCESS_NO_ACCESS = 2147483648, winmd2 = -2147483648
winmd1: Windows.Win32.Graphics.Direct3D12.D3D12_BARRIER_SYNC.D3D12_BARRIER_SYNC_SPLIT = 2147483648, winmd2 = -2147483648

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants