in crates/libs/core/src/runtime/stateless_bridge.rs [60:90]
fn CreateInstance(
&self,
servicetypename: &crate::PCWSTR,
servicename: FABRIC_URI,
initializationdatalength: u32,
initializationdata: *const u8,
partitionid: &crate::GUID,
instanceid: i64,
) -> crate::WinResult<IFabricStatelessServiceInstance> {
let h_servicename = WStringWrap::from(crate::PCWSTR(servicename.0)).into();
let h_servicetypename = WStringWrap::from(*servicetypename).into();
let data = unsafe {
if !initializationdata.is_null() {
std::slice::from_raw_parts(initializationdata, initializationdatalength as usize)
} else {
&[]
}
};
let instance = self.inner.create_instance(
&h_servicetypename,
&h_servicename,
data,
partitionid,
instanceid,
)?;
let rt = self.rt.clone();
let instance_bridge = IFabricStatelessServiceInstanceBridge::create(instance, rt);
Ok(instance_bridge.into())
}