rpcrt4: Procedures containing a range within a conformance have a larger correlation descriptor.

This commit is contained in:
Huw Davies 2015-07-13 13:11:39 +01:00 committed by Alexandre Julliard
parent e8d1380aa7
commit 173ae68f0b
2 changed files with 11 additions and 1 deletions

View File

@ -736,6 +736,8 @@ LONG_PTR CDECL ndr_client_call( PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pForma
{ {
/* initialize extra correlation package */ /* initialize extra correlation package */
NdrCorrelationInitialize(&stubMsg, NdrCorrCache, sizeof(NdrCorrCache), 0); NdrCorrelationInitialize(&stubMsg, NdrCorrCache, sizeof(NdrCorrCache), 0);
if (ext_flags.Unused & 0x2) /* has range on conformance */
stubMsg.CorrDespIncrement = 12;
} }
/* order of phases: /* order of phases:
@ -1345,6 +1347,8 @@ LONG WINAPI NdrStubCall2(
{ {
/* initialize extra correlation package */ /* initialize extra correlation package */
NdrCorrelationInitialize(&stubMsg, NdrCorrCache, sizeof(NdrCorrCache), 0); NdrCorrelationInitialize(&stubMsg, NdrCorrCache, sizeof(NdrCorrCache), 0);
if (ext_flags.Unused & 0x2) /* has range on conformance */
stubMsg.CorrDespIncrement = 12;
} }
} }
else else
@ -1618,6 +1622,8 @@ LONG_PTR CDECL ndr_async_client_call( PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING
{ {
/* initialize extra correlation package */ /* initialize extra correlation package */
NdrCorrelationInitialize(pStubMsg, async_call_data->NdrCorrCache, sizeof(async_call_data->NdrCorrCache), 0); 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: /* order of phases:

View File

@ -83,7 +83,11 @@ typedef struct
* routine @ NotifyIndex. */ * routine @ NotifyIndex. */
unsigned char HasNotify2 : 1; /* 0x10 - should call MIDL [notify_flag] routine @ unsigned char HasNotify2 : 1; /* 0x10 - should call MIDL [notify_flag] routine @
* NotifyIndex. */ * 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; } INTERPRETER_OPT_FLAGS2, *PINTERPRETER_OPT_FLAGS2;
/* Win2000 extensions */ /* Win2000 extensions */