Skip to content

sco_api.invoke_raw

Game thread. Calls the raw handler registered under name, now: in_size bytes in, up to *inout_out_size bytes out (on return: bytes written, or needed with SCO_TOO_MANY). in may be NULL with in_size 0; out may be NULL with *inout_out_size 0 (asks the size), and inout_out_size NULL when no output is wanted. SCO_NOT_FOUND, SCO_UNAVAILABLE (capability missing), SCO_WRONG_THREAD (other threads), SCO_CRASHED (the handler faulted).

sco_result (*)(sco_plugin *, const char *, const void *, uint32_t, void *, uint32_t *)

Service index

Property Value
Symbol sco_api.invoke_raw
Record ID sco-api-invoke-raw
Service sco_api
Table sco_api
Version macro SCO_API_MAJOR/SCO_API_MINOR
Packed table version 65537
Since / availability size >= 120; 1.1
Complete member extent (x64 bytes) 120
Table size (x64 bytes) 128

Header source

sco_result (*invoke_raw)(sco_plugin* self, const char* name, const void* in_bytes, uint32_t in_size, void* out_bytes, uint32_t* inout_out_size);
Game thread. Calls the raw handler registered under name, now: in_size bytes in, up to *inout_out_size bytes out (on return: bytes written, or needed with SCO_TOO_MANY). in may be NULL with in_size 0; out may be NULL with *inout_out_size 0 (asks the size), and inout_out_size NULL when no output is wanted. SCO_NOT_FOUND, SCO_UNAVAILABLE (capability missing), SCO_WRONG_THREAD (other threads), SCO_CRASHED (the handler faulted).

BAD_ARG invalid self/name/buffer combinations; WRONG_THREAD; NOT_FOUND; UNAVAILABLE handler gate; CRASHED fault (out size 0); TOO_MANY required size/overstated output; other handler result. Error output-byte contents unspecified.

unspecified

in/out are caller buffers borrowed synchronously; layout and byte ownership are handler contract. Host does not keep bytes.

Game thread only (WRONG_THREAD elsewhere); recursive raw-handler invocation unspecified.

unspecified

unspecified

No cancellation entrypoint; synchronous unless noted.

Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.

Language Catalogue status Source evidence / wrapper tokens
c direct include/sco_api.h
(*invoke_raw)
cpp typed-wrapper include/scosdk/raw.hpp
const sco_result r = plugin.Api()->invoke_raw(plugin.Self(), name, in.empty() ? nullptr : in.data(),
csharp typed-wrapper sdk/csharp/Sco.Sdk/Services.cs
r = a->invoke_raw(SelfPtr, n, i, (uint)input.Length, o, &size);
lua unsupported sdk/docs/lua.md
The script sees only:
sdk/docs/lua.md
There is no io, os, package, require, debug, dofile, loadfile or FFI

ABI pins prove layout, not semantic behavior or a live game session.