Wozu die Nt/Zw Redundanz?
-
Hallo,
Ich bin mir des Unterschiedes zwischen Nt und Zw Funktionen im Kernel ja durchaus bewusst, aber wieso existieren viele dieser Funktionen wie NtReadFile/ZwReadFile im Userspace in NTDLL.DLL ebenfalls doppelt? Wenn man sie sich im Debugger anschaut, sieht man, dass sie exakt gleich implementiert sind. Wozu also? Haben sie sich in früheren NT Versionen mal unterschieden?
mfg, l0rdl0l
-
Ich bin mir des Unterschiedes zwischen Nt und Zw Funktionen im Kernel ja durchaus bewusst
Dann sag mal. Interessiert mich.
Habe zwar schon etwas im Kernelmode programmiert, aber was da genau der Unterschied ist weiss ich nu nicht (hatte damit kaum zu tun, weil das nette Framework es mir abgenommen hat
)
-
edit: hätte besser lesen sollen....
edit2: Ne, passt doch: http://blogs.msdn.com/oldnewthing/archive/2009/06/03/9687937.aspx#9691709
edit3: Zur Sicherheit, wer's nicht schafft, zusätzlich zehn Kommentare weiter zu lesen: http://www.osronline.com/custom.cfm?name=articlePrint.cfm&id=257
-
aber wieso existieren viele dieser Funktionen wie NtReadFile/ZwReadFile im Userspace in NTDLL.DLL ebenfalls doppelt?
Nachdem ich mich jetzt über Badestrands Link schlaugelesen habe, würde ich sagen, dass sie einfach deswegen existieren, damit man weniger Code Änderungen machen muss, wenn man was vom Kernel-Mode in den User-Mode "verschiebt"

Dass es früher unterschiedliche Implementierungen gegeben hat ist auch gut möglich, aber wenn ich raten müsste, würde ich sagen dass das nicht der Grund ist.