Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
78ac42bb
Commit
78ac42bb
authored
Jan 28, 2009
by
Rob Shearman
Committed by
Alexandre Julliard
Jan 28, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rpcrt4: Implement NdrGetUserMarshalInfo.
parent
b46f1686
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
3 deletions
+44
-3
ndr_marshall.c
dlls/rpcrt4/ndr_marshall.c
+44
-3
No files found.
dlls/rpcrt4/ndr_marshall.c
View file @
78ac42bb
...
...
@@ -4338,10 +4338,51 @@ void WINAPI NdrUserMarshalFree(PMIDL_STUB_MESSAGE pStubMsg,
/***********************************************************************
* NdrGetUserMarshalInfo [RPCRT4.@]
*/
RPC_STATUS
RPC_ENTRY
NdrGetUserMarshalInfo
(
ULONG
*
flags
,
ULONG
level
,
NDR_USER_MARSHAL_INFO
*
mi
)
RPC_STATUS
RPC_ENTRY
NdrGetUserMarshalInfo
(
ULONG
*
flags
,
ULONG
level
,
NDR_USER_MARSHAL_INFO
*
u
mi
)
{
FIXME
(
"(%p,%u,%p)
\n
"
,
flags
,
level
,
mi
);
return
RPC_X_INVALID_BUFFER
;
USER_MARSHAL_CB
*
umcb
=
CONTAINING_RECORD
(
flags
,
USER_MARSHAL_CB
,
Flags
);
TRACE
(
"(%p,%u,%p)
\n
"
,
flags
,
level
,
umi
);
if
(
level
!=
1
)
return
RPC_S_INVALID_ARG
;
memset
(
&
umi
->
Level1
,
0
,
sizeof
(
umi
->
Level1
));
umi
->
InformationLevel
=
level
;
if
(
umcb
->
Signature
!=
USER_MARSHAL_CB_SIGNATURE
)
return
RPC_S_INVALID_ARG
;
umi
->
Level1
.
pfnAllocate
=
umcb
->
pStubMsg
->
pfnAllocate
;
umi
->
Level1
.
pfnFree
=
umcb
->
pStubMsg
->
pfnFree
;
umi
->
Level1
.
pRpcChannelBuffer
=
umcb
->
pStubMsg
->
pRpcChannelBuffer
;
switch
(
umcb
->
CBType
)
{
case
USER_MARSHAL_CB_MARSHALL
:
case
USER_MARSHAL_CB_UNMARSHALL
:
{
RPC_MESSAGE
*
msg
=
umcb
->
pStubMsg
->
RpcMsg
;
unsigned
char
*
buffer_start
=
msg
->
Buffer
;
unsigned
char
*
buffer_end
=
(
unsigned
char
*
)
msg
->
Buffer
+
msg
->
BufferLength
;
if
(
umcb
->
pStubMsg
->
Buffer
<
buffer_start
||
umcb
->
pStubMsg
->
Buffer
>
buffer_end
)
return
ERROR_INVALID_USER_BUFFER
;
umi
->
Level1
.
Buffer
=
umcb
->
pStubMsg
->
Buffer
;
umi
->
Level1
.
BufferSize
=
buffer_end
-
umcb
->
pStubMsg
->
Buffer
;
break
;
}
case
USER_MARSHAL_CB_BUFFER_SIZE
:
case
USER_MARSHAL_CB_FREE
:
break
;
default:
WARN
(
"unrecognised CBType %d
\n
"
,
umcb
->
CBType
);
}
return
RPC_S_OK
;
}
/***********************************************************************
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment