Я создал сервер ATL (.exe) с функцией, которая фактически отправляет буфер. Примерно так (idl):
interface IMyIFace : IDispatch{
[helpstring("method SendBuffer")] HRESULT SendBuffer([in] LONG BuffSize, [in, size_is(BuffSize)] BYTE* pData, [out] LONG* pExecCode);
};
Когда я вызываю функцию из клиента (другой exe), фактическая производительность была быстрее, чем raw memcpy того же блока памяти. Совершенно неясно, как это происходит? COM должен делать хотя бы memcpy внутри, верно?