windows::Win32::AI::MachineLearning::DirectML

Trait IDMLDevice_Impl

pub trait IDMLDevice_Impl: IDMLObject_Impl {
    // Required methods
    fn CheckFeatureSupport(
        &self,
        feature: DML_FEATURE,
        featurequerydatasize: u32,
        featurequerydata: *const c_void,
        featuresupportdatasize: u32,
        featuresupportdata: *mut c_void,
    ) -> Result<()>;
    fn CreateOperator(
        &self,
        desc: *const DML_OPERATOR_DESC,
        riid: *const GUID,
        ppv: *mut *mut c_void,
    ) -> Result<()>;
    fn CompileOperator(
        &self,
        op: Ref<'_, IDMLOperator>,
        flags: DML_EXECUTION_FLAGS,
        riid: *const GUID,
        ppv: *mut *mut c_void,
    ) -> Result<()>;
    fn CreateOperatorInitializer(
        &self,
        operatorcount: u32,
        operators: *const Option<IDMLCompiledOperator>,
        riid: *const GUID,
        ppv: *mut *mut c_void,
    ) -> Result<()>;
    fn CreateCommandRecorder(
        &self,
        riid: *const GUID,
        ppv: *mut *mut c_void,
    ) -> Result<()>;
    fn CreateBindingTable(
        &self,
        desc: *const DML_BINDING_TABLE_DESC,
        riid: *const GUID,
        ppv: *mut *mut c_void,
    ) -> Result<()>;
    fn Evict(
        &self,
        count: u32,
        ppobjects: *const Option<IDMLPageable>,
    ) -> Result<()>;
    fn MakeResident(
        &self,
        count: u32,
        ppobjects: *const Option<IDMLPageable>,
    ) -> Result<()>;
    fn GetDeviceRemovedReason(&self) -> Result<()>;
    fn GetParentDevice(
        &self,
        riid: *const GUID,
        ppv: *mut *mut c_void,
    ) -> Result<()>;
}

Required Methods§

fn CheckFeatureSupport( &self, feature: DML_FEATURE, featurequerydatasize: u32, featurequerydata: *const c_void, featuresupportdatasize: u32, featuresupportdata: *mut c_void, ) -> Result<()>

fn CreateOperator( &self, desc: *const DML_OPERATOR_DESC, riid: *const GUID, ppv: *mut *mut c_void, ) -> Result<()>

fn CompileOperator( &self, op: Ref<'_, IDMLOperator>, flags: DML_EXECUTION_FLAGS, riid: *const GUID, ppv: *mut *mut c_void, ) -> Result<()>

fn CreateOperatorInitializer( &self, operatorcount: u32, operators: *const Option<IDMLCompiledOperator>, riid: *const GUID, ppv: *mut *mut c_void, ) -> Result<()>

fn CreateCommandRecorder( &self, riid: *const GUID, ppv: *mut *mut c_void, ) -> Result<()>

fn CreateBindingTable( &self, desc: *const DML_BINDING_TABLE_DESC, riid: *const GUID, ppv: *mut *mut c_void, ) -> Result<()>

fn Evict( &self, count: u32, ppobjects: *const Option<IDMLPageable>, ) -> Result<()>

fn MakeResident( &self, count: u32, ppobjects: *const Option<IDMLPageable>, ) -> Result<()>

fn GetDeviceRemovedReason(&self) -> Result<()>

fn GetParentDevice( &self, riid: *const GUID, ppv: *mut *mut c_void, ) -> Result<()>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§