pub trait INvDrvServices: IObject {
fn open(&mut self, path: InMapAliasBuffer<u8>) -> Result<(Fd, ErrorCode)>;
fn ioctl(
&mut self,
fd: Fd,
id: IoctlId,
in_buf: InAutoSelectBuffer<u8>,
out_buf: OutAutoSelectBuffer<u8>
) -> Result<ErrorCode>;
fn close(&mut self, fd: Fd) -> Result<ErrorCode>;
fn initialize(
&mut self,
transfer_mem_size: u32,
self_process_handle: CopyHandle,
transfer_mem_handle: CopyHandle
) -> Result<ErrorCode>;
fn sf_server_impl_open(
&mut self,
protocol: CommandProtocol,
ctx: &mut ServerContext<'_>
) -> Result<()> { ... }
fn sf_server_impl_ioctl(
&mut self,
protocol: CommandProtocol,
ctx: &mut ServerContext<'_>
) -> Result<()> { ... }
fn sf_server_impl_close(
&mut self,
protocol: CommandProtocol,
ctx: &mut ServerContext<'_>
) -> Result<()> { ... }
fn sf_server_impl_initialize(
&mut self,
protocol: CommandProtocol,
ctx: &mut ServerContext<'_>
) -> Result<()> { ... }
fn get_sf_command_metadata_table(&self) -> CommandMetadataTable { ... }
}