  Windows 9x = Windows 95, Windows 98, Windows Millennium.
  Windows Nt = Windows NT (all versions), Windows 2000, Windows XP,
               Windows Server 2003 x86, 32bit.

--------------------------------------------------------------------------------
  EliRT API consists of 5 functions:
RT_GetVersion, xVirtualAllocEx, xVirtualFreeEx, xOpenThread,
xCreateRemoteThread.
  If the functions fail, call GetLastError() to get extended error information.
  Functions that require handle to process fail with ERROR_ACCESS_DENIED
in the case of Windows 9x 16bit process. 

--------------------------------------------------------------------------------
DWORD WINAPI RT_GetVersion(VOID *pReserved);

  Parameters:
    pReserved - for future use; must be NULL.

  Return Value:  bits of returned DWORD:
                 31 | 30 29 28 27 26 25 24 | 23 22 21 20 19 18 17 16 |
                  T |   OS_Major_Version   |    OS_Minor_Version     | 

                   15 14 13 12 11 10  9  8 |  7  6  5  4  3  2  1  0
                     EliRT_Major_Version   |   EliRT_Minor_Version

                  T = 0  - Operating system is Windows 9x.
                  T = 1  - Operating system is Windows Nt.

  Note: See Examples\Delphi\Test.dpr.

--------------------------------------------------------------------------------
xVirtualAllocEx - see description for VirtualAllocEx Win32 API function.

  Emulation: Windows 9x, Windows NT 3.51-.

  Note: Windows 9x: You can access committed memory directly
        (e.g. via memcpy, _tcscpy, ...)
        -> you don't have to waste time with Read/WriteProcessMemory.

--------------------------------------------------------------------------------
xVirtualFreeEx - see description for VirtualFreeEx Win32 API function.

  Emulation: Windows 9x, Windows NT 3.51-.

--------------------------------------------------------------------------------
xOpenThread - see description for OpenThread Win32 API function.

  Emulation: Windows 95, Windows 98, Windows NT 4.00-.

  Note: Windows 9x: Thread running in 16bit process can be opened.
        Suspending such thread is not recommended.

--------------------------------------------------------------------------------
xCreateRemoteThread - see description for CreateRemoteThread Win32 API function.

  Emulation: Windows 9x.

  Note: Windows 9x: Remote thread in not-yet-initialized process doesn't
        initialize statically-loaded modules. Therefore, when you need to call
        function contained in remote module, the module should be initialized.
        However, it seems that calling simple functions from KERNEL32.dll and
        other base modules before their initialization doesn't cause problems.
 
        Windows Nt: Sufficient process access for CRT in x86, 32bit versions
        is (probably) PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION (vs. MSDN).

--------------------------------------------------------------------------------
