mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.6 KiB
28 lines
1.6 KiB
The wx86rpc directory is designed to build wxrtdll.dll, wxndrdll.dll and
|
|
wxndr20.lib into \nt\public\sdk\lib\i386. These files are needed so that the
|
|
Wx86 project can properly build thunks for rpcrt4.dll. If a build break does
|
|
occur in one of these directories then a build break will occur when the Wx86
|
|
thunks are built.
|
|
|
|
The Wx86 rpc thunks are designed so that most of the rpcrt4 apis are
|
|
thunked to the native implementation in rpcrt4.dll with the exception of
|
|
most of the Ndr routines and the Ole proxy/stub code for IRpcStubBuffer and
|
|
IRpcProxyBuffer which are linked into the thunk dll and executed in x86 code.
|
|
Thus any functions that the emulated x86 code calls into the runtime must be
|
|
exported from the runtime and not rely on data variables in the runtime.
|
|
|
|
\nt\private\rpc\runtime\rtdll\rpcrt4.src replaces rpcrt4.def and defines
|
|
which exported apis are thunked and which are emulated. When adding a new api
|
|
it is important to place it within the proper section. Under the EXPORT_RT
|
|
section are all functions that are thunked while under EXPORT_NDR are all
|
|
functions that are emulated.
|
|
|
|
It is also important to contain all functionality for the emulated portion
|
|
of code in a set of files that does not have any functions that are thunked.
|
|
The wxndrdll build process will copy the standard rpcndr20.lib and remove
|
|
the functions from rpcssm.obj to create wxndr20.lib. Thus it is important that
|
|
the emulated code does not need any variables from rpcssm.cxx and if it
|
|
calls any functions in rpcssm.cxx then they will need to be exported from
|
|
rpcrt4.
|
|
|
|
Also note that nothing should be built under wx86rpc on risc platforms.
|