The unit does not work on operating systems where DEP is enabled by default.
That's because the dll is loaded into non-executable memory areas.
Fixing this issue is easy:
In all VirtualAlloc() calls, replace the "PAGE_READWRITE" constant by
"PAGE_EXECUTE_READWRITE". That means: replace "PAGE_READWRITE" by
"PAGE_EXECUTE_READWRITE" everywhere in the file except the occurence in the
GetSectionProtection() function.