Commit Graph

23 Commits

Author SHA1 Message Date
Dmitry Timoshkov 306e14b956 rpcrt4: Perform the INITOUT phase in NdrAsyncServerCall instead of RpcAsyncCompleteCall.
This is required to correctly support out reference parameters,
otherwise server method receives not initialized pointers during
the CALLSERVER phase and crashes.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-19 12:56:59 +02:00
Dmitry Timoshkov ccbfad5ea7 rpcrt4: Implement RpcAsyncCompleteCall for server side.
Based on NdrStubCall2 implementation.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-17 16:50:44 +02:00
Dmitry Timoshkov 29fa835687 rpcrt4: Implement NdrAsyncServerCall.
Based on NdrStubCall2 and NdrAsyncClientCall implementations.

In order to test asynchronous RPC I used dlls/rpcrt4/tests/server.c as a base,
converted int_return() and sum() to use asynchronous RPC on both client and
server sides (server.idl doesn't need any changes), and added server.acf:
interface IServer
{
    [async] int_return();
    [async] sum();
}
With this implementation these tests pass under Wine. Since widl doesn't
support asynchronous RPC it's impossible to add appropriate Wine tests.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-17 16:50:44 +02:00
Jacek Caban 69ca517e6d rpcrt4: Fix comment about HANDLE_PARAM_IS_RETURN.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:35:27 +01:00
Zebediah Figura 69cd52875a rpcrt4: Use publicly defined NDR constants.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 09:53:07 +02:00
Piotr Caban 614afcefa3 rpcrt4: Free server side arguments with MustFree flag first so other arguments may be used to determine its size.
This also fixes a leak when both MustFree and ServerAllocSize flags are
specified.
2015-09-08 14:49:21 +09:00
Nikolay Sivov 2b40f9b01e rpcrt4: Implement RPC_FC_CALLBACK_HANDLE handle type for NdrClientCall2(). 2015-03-06 12:57:03 +09:00
Alexandre Julliard 78e8fccbd6 rpcrt4: Use the same phase values for clients and stubs. 2011-07-28 23:07:21 +02:00
Alexandre Julliard 348f00e116 rpcrt4: Convert old-style arguments for NdrMesProcEncodeDecode. 2011-07-28 17:30:40 +02:00
Alexandre Julliard 064a81782c rpcrt4: Fetch the arguments address from the StubMsg structure. 2011-07-28 12:48:39 +02:00
Alexandre Julliard 4447f221db rpcrt4: Use a single structure for all parameter types in new format descriptors. 2011-07-28 12:43:27 +02:00
Alexandre Julliard a75402af96 rpcrt4: Add a wrapper for NdrAsyncClientCall too. 2011-06-16 14:30:34 +02:00
Alexandre Julliard ffb8f4bedf rpcrt4: Add support for float parameters in client calls on x86_64. 2011-06-16 14:30:28 +02:00
Alexandre Julliard 379479a973 rpcrt4: Add a wrapper for NdrClientCall2 to isolate calling convention differences. 2011-06-14 16:12:04 +02:00
Marcus Meissner 58040f9508 rpcrt4: Mark internal symbols with hidden visibility. 2011-04-26 15:31:27 +02:00
Alexandre Julliard 8de0242885 rpcrt4: Replace long and unsigned long by more appropriate types. 2009-07-03 13:42:57 +02:00
Rob Shearman 834c5b4275 rpcrt4: Implement stubless asynchronous NDR interpreter.
CodeWeavers did this work for supporting Outlook 2007.
2009-03-25 15:20:44 +01:00
Rob Shearman 09f343b135 rpcrt4: Ignore the return value of functions when unmarshalling a pickled procedure. 2008-07-14 11:48:25 +02:00
Rob Shearman 734094ed2c rpcrt4: Implement NdrMesProcEncodeDecode. 2008-07-14 11:48:08 +02:00
Austin English 313a85f163 Spelling fixes. 2008-04-17 12:25:57 +02:00
James Hawkins 00394486df janitorial: Remove links to any microsoft site. 2008-03-01 12:03:59 +01:00
Rob Shearman f9a54a58d5 rpcrt4: ndr_stubless.h should include ndrtypes.h as it depends on types it defines. 2008-01-07 22:55:32 +01:00
Rob Shearman 83bc80ada0 rpcrt4: Move some type definitions from ndr_stubless.c to ndr_stubless.h. 2007-11-05 13:24:36 +01:00