windows-nt/Source/XPSP1/NT/inetsrv/iis/inc/chicago/win95.faq
2020-09-26 16:20:57 +08:00

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).