Skip to content

Generate SafeHandle overloads for non-Span methods #1519

@jeremy-visionaid

Description

@jeremy-visionaid

Is your feature request related to a problem? Please describe.

Looks like v0.3.236 added a bunch of span overloads, but it also took away the non-span overloads that accepted safe handles. That creates a lot of code for me to update to the new projections... Especially when the previous methods were more both convenient and efficient in some cases.

Describe the solution you'd like

e.g. I'd like projections like the following to still exist:

internal static unsafe winmdroot.Foundation.BOOL DeviceIoControl(SafeHandle hDevice, uint dwIoControlCode, void* lpInBuffer, uint nInBufferSize, void* lpOutBuffer, uint nOutBufferSize, uint* lpBytesReturned, global::System.Threading.NativeOverlapped* lpOverlapped)

Describe alternatives you've considered

I would have to copy/modify a fair few of the old projections and/or update a lot of code to the new ones.

Additional context

e.g. Only the following SafeHandle overloads exist in v0.3.236 for DeviceIoControl:

		internal static unsafe winmdroot.Foundation.BOOL DeviceIoControl(SafeHandle hDevice, uint dwIoControlCode, ReadOnlySpan<byte> lpInBuffer, Span<byte> lpOutBuffer, out uint lpBytesReturned, ref global::System.Threading.NativeOverlapped lpOverlapped)

		internal static unsafe winmdroot.Foundation.BOOL DeviceIoControl(SafeHandle hDevice, uint dwIoControlCode, ReadOnlySpan<byte> lpInBuffer, Span<byte> lpOutBuffer)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions