Windows NT 4.0 source code leak
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

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.