2.3.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 can't handle 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! 2.3.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. 2.3.2 Requirements ------------------ Win32k should work on any Warp 4 or Warp Server for e-business installations which Odin32 works on. It no longer requires a kernel file for non-debug kernels. Win32k does now contain a "database" for the most recent retail kernels. Currently this is: Warp 4 fp#5 -> fp#12 Aurora GA Warp 3 fp#32-> fp#42 If the running kernel is not found in the "database" or is a debug kernel wink32.sys will look for symbolfiles as it allways has. If you use the -s: argument the given symbol file will be investigated before the database is searched. NOTE! It hasn't been fully verified that all the different national fixpaks have the same symbols as the us-english ones. Feedback on this issue is appreciated. For those playing with debug-kernels, make sure that OS2KRNL.SYM is matching the running kernel. 2.3.2.1 Warp 3 -------------- Win32k is not tested with Warp 3. It is _supposed_ to work with Warp 3 provided you are running fixpack 32 or later. (Fixpack 32 + y2kclock.exe is required for Y2K readyness anyway so...) 2.3.3 Installation ------------------ To use Win32k.sys you have to add the following line into your config.sys: device=win32k.sys Where 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. 2.3.4 Win32k parameters ----------------------- The Capitalized letters are the one which is tested for when identifying the argument. There are some useful parameters for Win32k: -Quited Quiet driver initiation. Default: disabled (ie. -V) -Verbose Verbose driver initiation. Default: enabled -S: Full path to the current OS/2 kernel symbol file. When this is specified the given Default: symbol "database" and default locations are searched. Logging parameters: -L<:E|:D> Enables/Disables logging. Default: disabled. -C<1|2> Which com-port to log to. Default: -C2 -W<1|2|3|4> Warning/info level for PE loader. (This is warnings and info which is published thru the com-port as logging information.) Default: -W0 Heap parameters: -HEAPMax: Maximum swappable heap size in bytes. Default: 512KB -Heapinit: Initial heapsize in bytes. Default: 16MB -RESHEAPMax: Maximum resident heap size in bytes. Default: 256KB -Resheapinit: Initial resident in bytes. Default: 16MB -SCript<:Y|:N> Enable / disable UNIX script support. Default: Enabled. Obsolete: -K: Ignored. Win32k scans the kernel image in memory! 2.3.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 execute in Ring 3, the least priveleged executing level.