In December 2012, I managed to make what many people were saying, at that time, that it was impossible unless Intel implemented it. I patched an RST OROM and modded a UEFI version for ASUS Rampage IV Extreme board so that it loads for the X79 chipset's controller.
This allowed everyone using this boards to have an SSD based RAID array with fully working TRIM command. The method can be applied to any X79 board.
More about this, including modded UEFI firmwares and patched OROMs for self-modding other UEFI firmware boards, here:
Patched TRIM in RAID!
1. Get the latest source tarball from OpenSSL Source
2. Install Strawberry or ActivePerl if you don't have one of them present already in your build environment.
3. Unpack the tarball to a location of your choice (eg C:\Code\openssl-1.0.1e).
4. Open Visual Studio Command Prompt. Either x64 or x86 depending on what you are planning to build.
5. Run the following commands:
a) "perl configure VC-WIN64A --prefix=C:\Code\OpenSSL-VC-64"
Notes: "VC-WIN64A" is for x64, for x86 use "VC-WIN32". For Debug versions use "debug-VC-WIN64A" and "debug-VC-WIN32" respectively. --prefix is the directory for build output so name it accordingly to what you are building.
b) "ms\do_win64a"
Notes: For x86 use "ms\do_ms" instead.
c) "nmake -f ms\ntdll.mak"
d) "nmake -f ms\ntdll.mak install"
Notes: c) and d) are for shared libraries. If you need static libraries just run the commands with "nt.mak" instead of "ntdll.mak"
If you are actually developing an application with openssl and not just building it for dependencies, you will need both debug and release versions of the libraries. In that case you can build debug first, then either rename the build directory or the libraries themselves to something like "libeay64d.lib/dll
because a subsequent build of the release libraries will overwrite the debug ones (due to them having the same name).