

This is an advantage because the API is already well documented, with expected inputs and outputs. Various NTLM implementations exist, all with different interfaces, but the WinPR implementation is a direct replacement of the original. At this point, one of the most valuable part of WinPR is the set of SSPI modules. Immense efforts have gone into the implementation of such features, to the point where they begin having value outside of FreeRDP itself. Developing FreeRDP is in many ways all about implementing Windows APIs outside of Windows. That’s not even mentioning all the effort that went into mapping keyboard systems and time zones. For instance, core graphical messages are based on GDI, network level authentication makes use of the Microsoft SSPI authentication modules (CredSSP, NTLM), and terminal server gateway makes use of both SSPI and MSRPC. In many instances, protocol messages rely heavily on Windows-specific APIs which have no direct equivalent on other operating systems. RDP, as you know, is a protocol designed by Microsoft and is primarily “Windows to Windows”. WinPR is the result of long and thoughtful process that came up after years of FreeRDP development. When on Windows, the original native API is being used instead of the equivalent WinPR implementation, without having to modify the code using it. Instead, WinPR provides API compatibility for applications targeting non-Windows environments.

Unlike Wine, WinPR does not provide binary compatibility, and does not require applications to be built for Windows. Just like FreeRDP, WinPR is released under the Apache license.
#REACTOS RDP SERVER PORTABLE#
WinPR is a spin-off project of FreeRDP which aims at providing a portable implementation of important portions of the Windows API. Posted by Marc-André Moreau on May 24, 2012
