/// <summary>To be documented.</summary>
        public readonly unsafe int GetResourceBindingDescByName(byte *Name, ref ShaderInputBindDesc pDesc)
        {
            var @this = (ID3D12ShaderReflection *)Unsafe.AsPointer(ref Unsafe.AsRef(in this));
            int ret   = default;

            fixed(ShaderInputBindDesc *pDescPtr = &pDesc)
            {
                ret = ((delegate * unmanaged[Cdecl] < ID3D12ShaderReflection *, byte *, ShaderInputBindDesc *, int >)LpVtbl[11])(@this, Name, pDescPtr);
            }

            return(ret);
        }
        /// <summary>To be documented.</summary>
        public readonly int GetResourceBindingDesc(uint ResourceIndex, ref ShaderInputBindDesc pDesc)
        {
            var @this = (ID3D12ShaderReflection *)Unsafe.AsPointer(ref Unsafe.AsRef(in this));
            int ret   = default;

            fixed(ShaderInputBindDesc *pDescPtr = &pDesc)
            {
                ret = ((delegate * unmanaged[Cdecl] < ID3D12ShaderReflection *, uint, ShaderInputBindDesc *, int >)LpVtbl[6])(@this, ResourceIndex, pDescPtr);
            }

            return(ret);
        }
        /// <summary>To be documented.</summary>
        public readonly int GetResourceBindingDescByName(string Name, ref ShaderInputBindDesc pDesc)
        {
            var @this   = (ID3D12ShaderReflection *)Unsafe.AsPointer(ref Unsafe.AsRef(in this));
            int ret     = default;
            var NamePtr = (byte *)Marshal.StringToHGlobalAnsi(Name);

            fixed(ShaderInputBindDesc *pDescPtr = &pDesc)
            {
                ret = ((delegate * unmanaged[Cdecl] < ID3D12ShaderReflection *, byte *, ShaderInputBindDesc *, int >)LpVtbl[11])(@this, NamePtr, pDescPtr);
            }

            Marshal.FreeHGlobal((nint)NamePtr);
            return(ret);
        }