Windows CE Networking - from NDIS to TCP to SOAP to VOIP and everything in between.
The following description of the autobind_lsp is copied from
http://www.intrinsyc.com/whitepapers/RIL_whitepaper_MS_Intrinsyc_June2004.pdf"
When an application makes a Connection Manager connection request, Connection Manager determines which IP interface the application should use to reach the destination network requested. Connection manager passes this information to the AutoBind LSP. If the application does not explicitly bind its sockets to an interface, then the AutoBind LSP will implicitly bind the sockets to the interface specified by Connection Manager, ensuring that the packets sent over the socket will take the correct route to reach the intended destination.
autobind_LSP effects the following winsock calls:
def WSPConnect(addr):
if not alreadyBound() and not isLoopback(addr):
doHardBindIfRequired()
let_connect_call_passthrough_to(addr)
def WSPBind(addr):
if not alreadyBound():
doHardBindIfRequired()
let_bind_call_passthrough_to(addr)
def WSPRecvFrom(addr):
if not alreadyBound():
doHardBindIfRequired()
let_recvFrom_call_passthrough_to(addr)
def WSPSendTo(addr):
if not alreadyBound():
doHardBindIfRequired()
let_sendTo_call_passthrough_to(addr)
def doHardBindIfRequired():
interfaceToBindTo = ConnectionManager::GetInterfaceToBindTo(GetProcessID())
if (interfaceToBindTo)
TCPStack::ForceHardBind(interfaceToBindTo)
alreadyBound = True
[Author: Igor Dvorkin]
Comment Notification
If you would like to receive an email when updates are made to this post, please register here
Subscribe to this post's comments using