Reputation: 43662
This article http://msdn.microsoft.com/en-us/library/aa366912(v=vs.85).aspx states that virtual memory in a win32 environment (32 bit supposed) half is dedicated to user mode processes, half to kernel mode processes.
If I recall from pagination, every process should have its own address space from 0 to whatsoever (max 0x7FFFFFFF according to the article). But what for a kernel driver? Does every kernel driver/program has its kernel address space from 0x80000000 through 0xFFFFFFFF?
Or I'm just getting wrong?
Upvotes: 2
Views: 197
Reputation: 11585
I believe that you are under the impression that drivers are separate processes; with monolithic and hybrid kernels (NT is considered a hybrid), they are not. Think of drivers as modules that the kernel loads into itself in ring 0. In effect, they become part of the kernel.
Parts of that address space may change between processes, but most of the kernel address space would be shared between all processes.
Upvotes: 3
Reputation: 612993
In Windows, kernel mode drivers live in the kernel and share the kernel's address space.
Upvotes: 2
Reputation: 92271
As far as I know, there is only one kernel. :-)
The address ranges seems ok though, unless the system is configured for 3GB user space.
Upvotes: 2