Skip to main content

Driver in Freepascal - Target NativeNT

Freepascal Driver - Target NativeNT

Based on ‘WRITE ONCE COMPILE ANYWHERE’ principle, Freepascal has the ability to make DLLs, Console and GUI Applications for multiple platforms followed by support for ARM Processors, etc. A very interesting feature that Freepascal (may) will have in the near future is the ability to compile Kernel Mode and or User Mode Device Drivers. Although the support is unavailable in the current stable release, we might one day in the near future be writing our own Device Drivers in Freepascal wth a built in support in some new future release of Freepascal, that is for now not possible with the Current Stable Release of Freepascal. The Official Page related to this new feature is: Target-NativeNT in Freepascal Wiki.  
I wrote this Article because I saw that many people were having problem(s) building the NativeNT FreepascalPackage provided in as the Trunk Build.
If you just want the Compiled Tools and don’t want to know the actual build process, scroll down to the end of this page and you will find a RAR Package (password: nativent). You will find the Kernel Mode RTL (Units), NativeNT ppc386 (renamed to ppc) and NativeNT fpcmake. With those, you can simply extract and immediately start building your own Kernel Mode Driver in FreePascal. The Details are provided within the Package in the ReadME File along with a Sample Driver. If you have Delphi installed on your PC, you can use DDDK (Delphi Driver Development Kit).
With that being said, let’s start.
The real problem starts for the beginners, completely new to the GnuWIN32 MAKE Utility. The GnuWIN32 MAKE Utility simply reads the MakeFile in the Current Directory and starts the build process without giving the user the pain of doing it all manually. Now, I already have Lazarus installed in my Computer which means I don’t have to install the GnuWIN32 MAKE Utility additionally. The Lazarus Package comes with it (%LAZARUS_DIR%\fpc\2.4.4\bin\i386-win32\make.exe).

Goto the Freepascal Development Page

Download FPCBUILD.ZIP ( >= 60 MB )
Don’t download the fpc.zip ( 31 MB ), it will only emit error(s) and doesn't contain the files required for NativeNT Build Process.

Extract the ZIP to say drive D: and you will have a folder D:\fpcbuild



Okay, so below is my MAKE.CMD to enter the required Directories and call the required MAKE.EXE:
@ECHO OFF
d:
ECHO { NAVIGATING TO FPCBUILD DIR  }
ECHO { CALLING LAZARUS_MAKE.EXE    }
cd fpcbuild\fpcsrc\compiler
d:\lazarus\fpc\2.4.4\bin\i386-win32\make

ECHO { NAVIGATING TO UTILS_FPCM    }
ECHO { CALLING LAZARUS_MAKE.EXE    }
cd..\utils\fpcm
d:\lazarus\fpc\2.4.4\bin\i386-win32\make

ECHO { COMPILING FREEPASCAL RTL    }
cd d:\fpcbuild\fpcsrc\rtl
d:\lazarus\fpc\2.4.4\bin\i386-win32\make FPC=d:\fpcbuild\fpcsrc\compiler\ppc386.exe OS_TARGET=nativent OPT=”-dKMODE”

ECHO { #EXITING COMMAND_PROMPT#    }
PAUSE

Now, lets understand it part by part:
@ECHO OFF
d:
ECHO { NAVIGATING TO FPCBUILD DIR  }
ECHO { CALLING LAZARUS_MAKE.EXE    }
cd fpcbuild\fpcsrc\compiler
d:\lazarus\fpc\2.4.4\bin\i386-win32\make
1.       Enters Drive D:
2.       Goes to the Folder fpcbuild\fpcsrc\compiler
3.       Calls GnuWIN32 MAKE Utility residing in %LAZARUS_DIR%\fpc\2.4.4\bin\i386-win32\make.exe(%LAZARUS_DIR% in my case is D:\Lazarus).
If you are aware, there is a MakeFile in fpcbuild\fpcsrc\compiler\ which comes with the FPCBUILD.ZIP. The MAKE.EXE reads the MakeFile and starts the build Process of the Compiler.
The Same goes for the FPCMAKE.EXE in (..\utils\fpcm\). 
Now, building the RTL, we need to choose between UserMode and KernelMode. I will choose KernelMode RTL Compilation as it runs under RING0.
ECHO { COMPILING FREEPASCAL RTL    }
cd d:\fpcbuild\fpcsrc\rtl
d:\lazarus\fpc\2.4.4\bin\i386-win32\make FPC=d:\fpcbuild\fpcsrc\compiler\ppc386.exe OS_TARGET=nativent OPT=”-dKMODE”
The Make is the path of GnuWIN32 Make Utility in Lazarus Directory, FPC=YOUR_NEW_PPC386.EXE,OS_TARGET=nativent (otherwise the i386-win32 RTL would be produced) and OPT=”-dKMODE” is the switch that makes the difference between UserMode RTL and KernelMode RTL. You cannot produce both at once.

As you can see, the build process is quite simple. It Compiles fine with few warnings here and there. But at last, you will get the ppc386.exe(2.16MB) in  \fpcbuild\fpcsrc\compiler\ppc386.exe, fpcmake.exe in\fpcbuild\fpcsrc\utils\rtl\units\i386-nativent.
Found this post useful ? If so, Click +1 and recommend this site on Google

Comments

Popular posts from this blog

உடல் எடையை குறைக்க வேண்டுமா ?

இன்றைய அவசர உலகின் மிக பெரிய பிரச்சனையாக இருப்பது உடல் எடை அதிகரிப்பது தான்.மனம் போன போக்கில் உணவு கட்டு பாடு இல்லாமல் கண்டதையும் உள்ளே தள்ளுவதும்,உக்காந்த இடத்திலேயே கணணி முன் நேரத்தை விரயமாக்குவதும் தான் இந்த பிரச்சனைக்கு மூல காரணமாகும். அது சரி இந்த பிரச்சனையை எப்படி இல்லாமல் செய்வது அல்லது உடல் எடையை எவ்வாறு குறைப்பது என்பதை பற்றி பாப்போம் , பல வருட ஆரய்சிக்குபின் மருத்துவர்கள்   உடல் எடைய குறைக்க மிகவும் சுலபமான உடற்பயிற்சியை கண்டுபிடித்துள்ளனர்.இது  100% பயனளிக்க கூடியது, எந்த இடத்திலும் எந்தநேரத்திலும் மிக சுலபமா செய்ய கூடிய உடற் பயிற்சியாகும்.இந்த உடற்பயிற்சிகள் படத்துடன் கீழே தரப்பட்டுள்ளது நீங்களும் முயற்சித்து பாருங்கள கண்டிப்பாக பலன் கிடைக்கும்... முதலில் நாற்காலியில் உட்கார்ந்து இட  பக்கம் பார்கவும் .. ..        அடுத்து  நாற்காலியில் உட்கார்ந்து வல  பக்கம் பார்கவும்  ....  நண்பர்கள் யாரவது மச்சி வாடா சின்ன பீஸ் ,இங்க பாரு சூப்பர் அய்டம்னு சொல்லி கால்ல விழுந்து கூப்பிட்டலோ மேற்கூறிய உடற் பயி...

(Loot again) Get Mi Earphones & Mi Backpack In Just Rs.1

How to Get Mi Band , Mi Earphones & Mi Backpack In Just Rs.1 1, First Of All Just  Click On Below Links 1 By 1  Click 1->  Mi City Backpack Dark Grey Minimalist sleek design  -In Just Rs.1 Click 2->  Mi Earphones Silver Dynamic bass sound  -In Just Rs.1 2. Now Open All Links 1 By 1 3. After Opening The Link Click On “ Click to Bring The Price Down ” Then Click “ I Want it too ” 4. Login into Your Mi Account ( Or Sign Up  –  New Mi Account Giving Huge Price drop Like Rs.50 Or Rs.70 Drop , So Recommend You to Make New Account ) 5. Now You will See 3 Products There In this  Mi 24 Hour Madness Sale  6. Click On “ Participate ” Now Button & Share The Link With Your Friends When Each Friend Click On Your Link , You Will See Some Price cut in Your Products… Finally After Enough Click Your Product Will be Available For Just Rs.1  7. Start Referring , Start Looting MI

20 Best Themes For Windows XP

Have you been using  Windows XP  since a long time and tired of it’s dull looks? Then it’s time to give a facelift to XP by changing it’s look and feel. There are lots of  free visual style themes  available based on  Windows Vista ,  Windows 7 , Mac OSX ,  XBox ,  Linux  etc. In this article, we present the best of them. If you are installing a Visual Theme for the first time on your Windows XP, then you might want to check our article How to install visual themes in Windows XP?  first before applying the themes. Here goes our handpicked list of  Twenty Best Windows XP Themes  for your PC. If you are looking for more  Windows XP  Themes, you might want to check our other article:  20 Awesome  Windows XP Themes . 1.  Vista Live Pack One of the best Windows Vista based themes with a touch of Windows Live. There are many color variants, including Vista Live Blue (shown above), Vista Live Green, Vista Liv...