public Result OpenSharedResourceByName <T>(string name, SharedResourceFlags access, out T?resource) where T : ID3D11Resource
    {
        Result result = OpenSharedResourceByName(name, (int)access, typeof(T).GUID, out IntPtr nativePtr);

        if (result.Success)
        {
            resource = MarshallingHelpers.FromPointer <T>(nativePtr);
            return(result);
        }

        resource = default;
        return(result);
    }
 public T OpenSharedResourceByName <T>(string name, SharedResourceFlags access) where T : ID3D11Resource
 {
     OpenSharedResourceByName(name, (int)access, typeof(T).GUID, out IntPtr nativePtr).CheckError();
     return(MarshallingHelpers.FromPointer <T>(nativePtr));
 }