Η χρήση της C δεν είναι υποχρεωτική για τους Kernel Mode Drivers, φτάνει βέβαια να μην περιμένεις να καλέσεις τις ίδιες βιβλιοθήκες που χρησιμοποιείς για να φτιάξεις μία εφαρμογή. Εντολές όπως η malloc, new και delete καλούν συγκεκριμένες functions του λειτουργικού σε user mode, οι οποίες δεν υπάρχουν όταν δουλεύεις σε Kernel Mode. Χρειάζεται να χρησιμοποιήσεις διαφορετική έκδοση του runtime library για να μπορέσεις να κάνεις compile ένα driver γραμμένο είτε σε C είτε σε C++. Όταν επιλέγεις να φτιάξεις ένα driver, ο compiler θα χρησιμοποιήσει αυτές τις βιβλιοθήκες αντί για αυτές που χρησιμοποιεί για τις εφαρμογές.
Από εκεί και πέρα, ο λόγος που δεν χρησιμοποιείται πολύ η C++ είναι ότι η χρήση virtual methods, inheritance και templates απαιτεί αρκετή μνήμη και ενδιάμεσες κλήσεις μέχρι να εκτελεστεί ο κατάλληλος κώδικας. Ακριβώς αυτά που ΔΕΝ θέλεις να συμβούν σε ένα driver, ειδικά σε Kernel Mode.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos