Reputation: 5339
I know Wine is a software compatibility layer, basically redirecting windows system calls to linux native system call (it can of course be more complicated, when DirectX is involved for example)
Is there a way to know how complete the software is ? In which proportion are windows system calls covered by the compatibility layer, and which ones aren't coded yet ?
Upvotes: 0
Views: 898
Reputation: 101676
I don't have any statistics to point you to and I would say the best way (and the only important way) is to just test your application. Do you really care about obscure and/or undocumented functions that might not be implemented?
The number of functions that are not exported should be very low but that does not mean that they are actually implemented.
Several Windows functions are only simple stubs without a real implementation:
Some are labeled as stubs in the Wine .spec files. An unimplemented call will look like @ stub PolyPatBlt
while a implemented function would look more like @ stdcall PolyPatBlt(long ptr long)
.
Example from advapi32.spec:
@ stdcall LsaClose(ptr)
@ stub LsaCreateAccount
@ stub LsaCreateSecret
@ stub LsaCreateTrustedDomain
@ stdcall LsaCreateTrustedDomainEx(ptr ptr ptr long ptr)
@ stub LsaDelete
@ stdcall LsaDeleteTrustedDomain(ptr ptr)
@ stdcall LsaEnumerateAccountRights(ptr ptr ptr ptr)
Some functions might not be labeled as a stub in the .spec file but the actual implementation might be incomplete or might always return failure.
Upvotes: 4