How to use Direct3D11CaptureFramePool in NET 5 / 6
See the question and my original answer on StackOverflowWith .NET 6 and CsWinRT, you can write your CreateDirect3DDeviceFromSharpDXDevice function like this:
private static IDirect3DDevice CreateDirect3DDeviceFromSharpDXDevice(SharpDX.Direct3D11.Device sharpDxDevice)
{
if (CreateDirect3D11DeviceFromDXGIDevice(sharpDxDevice.NativePointer, out var punk) != 0)
return null;
return WinRT.MarshalInterface<IDirect3DDevice>.FromAbi(punk);
}