pub trait IVdsSubSystem_Impl: Sized {
    // Required methods
    fn GetProperties(
        &self,
        psubsystemprop: *mut VDS_SUB_SYSTEM_PROP
    ) -> Result<()>;
    fn GetProvider(&self) -> Result<IVdsProvider>;
    fn QueryControllers(&self) -> Result<IEnumVdsObject>;
    fn QueryLuns(&self) -> Result<IEnumVdsObject>;
    fn QueryDrives(&self) -> Result<IEnumVdsObject>;
    fn GetDrive(&self, sbusnumber: i16, sslotnumber: i16) -> Result<IVdsDrive>;
    fn Reenumerate(&self) -> Result<()>;
    fn SetControllerStatus(
        &self,
        ponlinecontrolleridarray: *const GUID,
        lnumberofonlinecontrollers: i32,
        pofflinecontrolleridarray: *const GUID,
        lnumberofofflinecontrollers: i32
    ) -> Result<()>;
    fn CreateLun(
        &self,
        type: VDS_LUN_TYPE,
        ullsizeinbytes: u64,
        pdriveidarray: *const GUID,
        lnumberofdrives: i32,
        pwszunmaskinglist: &PCWSTR,
        phints: *const VDS_HINTS
    ) -> Result<IVdsAsync>;
    fn ReplaceDrive(
        &self,
        drivetobereplaced: &GUID,
        replacementdrive: &GUID
    ) -> Result<()>;
    fn SetStatus(&self, status: VDS_SUB_SYSTEM_STATUS) -> Result<()>;
    fn QueryMaxLunCreateSize(
        &self,
        type: VDS_LUN_TYPE,
        pdriveidarray: *const GUID,
        lnumberofdrives: i32,
        phints: *const VDS_HINTS
    ) -> Result<u64>;
}

Required Methods§

fn GetProperties(&self, psubsystemprop: *mut VDS_SUB_SYSTEM_PROP) -> Result<()>

fn GetProvider(&self) -> Result<IVdsProvider>

fn QueryControllers(&self) -> Result<IEnumVdsObject>

fn QueryLuns(&self) -> Result<IEnumVdsObject>

fn QueryDrives(&self) -> Result<IEnumVdsObject>

fn GetDrive(&self, sbusnumber: i16, sslotnumber: i16) -> Result<IVdsDrive>

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

fn SetControllerStatus( &self, ponlinecontrolleridarray: *const GUID, lnumberofonlinecontrollers: i32, pofflinecontrolleridarray: *const GUID, lnumberofofflinecontrollers: i32 ) -> Result<()>

fn CreateLun( &self, type: VDS_LUN_TYPE, ullsizeinbytes: u64, pdriveidarray: *const GUID, lnumberofdrives: i32, pwszunmaskinglist: &PCWSTR, phints: *const VDS_HINTS ) -> Result<IVdsAsync>

fn ReplaceDrive( &self, drivetobereplaced: &GUID, replacementdrive: &GUID ) -> Result<()>

fn SetStatus(&self, status: VDS_SUB_SYSTEM_STATUS) -> Result<()>

fn QueryMaxLunCreateSize( &self, type: VDS_LUN_TYPE, pdriveidarray: *const GUID, lnumberofdrives: i32, phints: *const VDS_HINTS ) -> Result<u64>

Object Safety§

This trait is not object safe.

Implementors§