Hmm, I'm confused. ntdll exists in kernel space too? I guess I always
imagined the internals of the kernel would have its own symbol fixup
system, without DLLs. But perhaps not.
Well basicly, the userland versions of these exported functions load a "system call number" into eax, load a pointer to the parameters into eax and then call an INT 2E. This call maps down to something in the kernel which uses the "system call number" as an index into a lookup table.
See http://www.sysinternals.com/ntw2k/info/ntdll.shtml for the gory details


IIRC the kernel functions use a particular naming scheme. I forget
exactly what it is, but IoCompleteRequest and IofCompleteRequest are not
the same, but one is a variant of the other - much like FooA and FooW
are in userland Win32.
ok, I didnt know that :)

Yeah, but is it any simpler than just reverse engineering and cloning
the driver? Drivers aren't needed all that often.
1.implementing these APIs and using the SafeDisk .sys file makes it more likely that things will just "work" if a new version of SafeDisk comes out. (plus, as more things get implemented, more drivers will just "work")
and 2.more imporantly, implementing this stuff (as opposed to cloning secdrv.sys) is a lot less likely to cause the SafeDisk people to sue WINE under the DMCA (in fact, a clone of an older version of secdrv.sys was created but not added because of this DMCA fear)





Reply via email to