Don't know any simple GUI utility for that but maybe you can use the command line profiling tool Kernrate / KrView. It is somewhat complicated to use in the beginning and whether it is useful for you depends on what exactly you want to find out. Kernrate won't tell you how many CPU time has been spent in a particular kernel module (aka driver) in total since Windows start. But if you want to measure CPU usage during a specific time frame then Kernrate will do the job.

The output of a basic kernel profile could look like this, but you can add more details via command line options if required:

The easiest thing to do is use Process Explorer. If there's a driver taking up a lot of CPU, this will be reflected by the "system process". You can double click on the process and go to the Threads tab, which may show a thread associated with a particular driver using the most CPU.

It happens sometimes you're hunting for something stealing CPU resources and discover that no application is consuming CPU. It may be something at service (not appearing in task list) or kernel level.

It simply could be a driver I use to encrypt disk contents during a massive file copy, or something else.

Click to expand...

In this case Kernrate would help. Start a profiling run, then do whatever produces the high CPU usage and then stop it and examine output. It should show you how much CPU each module used during the profiling run. If you have the .pdb file for the driver it could even tell in which function how many time was spent.

Blutarsky said:

Nevertheless, with task manager and process explorer I'm unable to check if or what driver is stealing CPU.....

As Notok pointed out, Process Explorer can show driver CPU usage to a certain extent, i.e. usage of system threads that drivers create. However not all drivers create system threads. When driver executes in the context of normal processes PE can show this only accumulated as total kernel time and not per single driver.