Alex Ionescu wrote:
If you're up for it, here are the public NT structures used...maybe it won't be a bad idea if we use them if it's not too much code change:
I think it's important because many of the Section implementation details are documented in books (including driver-related books) and known to driver developers who might be using the structures in their code... I can name NT Insider, Windows Internals 4th Edition and Windows NT File System Internals as some examples...but anyways it's just an idea.
I think that the structures are not public. No driver can use this structures. M$ can change the structures between service packs. IMO it exsits no reason to use exactly the same structures. In the near future, I will do some changes. It is necessary to split the segment structure in one large 'page' table and some short structures for each segment. It is nearly the same like the control area, the subsections and the segment. It is also necessary to use only one memory area for a mapped image section. I need this to implement the executing of low alignment executables (like device drivers).
There's even a nice diagram in one of the books:
I know this diagram because I own some of the books.
As a sidenote, do we have a PFN Database?
We have a 'PFN' database. It is in freelist.c.
- Hartmut