72 lines
2 KiB
Plaintext
72 lines
2 KiB
Plaintext
|
|
||
|
FAQ for being a good IIS citizen (or how to write win95 friendly
|
||
|
apps). Forward suggestions to JohnsonA
|
||
|
|
||
|
|
||
|
Q: What entry points are supported on win95?
|
||
|
|
||
|
A: Check the file win95.exp. It lists entry points for nashville
|
||
|
for kernel32.dll, advapi32.dll, netapi32.dll, mpr.dll, ole32.dll,
|
||
|
and ntdll.dll
|
||
|
|
||
|
Among the notable entry points that are not supported,
|
||
|
|
||
|
DuplicateTokenEx
|
||
|
InterlockedCompareExchange
|
||
|
InterlockedExchangeAdd
|
||
|
ReadDirectoryChangesW
|
||
|
CompletionPorts
|
||
|
wsprintfW
|
||
|
all the rtl apis
|
||
|
all the nt system apis like (NtLoadLibrary)
|
||
|
all the net apis
|
||
|
all the lsa apis
|
||
|
all the MS specific winsock functions like TransmitFile,
|
||
|
AcceptEx, etc
|
||
|
|
||
|
Entry points that are supported for Memphis
|
||
|
winsock2 apis
|
||
|
DCOM apis
|
||
|
|
||
|
Q: What happens if I use an entry point that win95 does not export?
|
||
|
|
||
|
A: Win95 will return error 31 (General error) during startup.
|
||
|
|
||
|
|
||
|
Q: Are there behaviour differences among the supported APIs?
|
||
|
|
||
|
A: Yes, definitely. Here's a list:
|
||
|
|
||
|
- CreateFile
|
||
|
Win95 does not support async file I/O. So FILE_FLAG_OVERLAPPED
|
||
|
is not supported. It also does not support opening directories,
|
||
|
so FILE_FLAG_BACKUP_SEMANTICS will not work.
|
||
|
|
||
|
Among the share mode flags, FILE_SHARE_DELETE is not supported.
|
||
|
|
||
|
Also, no templates.
|
||
|
|
||
|
- CreateThread
|
||
|
Win95 does not allow you to pass NULL for the pdwId parameter
|
||
|
|
||
|
- Registry APIs
|
||
|
Win95 does not support the UNICODE version of registry APIs
|
||
|
|
||
|
- The following returns ERROR_CALL_NOT_IMPLEMENTED on win95
|
||
|
ImpersonateLoggedOnUser
|
||
|
MoveFileEx
|
||
|
|
||
|
|
||
|
Q: What do I do if I need to use a non-supported API?
|
||
|
|
||
|
A: You will need to do a dynamic load on the dll and get the entry
|
||
|
point address using GetProcAddress.
|
||
|
|
||
|
There are also 2 special dlls in IIS lonsint.dll and
|
||
|
lonsiw95.dll (lonsi is library of non-standard interfaces). lonsint.dll
|
||
|
gets loaded when running on NT, and lonsiw95.dll gets loaded on win95
|
||
|
systems.
|
||
|
|
||
|
If you have specific problems, come talk to me (johnsona).
|
||
|
|