Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

64-bit Winsock and support for 32-bit applications

639 views
Skip to first unread message

jGoodchild

unread,
Mar 26, 2008, 2:00:18 PM3/26/08
to
Can anyone provide an explanation (or an appropriate link) for what is
required if you want to implement a Transport Provider that supports
32-bit as well as 64-bit applications?

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

jGoodchild

unread,
Apr 1, 2008, 6:14:58 AM4/1/08
to
It turns out that I was worrying unnecessarily - after a few
experiments using the sample null provider, we've proved that a 32-bit
transport provider will be installed to the 32-bit catalog
automatically by a 32-bit installer application.

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

0 new messages