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.