x.0 Win32k.sys - native OS/2 PE-"loader"
----------------------------------------

The win32k.sys driver makes PE (Win32) executables equal to native OS/2
executables by implementing a Ring 0 on-the-fly converter. The converter is
Pe2Lx.exe. So, everything that works with Pe2Lx will probably work with
win32k.sys. And vice versa, when Pe2lx don't make it, win32k.sys won't either.

You may wonder how you may run a Win32 program using a device driver. You
don't have to worry about that, simply treat the Win32 program just as an
another OS/2 program. OS/2 can't tell the difference!
No conversion of dlls or running programs thru Pe.EXE.

For example, if you fancy playing windows solitaire.
    1) Make sure the necessary DLLs are in you (BEGIN/END)LIBPATH,
       and that SOL.EXE is in the current directory or the directory you
       specify.

    2) Then start SOL.EXE by simply typing SOL.EXE (with path if necessary).
       It's also possible to start SOL.EXE from the desktop if you like.
       Simply find the SOL.EXE icon (or create it) and double click on it!


x.1 WARNING
-----------

The Win32k.sys is quite alpha software and any bugs which haven't been found
yet may crash and/or corrupt you entire system! Make sure you have backed up
important stuff first!

We are not responsible for ANYTHING AT ALL! See Odin32 disclaimer...

Before you install win32k.sys make sure that you have a backdoor to your system
which works. For example try to boot your system using the Alt+F1 during bootup
and choose Commandline boot (F2). Make sure you have an textmode editor which
works; for example TEDIT.EXE.


x.2 Requirements
----------------

Win32k should work on any Warp 4 or Warp Server for e-business installations
which Odin32 works on. It requires only one thing, a kernel symbol file. The
kernel symbol is looked for in \OS2\PDPSI\PMDF\WARP4 and
\OS2\PDPSI\PMDF\WARP45_U/S. All warp 4 and WE4eB installations should have
those direcotries (we hope). It is updated when you install a new fixpack - so
there is really nothing to worry about for the common user.

For those playing with debug-kernels, make sure that OS2KRNL.SYM is matching
the running kernel, while this file too is investigated. (The complete list
is found in src\Win32k\dev16\probkrnl.c,apszSym[] - odin32 source tree.)


x.2.1 Warp 3
------------

Win32k is not tested with Warp 3. It is supposed to work with Warp 3 provided
that the os2krnl.sym file is present. Warp Server 4 have this, common Warp 3
don't.


x.3 Installation
----------------

To use Win32k.sys you have to add the following line into your config.sys:
    device=<d:\path\>win32k.sys

Where <d:\path\> is the path to the win32k.sys, i.e. the odin32 executables
directory.

After doing this you'll have to reboot your machine to load the driver. During
the boot process you will on a successful installation see some lines of
technical info and finally a line saying:
    'Win32k.sys succesfully initiated!'

If you don't see the line above something is wrong!


x.4 Win32k parameters
---------------------

There are some useful parameters for Win32k:
-Q             Quiet driver initiation. (Default is verbose (-V) initiation.)
-V             Verbose driver initiation. Default.
-S:<filename>  Full path to the current OS/2 kernel symbole file.
-K:<filename>  Full path to the running OS/2 kernel.


x.5 Rings - Ring 0 / Ring 3
---------------------------

FYI. Ring 0 is the most priveleged level of execution in OS/2. The OS/2 kernel
and device drivers execute at this level, while user applications executes in
Ring 3, the least priveleged executing level.

