NT Native API was (Re: Question about WINE and adding the "low-level" CD access APIs...)

Mike Hearn m.hearn at signal.qinetiq.com
Tue Jul 15 04:39:28 CDT 2003

> Well if you read http://www.sysinternals.com/ntw2k/info/ntdll.shtml, you 
> will see several things:
> 1.most of the "native APIs" that drivers and etc use are undocumented, only 
> a handfull are documented in the DDK.
> and 2.Quite a few of the APIs could probobly "map" onto existing bits of 
> wine code (for example most of the Registry APIs)

Yes, in fact the registry APIs are already implemented in terms of

> The way to proceed (IMHO) is this:
> 1.implement something that can load the win32 device drivers somehow

... hehe :) Easier said than done, methinks.

> and then 2.implement the NT Native APIs (which are actually exported by 
> ntdll.dll and callable by user apps BTW) one at a time (pick a simple 
> driver such as the secdrv.sys from safedisk and implement the calls that it 
> uses) then go from there.

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.

> For example, I got a version of SafeDisk secrdv.sys from Command & Conquer 
> Renegade (most recent SafeDisk game I can find in my collection) with a 
> size of 28400 bytes and a date of 29 january 02 and it only has 15 entries 
> in its "exports" segment and only 3 are not documented in MSDN library 
> online (NtBuildNumber, KeTickCount, IofCompleteRequest) (but best I can 
> work out IofCompleteRequest and IoCompleteRequest are one and the same)

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.

> Some of these APIs needed for SafeDisk support etc may already be 
> implemented or may be simple to implement)

Yeah, but is it any simpler than just reverse engineering and cloning
the driver? Drivers aren't needed all that often.

> So, emulating enough of the guts of windows to get safedisk protected 
> programs (and mabie other "simple" drivers) doesnt (IMHO) seem hugly difficult.

Well, rather you than me brother :)

Mike Hearn <m.hearn at signal.qinetiq.com>
QinetiQ - Malvern Technology Center

More information about the wine-devel mailing list