Huw Davies (@huw) commented about programs/rpcss/rpcss_main.c:
return S_OK; }
+/* Generates a new OXID suitable for use by an apartment. + * Each call to this function returns a distinct OXID. + * This function should not be invoked directly - use rpcss_get_new_apartment_oxid + * instead. */ +HRESULT __cdecl irpcss_get_new_apartment_oxid(handle_t h, DWORD process_id, OXID *oxid) +{ + static LONG oxid_lower_bits; + *oxid = (OXID)process_id << 32 | InterlockedIncrement(&oxid_lower_bits);
You can obtain the client's process id by calling `I_RpcBindingInqLocalClientPID()`, passing it the handle `h`, so there shouldn't be a need to explicitly pass the process id to the server. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2059#note_22305