Thats possibly because I used API functions for all x86 (as the code was intended for x86), there is a 64 bit equal for the API's used. For example, replace WSCEnumProtocols With WSCEnumProtocols32 and replace WSCGetProviderPath With WSCGetProviderPath32 - on 64 bit systems ...
This was only test bed code, the final version will have anything needing correction - corrected.
For a default install of Windows 7 x86, with full support in drivers and hardware, the number is 22.
Try changing out the API functions with the ones intended for use on 64 bit and see what happens. As its written now, the posted code works here on several x86 Windows 7 test machines just fine and reports correctly.
That 'seperate' 'additional' (if I understand your post correctly) base provider is most likely a dummy (or zero length chain) provider thats installed/created as explained in the code comments. They are supposed to show up with the WSC version of the enum API (but is not supposed to show with the WSA version) - if they do not show up with the WSC versions then there may be a problem somewhere on the target machine. There is nothing really different between the OS flavors for providers (just more of a pain to install a provider on 64 bit). People always think that 64 bit means something special and everything in the OS is 64 bit, it doesn't mean anything special in this aspect.
You can check out what is supposed to be there by using a netsh command in an administrator command prompt. The command is 'netsh winsock show catalog' (without the ' ') and you will get a list of the transport protocol's like this code provides plus a list of active name spaces at the bottom of the list. There is seperate code for the active name spaces, this is the basic code for those active name spaces:
(NOTE: you will need to add your own calls to the .dll to get the API for the name spaces code if you need to do so, I did not include it here.)
Code: Select all
Structure WSANAMESPACE_INFO ;->Structure WSANAMESPACE_INFO
NSProviderId.b[16]
dwNameSpace.l
fActive.l
dwVersion.l
lpszIdentifier.s
EndStructure
Structure WSABUFFER
buf.WSANAMESPACE_INFO[0]
EndStructure
Procedure ActiveNameSpace()
*buff.WSABUFFER = #Null ; char
*ns.WSANAMESPACE_INFO = #Null
ret.i
i.i
dwSize.i
; start up winsock - version 2.2 - if you have not already called WSAStartup then uncomment below
; If WSAStartup($0202,@wsaData.WSADATA) <> 0
; Debug "WSAStartup failed"
; End
; EndIf
;Call the API With a NULL buffer to get buffer size we need
dwSize = 0
ret = WSAEnumNameSpaceProviders(@dwSize, #Null)
If ret <> #SOCKET_ERROR
Debug "Shouldn't be here!"
Else
;Debug "WSAEnumNameSpaceProviders() should be OK"
; allocate dwSize
*buff = AllocateMemory(dwSize)
If *buff = #Null
Debug "Failed to allocate memory for buff"
WSACleanup()
CloseLibrary(Lib_iphlpapi)
CloseLibrary(Lib_Winsock)
CloseLibrary(Lib_Ntdll)
CloseLibrary(Lib_Wininet)
CloseLibrary(Lib_Ole32)
CloseLibrary(Lib_Winhttp)
End
Else
;Debug "Allocate memory for buff is OK - size is : " +Str(dwSize)
EndIf
EndIf
;Make the call again to get info
*ns = *buff
ret = WSAEnumNameSpaceProviders(@dwSize, *ns)
If ret = #SOCKET_ERROR
Debug "WSAEnumNameSpaceProviders() failed with error code " + Str(WSAGetLastError_())
FreeMemory(*buff)
WSACleanup()
CloseLibrary(Lib_iphlpapi)
CloseLibrary(Lib_Winsock)
CloseLibrary(Lib_Ntdll)
CloseLibrary(Lib_Wininet)
CloseLibrary(Lib_Ole32)
CloseLibrary(Lib_Winhttp)
End
Else
Debug "Winsock Catalog Active Name Space (number available = " + Str(ret) + ")"
EndIf
For i = 0 To ret - 1
Debug "----------------------------------------------------------"
Debug "Description : " + PeekS(@*buff\buf[i]\lpszIdentifier)
*BufGuid = AllocateMemory(80)
iRet = StringFromGUID2_(@*buff\buf[i]\NSProviderId, *BufGuid, 79)
guid$ = PeekS(*BufGuid, -1, #PB_Unicode)
FreeMemory(*BufGuid) ; if read error here then allocatememory for *BufGuid may be too small
Debug "Provider ID : " + guid$
Select *buff\buf[i]\dwNameSpace
Case #NS_DNS
dwNameSpace$ = "Domain Name System "
Case #NS_WINS
dwNameSpace$ = "Windows Internet Naming Service "
Case #NS_NETBT
dwNameSpace$ = "NetBIOS "
Case #NS_NTDS
dwNameSpace$ = "Windows NT Directory Services "
Case #NS_NLA
dwNameSpace$ = "Network Location Awareness "
Case #NS_BTH
dwNameSpace$ = "Bluetooth "
Case #NS_EMAIL
dwNameSpace$ = "Email "
Case #NS_PNRPNAME
dwNameSpace$ = "Peer-to-peer "
Case #NS_PNRPCLOUD
dwNameSpace$ = "Peer-to-peer collection "
Default
dwNameSpace$ = "Other value "
EndSelect
Debug "Name Space : " + dwNameSpace$ + "( " + Str(*buff\buf[i]\dwNameSpace) + " )"
If *buff\buf[i]\fActive = 1
fActive$ = "Yes"
Else
fActive$ = "No"
EndIf
Debug "Active : " + fActive$
Debug "Version : " + Str(*buff\buf[i]\dwVersion)
Next
; if you did WSAStartUp then also don not forget
; WSACleanup() ; when your done with winsock
EndProcedure
A note on name spaces, only the ones that are active are suppose to return in a query. If you see one that shows up in a query but its not marked as active then there could be a problem.
This is what a default fully supporting x86 Windows 7 install provides for transport providers and name spaces (including with Windows Live which are the name space entries at the very bottom):
Code: Select all
Winsock Catalog Available Transport Protocol Provider Entry (number available = 22)
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD Tcpip [TCP/IP]
Provider ID : {E70F1AA0-AB8B-11CF-8CA3-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1001
Version : 2
Address Family : The Internet Protocol version 4 (IPv4) address family. (2)
Maximum Address length : 16
Minimum Address length : 16
Socket Type : Provides sequenced, reliable, two-way, connection-based byte streams with OOB Data transmission mechanism. Uses Transmission Control Protocol (TCP) for Internet address familys IPv4 and IPv6. (1)
Protocol : Transmission Control Protocol (TCP). (6)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x20066 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol supports two-phase (graceful) close. If not set, only abortive closes performed.
Protocol supports expedited (urgent) data.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD Tcpip [UDP/IP]
Provider ID : {E70F1AA0-AB8B-11CF-8CA3-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1002
Version : 2
Address Family : The Internet Protocol version 4 (IPv4) address family. (2)
Maximum Address length : 16
Minimum Address length : 16
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : User Datagram Protocol (UDP). (17)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x20609 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol supports a multipoint or multicast mechanism. Control and data plane attributes are indicated below :
Protocol control plane is nonrooted (value = 0).
Protocol data plane is nonrooted (value = 0).
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD Tcpip [RAW/IP]
Provider ID : {E70F1AA0-AB8B-11CF-8CA3-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1003
Version : 2
Address Family : The Internet Protocol version 4 (IPv4) address family. (2)
Maximum Address length : 16
Minimum Address length : 16
Socket Type : Provides raw socket allowing an application to manipulate next upper-layer protocol header. To manipulate the IPv4 header, the IP_HDRINCL option must be set on socket. To manipulate IPv6 header IPV6_HDRINCL option must be set on the socket. (3)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (0)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x20609 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol supports a multipoint or multicast mechanism. Control and data plane attributes are indicated below :
Protocol control plane is nonrooted (value = 0).
Protocol data plane is nonrooted (value = 0).
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD Tcpip [TCP/IPv6]
Provider ID : {F9EAB0C0-26D4-11D0-BBBF-00AA006C34E4}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1004
Version : 2
Address Family : The Internet Protocol version 6 (IPv6) address family. (23)
Maximum Address length : 28
Minimum Address length : 28
Socket Type : Provides sequenced, reliable, two-way, connection-based byte streams with OOB Data transmission mechanism. Uses Transmission Control Protocol (TCP) for Internet address familys IPv4 and IPv6. (1)
Protocol : Transmission Control Protocol (TCP). (6)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x20066 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol supports two-phase (graceful) close. If not set, only abortive closes performed.
Protocol supports expedited (urgent) data.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD Tcpip [UDP/IPv6]
Provider ID : {F9EAB0C0-26D4-11D0-BBBF-00AA006C34E4}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1005
Version : 2
Address Family : The Internet Protocol version 6 (IPv6) address family. (23)
Maximum Address length : 28
Minimum Address length : 28
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : User Datagram Protocol (UDP). (17)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x20609 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol supports a multipoint or multicast mechanism. Control and data plane attributes are indicated below :
Protocol control plane is nonrooted (value = 0).
Protocol data plane is nonrooted (value = 0).
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD Tcpip [RAW/IPv6]
Provider ID : {F9EAB0C0-26D4-11D0-BBBF-00AA006C34E4}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1006
Version : 2
Address Family : The Internet Protocol version 6 (IPv6) address family. (23)
Maximum Address length : 28
Minimum Address length : 28
Socket Type : Provides raw socket allowing an application to manipulate next upper-layer protocol header. To manipulate the IPv4 header, the IP_HDRINCL option must be set on socket. To manipulate IPv6 header IPV6_HDRINCL option must be set on the socket. (3)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (0)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x20609 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol supports a multipoint or multicast mechanism. Control and data plane attributes are indicated below :
Protocol control plane is nonrooted (value = 0).
Protocol data plane is nonrooted (value = 0).
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : RSVP TCPv6 Service Provider
Provider ID : {9D60A9E0-337A-11D0-BD88-0000C082E69A}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1011
Version : 2
Address Family : The Internet Protocol version 6 (IPv6) address family. (23)
Maximum Address length : 28
Minimum Address length : 28
Socket Type : Provides sequenced, reliable, two-way, connection-based byte streams with OOB Data transmission mechanism. Uses Transmission Control Protocol (TCP) for Internet address familys IPv4 and IPv6. (1)
Protocol : Transmission Control Protocol (TCP). (6)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x22066 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol supports two-phase (graceful) close. If not set, only abortive closes performed.
Protocol supports expedited (urgent) data.
Protocol supports quality of service requests.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : RSVP TCP Service Provider
Provider ID : {9D60A9E0-337A-11D0-BD88-0000C082E69A}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1012
Version : 2
Address Family : The Internet Protocol version 4 (IPv4) address family. (2)
Maximum Address length : 16
Minimum Address length : 16
Socket Type : Provides sequenced, reliable, two-way, connection-based byte streams with OOB Data transmission mechanism. Uses Transmission Control Protocol (TCP) for Internet address familys IPv4 and IPv6. (1)
Protocol : Transmission Control Protocol (TCP). (6)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x22066 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol supports two-phase (graceful) close. If not set, only abortive closes performed.
Protocol supports expedited (urgent) data.
Protocol supports quality of service requests.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : RSVP UDPv6 Service Provider
Provider ID : {9D60A9E0-337A-11D0-BD88-0000C082E69A}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1013
Version : 2
Address Family : The Internet Protocol version 6 (IPv6) address family. (23)
Maximum Address length : 28
Minimum Address length : 28
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : User Datagram Protocol (UDP). (17)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x22609 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol supports a multipoint or multicast mechanism. Control and data plane attributes are indicated below :
Protocol control plane is nonrooted (value = 0).
Protocol data plane is nonrooted (value = 0).
Protocol supports quality of service requests.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : RSVP UDP Service Provider
Provider ID : {9D60A9E0-337A-11D0-BD88-0000C082E69A}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1014
Version : 2
Address Family : The Internet Protocol version 4 (IPv4) address family. (2)
Maximum Address length : 16
Minimum Address length : 16
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : User Datagram Protocol (UDP). (17)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x22609 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol supports a multipoint or multicast mechanism. Control and data plane attributes are indicated below :
Protocol control plane is nonrooted (value = 0).
Protocol data plane is nonrooted (value = 0).
Protocol supports quality of service requests.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip_{900F6D10-9D5C-434C-B1CC-7D8F53079D05}] SEQPACKET 6
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1339
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Provides a pseudo-stream packet based on datagrams. (5)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-6)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x2000E (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip_{900F6D10-9D5C-434C-B1CC-7D8F53079D05}] DATAGRAM 6
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1340
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-6)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x20209 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{80672C7B-F4B8-4C18-B642-B73A86AC3580}] SEQPACKET 5
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1341
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Provides a pseudo-stream packet based on datagrams. (5)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-5)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x2000E (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{80672C7B-F4B8-4C18-B642-B73A86AC3580}] DATAGRAM 5
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1342
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-5)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x20209 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{900F6D10-9D5C-434C-B1CC-7D8F53079D05}] SEQPACKET 7
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1343
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Provides a pseudo-stream packet based on datagrams. (5)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-7)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x2000E (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{900F6D10-9D5C-434C-B1CC-7D8F53079D05}] DATAGRAM 7
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1344
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-7)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x20209 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{7AD4C364-A77F-4B1A-BE9E-80420A6171C6}] SEQPACKET 4
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1345
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Provides a pseudo-stream packet based on datagrams. (5)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-4)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x2000E (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{7AD4C364-A77F-4B1A-BE9E-80420A6171C6}] DATAGRAM 4
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1346
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-4)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x20209 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{2E3B0927-7368-43E4-BDE7-9AABDBA79F95}] SEQPACKET 3
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1347
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Provides a pseudo-stream packet based on datagrams. (5)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-3)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x2000E (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{2E3B0927-7368-43E4-BDE7-9AABDBA79F95}] DATAGRAM 3
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1348
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-3)
ProviderFlags : Unknown or provider flags not set (most likely)
Protocol Chain Length : 1
Service Flags : 0x20209 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{DEF01644-0269-4DF3-8C66-7C39330C318D}] SEQPACKET 0
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1349
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Provides a pseudo-stream packet based on datagrams. (5)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-2147483648)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x2000E (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol guarantees that all data sent will reach the intended destination.
Protocol guarantees that data arrives in order sent and is not duplicated. This does not necessarily mean data is always delivered, but that any data delivered is delivered in the order sent.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Entry type : Base Service Provider
Description : MSAFD NetBIOS [\Device\NetBT_Tcpip6_{DEF01644-0269-4DF3-8C66-7C39330C318D}] DATAGRAM 0
Provider ID : {8D5F1830-C273-11CF-95C8-00805F48A192}
Provider Path : %SystemRoot%\system32\mswsock.dll
Catalog Entry ID : 1350
Version : 2
Address Family : The NetBIOS address family. Only supported if the Windows Sockets provider for NetBIOS is installed. (17)
Maximum Address length : 20
Minimum Address length : 20
Socket Type : Supports datagrams, which are connectionless, unreliable buffers of a fixed (typically small) maximum length. Uses User Datagram Protocol (UDP) for Internet address familys IPv4 and IPv6. (2)
Protocol : Unknown, undefined, not configured. disabled, requires other components. or not applicapable for this entry. Note: Only one protocol needs to be set per Provider ID catalog entry ID. (-2147483648)
ProviderFlags : A value of zero in the protocol parameter of socket or WSASocket matches this protocol entry.
Protocol Chain Length : 1
Service Flags : 0x20209 (below flags are set by provider vendor and do not indicate how the protocol functions or operates.)
Protocol provides connectionless (datagram) service. If not set, the protocol supports connection-oriented data transfer.
Protocol honors message boundaries as opposed to a stream-oriented protocol where there is no concept of message boundaries.
Protocol supports a broadcast mechanism.
Protocol is considered to be bidirectional.
Protocol socket descriptors returned by provider are operating system Installable File System (IFS) handles.
----------------------------------------------------------
Winsock Catalog Active Name Space (number available = 8)
----------------------------------------------------------
Description : Network Location Awareness Legacy (NLAv1) Namespace
Provider ID : {6642243A-3BA8-4AA6-BAA5-2E0BD71FDD83}
Name Space : Network Location Awareness ( 15 )
Active : Yes
Version : 0
----------------------------------------------------------
Description : E-mail Naming Shim Provider
Provider ID : {964ACBA2-B2BC-40EB-8C6A-A6DB40161CAE}
Name Space : Email ( 37 )
Active : Yes
Version : 0
----------------------------------------------------------
Description : PNRP Cloud Namespace Provider
Provider ID : {03FE89CE-766D-4976-B9C1-BB9BC42C7B4D}
Name Space : Peer-to-peer collection ( 39 )
Active : Yes
Version : 0
----------------------------------------------------------
Description : PNRP Name Namespace Provider
Provider ID : {03FE89CD-766D-4976-B9C1-BB9BC42C7B4D}
Name Space : Peer-to-peer ( 38 )
Active : Yes
Version : 0
----------------------------------------------------------
Description : Tcpip
Provider ID : {22059D40-7E9E-11CF-AE5A-00AA00A7112B}
Name Space : Domain Name System ( 12 )
Active : Yes
Version : 0
----------------------------------------------------------
Description : NTDS
Provider ID : {3B2637EE-E580-11CF-A555-00C04FD8D4AC}
Name Space : Windows NT Directory Services ( 32 )
Active : Yes
Version : 0
----------------------------------------------------------
Description : WindowsLive NSP
Provider ID : {4177DDE9-6028-479E-B7B7-03591A63FF3A}
Name Space : Domain Name System ( 12 )
Active : Yes
Version : 1
----------------------------------------------------------
Description : WindowsLive Local NSP
Provider ID : {229F2A2C-5F18-4A06-8F89-3A372170624D}
Name Space : Other value ( 19 )
Active : Yes
Version : 1
And... to give an example of the types of entries that should not appear...these are some entries from a 64 bit version of Windows 7 where the users computer was compromised by association with the install of some Layered Service Providers (LSP) which were exploited later. The symptoms were intermittant high latency in a game or connection intensive activity lasting a few seconds and a connection that would very intermittantly quit working for a few seconds, and sometimes a known good web page would not load on the first try, seemed like a possible ISP related problem but that turned out not to be the case. Malware/hijackers/viruses/trojans/worms/root kits, some of them seem to like this area, so people should check the providers and name spaces areas also because there is no antivirus package for the common consumer on the market that will detect errant activity in this area and warn you about it. No software that is not native to the operating system or supplied by the operating system vendor, or is not specifically for connection hardware (like a driver), should be installing an LSP, and its just not a windows thing either, it applies to Mac's and Linux too.
Code: Select all
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry
Description: PCTOOLS over [MSAFD Tcpip [TCP/IP]]
Provider ID: {3260ADA5-D6C8-416C-A579-740B83323B61}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp64.dll
Catalog Entry ID: 1019
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 1
Protocol: 6
Service Flags: 0x66
Protocol Chain Length: 2
Protocol Chain: 1018 : 1001
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry
Description: PCTOOLS over [MSAFD Tcpip [UDP/IP]]
Provider ID: {3260ADA5-D6C8-416C-A579-740B83323B61}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp64.dll
Catalog Entry ID: 1020
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 2
Protocol: 17
Service Flags: 0x609
Protocol Chain Length: 2
Protocol Chain: 1018 : 1002
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry
Description: PCTOOLS over [MSAFD Tcpip [RAW/IP]]
Provider ID: {3260ADA5-D6C8-416C-A579-740B83323B61}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp64.dll
Catalog Entry ID: 1021
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 3
Protocol: 0
Service Flags: 0x609
Protocol Chain Length: 2
Protocol Chain: 1018 : 1003
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry
Description: PCTOOLS over [MSAFD Tcpip [TCP/IPv6]]
Provider ID: {3260ADA5-D6C8-416C-A579-740B83323B61}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp64.dll
Catalog Entry ID: 1022
Version: 2
Address Family: 23
Max Address Length: 28
Min Address Length: 28
Socket Type: 1
Protocol: 6
Service Flags: 0x66
Protocol Chain Length: 2
Protocol Chain: 1018 : 1004
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry
Description: PCTOOLS over [MSAFD Tcpip [UDP/IPv6]]
Provider ID: {3260ADA5-D6C8-416C-A579-740B83323B61}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp64.dll
Catalog Entry ID: 1023
Version: 2
Address Family: 23
Max Address Length: 28
Min Address Length: 28
Socket Type: 2
Protocol: 17
Service Flags: 0x609
Protocol Chain Length: 2
Protocol Chain: 1018 : 1005
Entry Type: Layered Service Provider
Description: PCTOOLS CONTENT FILTER PROVIDER
Provider ID: {7F9EB0B5-7444-4497-AEEF-D0E2C76F9FAD}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp64.dll
Catalog Entry ID: 1018
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 1
Protocol: 6
Service Flags: 0x0
Protocol Chain Length: 0
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry (32)
Description: PCTOOLS over [MSAFD Tcpip [TCP/IP]]
Provider ID: {DA959FEB-FEC7-4B46-AB8A-125AF81CC03D}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp.dll
Catalog Entry ID: 1012
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 1
Protocol: 6
Service Flags: 0x66
Protocol Chain Length: 2
Protocol Chain: 1011 : 1001
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry (32)
Description: PCTOOLS over [MSAFD Tcpip [UDP/IP]]
Provider ID: {DA959FEB-FEC7-4B46-AB8A-125AF81CC03D}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp.dll
Catalog Entry ID: 1013
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 2
Protocol: 17
Service Flags: 0x609
Protocol Chain Length: 2
Protocol Chain: 1011 : 1002
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry (32)
Description: PCTOOLS over [MSAFD Tcpip [RAW/IP]]
Provider ID: {DA959FEB-FEC7-4B46-AB8A-125AF81CC03D}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp.dll
Catalog Entry ID: 1014
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 3
Protocol: 0
Service Flags: 0x609
Protocol Chain Length: 2
Protocol Chain: 1011 : 1003
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry (32)
Description: PCTOOLS over [MSAFD Tcpip [TCP/IPv6]]
Provider ID: {DA959FEB-FEC7-4B46-AB8A-125AF81CC03D}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp.dll
Catalog Entry ID: 1015
Version: 2
Address Family: 23
Max Address Length: 28
Min Address Length: 28
Socket Type: 1
Protocol: 6
Service Flags: 0x66
Protocol Chain Length: 2
Protocol Chain: 1011 : 1004
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry (32)
Description: PCTOOLS over [MSAFD Tcpip [UDP/IPv6]]
Provider ID: {DA959FEB-FEC7-4B46-AB8A-125AF81CC03D}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp.dll
Catalog Entry ID: 1016
Version: 2
Address Family: 23
Max Address Length: 28
Min Address Length: 28
Socket Type: 2
Protocol: 17
Service Flags: 0x609
Protocol Chain Length: 2
Protocol Chain: 1011 : 1005
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Chain Entry (32)
Description: PCTOOLS over [MSAFD Tcpip [RAW/IPv6]]
Provider ID: {DA959FEB-FEC7-4B46-AB8A-125AF81CC03D}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp.dll
Catalog Entry ID: 1017
Version: 2
Address Family: 23
Max Address Length: 28
Min Address Length: 28
Socket Type: 3
Protocol: 0
Service Flags: 0x609
Protocol Chain Length: 2
Protocol Chain: 1011 : 1006
Winsock Catalog Provider Entry
------------------------------------------------------
Entry Type: Layered Service Provider (32)
Description: PCTOOLS CONTENT FILTER PROVIDER
Provider ID: {7F9EB0B5-7444-4497-AEEF-D0E2C76F9FAD}
Provider Path: C:\Program Files (x86)\Common Files\PC Tools\Lsp\PCTLsp.dll
Catalog Entry ID: 1011
Version: 2
Address Family: 2
Max Address Length: 16
Min Address Length: 16
Socket Type: 1
Protocol: 6
Service Flags: 0x0
Protocol Chain Length: 0
buddymatkona wrote:
There was a problem however with entries from "Version" through "Protocol" that looked like oversize integers being used.
I was running the 64 bit versions of PB 4.51 and Windows 7.
This is the structure, from the MSDN and in the Windows 7 SDK:
Code: Select all
typedef struct _WSAPROTOCOL_INFOW {
DWORD dwServiceFlags1;
DWORD dwServiceFlags2;
DWORD dwServiceFlags3;
DWORD dwServiceFlags4;
DWORD dwProviderFlags;
GUID ProviderId;
DWORD dwCatalogEntryId;
WSAPROTOCOLCHAIN ProtocolChain;
int iVersion;
int iAddressFamily;
int iMaxSockAddr;
int iMinSockAddr;
int iSocketType;
int iProtocol;
int iProtocolMaxOffset;
int iNetworkByteOrder;
int iSecurityScheme;
DWORD dwMessageSize;
DWORD dwProviderReserved;
WCHAR szProtocol[WSAPROTOCOL_LEN+1];
} WSAPROTOCOL_INFOW, *LPWSAPROTOCOL_INFOW;
iVersion through iProtocol are of the type int according to the MSDN and the Win 7 SDK. According to MS, their type definition for the type int is "A 32-bit signed integer. The range is -2147483648 through 2147483647 decimal."
According to the Pure Basic help:
Long .l 4 bytes -2147483648 to +2147483647 (suits the MS definition of an int)
Integer .i 4 bytes (32 bits) -2147483648 to +2147483647 (suits the MS definition of an int)
Integer .i 8 bytes (64 bits) -9223372036854775808 to +9223372036854775807 (but, while in range, does not suit the MS definition for int or DWORD as .i in PB for 64 bit is 8 bytes and the structure needs 4 bytes.)
Maybe try a .l instead as the "oversized" integers your seeing may be that an .i on 64 bit Windows is 8 bytes and not 4 bytes. So for 64 bit Windows, change out iVersion through iSecurityScheme in the structure and make them .l and see what happens for you. the .i works ok here on 32 bit.
So you may need to make some adjustments for 64 bit Windows.
The advantage of a 64 bit operating system over a 32 bit operating system comes down to only being twice the headache.