I've got a Transport Provider that works on 32-bit platforms (i.e. XP,
Server 2003, etc), and I need to port it to 64-bit Vista, but I'm
rather confused by the information provided by MSDN on
WSCInstallProvider64_32(), for example.
Here's an extract:
"WSCInstallProvider64_32 is the 64-bit version of WSCInstallProvider
that installs the provider into both the 32-bit and 64-bit catalogs on
64-bit platforms. That is, on 64-bit platforms, two Winsock catalogs
are maintained, and both 32-bit and 64-bit processes are able to load
the transport provider installed with this function. On 64-bit
platforms, WSCInstallProvider installs only to the 64-bit Winsock
catalog.
On a 64-bit computer, all calls not specifically designed for 32-bit
(for example, all functions that do not end in "32") operate on the
native 64-bit catalog. Processes that execute on a 64-bit computer
must use WSCInstallProvider64_32 to operate on both the 32-bit catalog
as well as the 64-bit catalog, preserving compatibility. The
definitions and semantics of the specific 32-bit calls are the same as
their native counterparts."
However, the MSDN function description also says:
"Note This function is deprecated on Windows Vista and later.
Developers are urged to use the WSCInstallProvider or
WSCInstallProviderAndChains functions on Windows Vista and later
instead of the WSCInstallProvider64_32 function."
Does that mean the 32-bit catalog is no longer supported on Vista?
I'm sure that there must be some information out there that explains
it all in overview, but I've yet to find it.
Thanks in advance for any help,
Jonathan
(By the way, if anyone ever wants to try that themselves, note that
they need to update the sample null provider to change the WinSock
version in WSPStartup from 2.0 to 2.2, otherwise a client application
calling socket() will get WSAVERNOTSUPPORTED.)
In other words, Windows sorts it out automatically for you - you just
need to have 32-bit and 64-bit versions of both the provider DLLs and
the installer applications in order to support both 32-bit and 64-bit
client applications.