Module: wine Branch: master Commit: 173ae68f0b41d5540e17f46e174b762bc1dc4e4f URL: http://source.winehq.org/git/wine.git/?a=commit;h=173ae68f0b41d5540e17f46e17...
Author: Huw Davies huw@codeweavers.com Date: Mon Jul 13 13:11:39 2015 +0100
rpcrt4: Procedures containing a range within a conformance have a larger correlation descriptor.
---
dlls/rpcrt4/ndr_stubless.c | 6 ++++++ include/ndrtypes.h | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/dlls/rpcrt4/ndr_stubless.c b/dlls/rpcrt4/ndr_stubless.c index 3106d47..dbdf873 100644 --- a/dlls/rpcrt4/ndr_stubless.c +++ b/dlls/rpcrt4/ndr_stubless.c @@ -736,6 +736,8 @@ LONG_PTR CDECL ndr_client_call( PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pForma { /* initialize extra correlation package */ NdrCorrelationInitialize(&stubMsg, NdrCorrCache, sizeof(NdrCorrCache), 0); + if (ext_flags.Unused & 0x2) /* has range on conformance */ + stubMsg.CorrDespIncrement = 12; }
/* order of phases: @@ -1345,6 +1347,8 @@ LONG WINAPI NdrStubCall2( { /* initialize extra correlation package */ NdrCorrelationInitialize(&stubMsg, NdrCorrCache, sizeof(NdrCorrCache), 0); + if (ext_flags.Unused & 0x2) /* has range on conformance */ + stubMsg.CorrDespIncrement = 12; } } else @@ -1618,6 +1622,8 @@ LONG_PTR CDECL ndr_async_client_call( PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING { /* initialize extra correlation package */ NdrCorrelationInitialize(pStubMsg, async_call_data->NdrCorrCache, sizeof(async_call_data->NdrCorrCache), 0); + if (ext_flags.Unused & 0x2) /* has range on conformance */ + pStubMsg->CorrDespIncrement = 12; }
/* order of phases: diff --git a/include/ndrtypes.h b/include/ndrtypes.h index 8605b73..b353ce5 100644 --- a/include/ndrtypes.h +++ b/include/ndrtypes.h @@ -83,7 +83,11 @@ typedef struct * routine @ NotifyIndex. */ unsigned char HasNotify2 : 1; /* 0x10 - should call MIDL [notify_flag] routine @ * NotifyIndex. */ - unsigned char Unused : 3; + + /* The following bits are in fact used by midl but haven't yet been + named in the SDK. */ + unsigned char Unused : 3; /* 0x20 - has complex return */ + /* 0x40 - has range on conformance */ } INTERPRETER_OPT_FLAGS2, *PINTERPRETER_OPT_FLAGS2;
/* Win2000 extensions */