From: Ib Tornøe on 17 Apr 2007 06:25 Hope some one knows the answers to these questions In W2K3 x32 the limit of PagedPoolMemory is about 650 MB and on x64 it is 128 GB. Implementing an application that use filter drivers I have been told that there is a limit of 256 MB kernel memory in total for all filter drivers and that the memory area used is PagedPoolMemory - is this correct? What about in x64? - the PagedPoolMemory limit is 128 GB but is there still a limit for filter drivers or has this been raised? -Ib
From: Anton Bassov on 19 Apr 2007 21:04 > In W2K3 x32 the limit of PagedPoolMemory is about 650 MB This is true on any 32-bit version of NT, but only under the condition that the size of the kernel address space is 2G - if it is 1G, then the paged pool maximum size is just 160MB > Implementing an application that use filter drivers I have been told that > there is a limit of 256 MB kernel memory in total for all filter drivers and > that the memory area used is PagedPoolMemory - is this correct? You were told a plain rubbish.... To begin with, all driver code, apart from the one that is EXPLICITLY marked as pageable, is guaranteed to be loaded in RAM all the time (unless you load it with ZwSetSystemInformation() - in such case your driver is, indeed, pageable). However, you should not load filter drivers this way, simply because its Dispatch routines may get called at elevated IRQL. If the driver is not in RAM at the moment, then you will get a "big bang".... As you can see, paged pool and filter drivers are just incompatible concepts. Furthermore, as far as loader is concerned, there is no such thing as "filter driver", simply because stacks are based upon devices, rather than on drivers. Just to give you an idea, the same driver may create multiple devices and participate in different stacks and in different roles. For example, DISK.SYS driver creates FDOs for every disk that it manages and attaches them to their respective stacks (for example, hard disk and USB), plus PDOs for every partition of every disk (actually, no one attaches to these PDOs, but this is already a different story). Therefore, the term "filter driver" is just a convenience Anton Bassov "Ib Tornøe" wrote: > Hope some one knows the answers to these questions > In W2K3 x32 the limit of PagedPoolMemory is about 650 MB and on x64 it is > 128 GB. > Implementing an application that use filter drivers I have been told that > there is a limit of 256 MB kernel memory in total for all filter drivers and > that the memory area used is PagedPoolMemory - is this correct? > What about in x64? - the PagedPoolMemory limit is 128 GB but is there still > a limit for filter drivers or has this been raised? > -Ib >
|
Pages: 1 Prev: How to set registry key permission in the code? Next: [dhcp] how to start dhcp programmly |